പൈത്തൺ HTTP അഭ്യർത്ഥനകളിലെ 428 സ്റ്റാറ്റസ് കോഡ് മനസ്സിലാക്കുന്നു
പൈത്തൺ ഉപയോഗിക്കുമ്പോൾ അഭ്യർത്ഥിക്കുന്നു മൊഡ്യൂൾ, സെർവർ ഉത്തരങ്ങളിലെ വിവിധ ബുദ്ധിമുട്ടുകൾ സൂചിപ്പിക്കുന്ന HTTP സ്റ്റാറ്റസ് കോഡുകൾ നേരിടുന്നത് സാധാരണമാണ്. അത്തരത്തിലുള്ള ഒരു പിശക് 428 സ്റ്റാറ്റസ് കോഡാണ്, ഇത് തുടരുന്നതിന് മുമ്പ് സെർവർ പാലിക്കേണ്ട ഒരു മാനദണ്ഡം സൂചിപ്പിക്കുന്നു. ആവശ്യമായ തലക്കെട്ടുകൾ നൽകുന്നതിലോ അഭ്യർത്ഥനകൾ ശരിയായ ക്രമത്തിൽ നടപ്പിലാക്കുന്നതിലോ ഉണ്ടാകുന്ന പരാജയം മൂലമാണ് ഇത് പലപ്പോഴും സംഭവിക്കുന്നത്.
ഈ സാഹചര്യത്തിൽ, ഒരു ഉപയോക്താവ് അയയ്ക്കാൻ ശ്രമിക്കുന്നു പോസ്റ്റ് ഒരു വെബ്സൈറ്റിലേക്ക് അഭ്യർത്ഥിക്കുക എന്നാൽ ഉദ്ദേശിച്ച 200 സ്റ്റാറ്റസ് കോഡിന് പകരം 428 പ്രതികരണമാണ് ലഭിക്കുന്നത്. സ്ക്രിപ്റ്റിൽ ശരിയായി നിർമ്മിച്ച പേലോഡുകളും തലക്കെട്ടുകളും അടങ്ങിയിരിക്കുന്നു, എന്നാൽ ഒരു സുപ്രധാന ഘടകം നഷ്ടമായതിനാൽ അഭ്യർത്ഥന പരാജയപ്പെടുന്നു.
ഓൺലൈൻ API-കളുമായി സംവദിക്കുമ്പോൾ ഇത്തരം പിശകുകൾ വ്യാപകമാണ്, പ്രത്യേകിച്ചും അഭ്യർത്ഥനകൾ പ്രോസസ്സ് ചെയ്യുന്നതിന് മുമ്പ് സെർവറിന് അധിക മാനദണ്ഡങ്ങൾ ആവശ്യമായി വരുമ്പോൾ. 428 സ്റ്റാറ്റസ് കോഡിൻ്റെ അടിസ്ഥാന കാരണം മനസ്സിലാക്കുന്നത് പ്രശ്നം പരിഹരിക്കുന്നതിനും വിജയകരമായ പരിഹാരങ്ങൾ നൽകുന്നതിനും നിർണ്ണായകമാണ്.
നൽകിയിരിക്കുന്ന പൈത്തൺ സ്ക്രിപ്റ്റിലെ 428 സ്റ്റാറ്റസ് കോഡിൻ്റെ ഏറ്റവും സാധ്യതയുള്ള കാരണങ്ങളും അത് പരിഹരിക്കുന്നതിനുള്ള പ്രായോഗിക തന്ത്രങ്ങളും ഈ പോസ്റ്റ് പരിശോധിക്കും, ഇത് API-യുമായുള്ള സുഗമമായ ഇടപെടലും 200 സ്റ്റാറ്റസ് കോഡ് പ്രതികരണവും ഉറപ്പാക്കും.
കമാൻഡ് | ഉപയോഗിച്ച പ്രോഗ്രാമിംഗ് കമാൻഡുകളുടെ വിവരണം |
---|---|
എങ്കിൽ-പൊരുത്തം | റിസോഴ്സ് നിർദ്ദിഷ്ട ETag-മായി പൊരുത്തപ്പെടുന്നെങ്കിൽ മാത്രമേ അഭ്യർത്ഥന കൈകാര്യം ചെയ്യപ്പെടുകയുള്ളൂ എന്ന് ഈ തലക്കെട്ട് ഉറപ്പാക്കുന്നു. സെർവറിന് ഒരു മുൻവ്യവസ്ഥ പാലിക്കേണ്ടിവരുമ്പോൾ അത് നിർണായകമാണ്, മനഃപൂർവമല്ലാത്ത തിരുത്തലുകൾ അല്ലെങ്കിൽ മാറ്റങ്ങളെ തടയുന്നു. |
എങ്കിൽ-മാറ്റം വരുത്താത്തത്-മുതൽ | നിർദ്ദിഷ്ട തീയതി മുതൽ ഉറവിടം അപ്ഡേറ്റ് ചെയ്തിട്ടില്ലെങ്കിൽ മാത്രമേ അഭ്യർത്ഥന വിജയിക്കൂ എന്ന് വ്യക്തമാക്കുന്നു. ഇത് ഒരു നിശ്ചിത സമയത്തിന് ശേഷം മാറ്റങ്ങളൊന്നും വരുത്തുന്നില്ലെന്ന് ഉറപ്പാക്കുന്ന ഒരു സംഘർഷ-പ്രതിരോധ നടപടിയാണ്. |
അഭ്യർത്ഥനകൾ.സെഷൻ() | എ സെഷൻ ഒബ്ജക്റ്റ് നിരവധി അഭ്യർത്ഥനകളിലുടനീളം സ്ഥിരമായ ക്രമീകരണങ്ങളും കുക്കികളും പ്രാപ്തമാക്കുന്നു. ഈ സമീപനം തലക്കെട്ടുകളും പ്രാമാണീകരണ ടോക്കണുകളും പോലെയുള്ള അവസ്ഥ സംരക്ഷിച്ചുകൊണ്ട് ആവർത്തിച്ചുള്ള അഭ്യർത്ഥനകൾ ഒപ്റ്റിമൈസ് ചെയ്യുന്നു. |
session.post() | ഒരു ഉറവിടം സൃഷ്ടിക്കുന്നതിനോ എഡിറ്റുചെയ്യുന്നതിനോ, ഉപയോഗിക്കുക പോസ്റ്റ് രീതി. ഈ ഉദാഹരണത്തിൽ, ഇത് ഫ്ലൈറ്റ് തിരയൽ മാനദണ്ഡം JSON ആയി കൈമാറുകയും API-യിൽ നിന്ന് ഫ്ലൈറ്റ് ഡാറ്റ അഭ്യർത്ഥിക്കുകയും ചെയ്യുന്നു. |
json=പേലോഡ് | ഒരു അഭ്യർത്ഥനയുടെ ബോഡിയിൽ ഒരു JSON ഒബ്ജക്റ്റ് ഉൾപ്പെടുത്താൻ ഉപയോഗിക്കുന്നു. സ്ക്രിപ്റ്റിൽ, ഫ്ലൈറ്റ് തിരയൽ ഡാറ്റ API-ലേക്ക് കൈമാറുകയും പ്രോസസ്സ് ചെയ്യുകയും ചെയ്യുന്നു. |
session.headers.update() | ഈ സമീപനം സെഷനിലേക്ക് പുതിയ തലക്കെട്ടുകൾ ചേർക്കുന്നു ഉപയോക്തൃ-ഏജൻ്റ് ഒപ്പം അംഗീകാരം, സെർവറുമായുള്ള ശരിയായ കണക്ഷൻ ഉറപ്പാക്കുന്നതിനും നഷ്ടമായ തലക്കെട്ടുകൾ അല്ലെങ്കിൽ മുൻവ്യവസ്ഥകൾ പോലുള്ള പ്രശ്നങ്ങൾ തടയുന്നതിനും. |
റഫറർ | അഭ്യർത്ഥന നടത്തുന്നതിന് മുമ്പ് ഉപയോക്താവ് അവസാനമായി സന്ദർശിച്ച URL തിരിച്ചറിയുന്ന ഒരു തലക്കെട്ട്. സുരക്ഷാ കാരണങ്ങളാൽ അല്ലെങ്കിൽ അഭ്യർത്ഥനയുടെ ഉത്ഭവം നിർണ്ണയിക്കാൻ ഇത് പതിവായി ആവശ്യമാണ്. |
സ്റ്റാറ്റസ്_കോഡ് | ഈ ആട്രിബ്യൂട്ട് HTTP അഭ്യർത്ഥനയുടെ പ്രതികരണ കോഡ് പരിശോധിക്കുന്നു. അഭ്യർത്ഥന വിജയിച്ചോ (200) അല്ലെങ്കിൽ 428 പ്രീകണ്ടീഷൻ പിശക് പോലുള്ള ഒരു പ്രശ്നം നേരിട്ടോ എന്ന് നിർണ്ണയിക്കാൻ ഇത് ഉപയോഗിക്കുന്നു. |
session.get() | GET രീതി സെർവറിൽ നിന്ന് വിവരങ്ങൾ നേടുന്നു. ഒരു POST അഭ്യർത്ഥന അയയ്ക്കുന്നതിന് മുമ്പ് ആവശ്യമായ കുക്കികളോ ടോക്കണുകളോ വീണ്ടെടുക്കാൻ ഉപയോഗിക്കുന്ന ഒരു ആശയവിനിമയത്തിലെ ആദ്യത്തെ അഭ്യർത്ഥനയാണിത്. |
പൈത്തണിൻ്റെ അഭ്യർത്ഥന മൊഡ്യൂളിൽ HTTP 428 സ്റ്റാറ്റസ് കോഡ് പരിഹരിക്കുന്നു
ഈ പരിഹാരം പൈത്തണിനെ സ്വാധീനിക്കുന്നു അഭ്യർത്ഥിക്കുന്നു മൊഡ്യൂൾ, POST അഭ്യർത്ഥനകളിലെ 428 സ്റ്റാറ്റസ് കോഡ് പരിഹരിക്കുന്നതിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു, തലക്കെട്ടുകൾ അല്ലെങ്കിൽ അംഗീകാരം പോലുള്ള നഷ്ടമായ മുൻവ്യവസ്ഥകൾ നൽകിക്കൊണ്ട്.
import requests
url = 'https://wizzair.com/en-gb'
link = 'https://be.wizzair.com/24.9.0/Api/search/search'
payload = {"isFlightChange": False, "flightList": [{"departureStation": "TIA", "arrivalStation": "VIE", "departureDate": "2024-09-17"}, {"departureStation": "VIE", "arrivalStation": "TIA", "departureDate": "2024-10-20"}], "adultCount": 1, "childCount": 0, "infantCount": 0, "wdc": True}
# Add If-Match or other required precondition headers
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
'Accept': 'application/json, text/plain, */*',
'Referer': 'https://wizzair.com/en-gb',
'If-Match': '<your-etag-here>',
'Content-Type': 'application/json'
}
with requests.Session() as session:
session.headers.update(headers)
r = session.get(url)
print(r.status_code)
response = session.post(link, json=payload)
print(response.status_code)
if response.status_code == 428:
print('428 Error: Missing required precondition.')
ഇതര സമീപനം: മുൻകൂർ വ്യവസ്ഥയ്ക്കുള്ള അംഗീകാരം ചേർക്കുന്നു
ഈ സ്ക്രിപ്റ്റ് 428 മുൻകൂർ വ്യവസ്ഥയെ മറികടക്കുന്നതിനും API-യിലേക്കുള്ള ആധികാരിക ആക്സസ് ഉറപ്പാക്കുന്നതിനും ഒരു അംഗീകാര ടോക്കൺ നൽകുന്നു.
import requests
url = 'https://wizzair.com/en-gb'
link = 'https://be.wizzair.com/24.9.0/Api/search/search'
token = 'Bearer your_auth_token'
payload = {"isFlightChange": False, "flightList": [{"departureStation": "TIA", "arrivalStation": "VIE", "departureDate": "2024-09-17"}, {"departureStation": "VIE", "arrivalStation": "TIA", "departureDate": "2024-10-20"}], "adultCount": 1, "childCount": 0, "infantCount": 0, "wdc": True}
headers = {
'User-Agent': 'Mozilla/5.0',
'Authorization': token,
'Content-Type': 'application/json'
}
with requests.Session() as session:
session.headers.update(headers)
r = session.get(url)
print(r.status_code)
response = session.post(link, json=payload)
print(response.status_code)
if response.status_code == 428:
print('428 Error: Ensure valid authorization or conditions.')
തലക്കെട്ടുകളിൽ നഷ്ടമായ ആവശ്യമായ ഫീൽഡുകൾ കൈകാര്യം ചെയ്യുന്നു
മുൻവ്യവസ്ഥകൾ നഷ്ടമായതിനാൽ 428 പിശക് ഒഴിവാക്കാൻ ആവശ്യമായ എല്ലാ തലക്കെട്ടുകളും POST അഭ്യർത്ഥനയിൽ നൽകിയിട്ടുണ്ടെന്ന് ഈ രീതി ഉറപ്പാക്കുന്നു. എങ്കിൽ-മാറ്റം വരുത്താത്തത്-മുതൽ തലക്കെട്ട്.
import requests
url = 'https://wizzair.com/en-gb'
link = 'https://be.wizzair.com/24.9.0/Api/search/search'
payload = {"isFlightChange": False, "flightList": [{"departureStation": "TIA", "arrivalStation": "VIE", "departureDate": "2024-09-17"}, {"departureStation": "VIE", "arrivalStation": "TIA", "departureDate": "2024-10-20"}], "adultCount": 1, "childCount": 0, "infantCount": 0, "wdc": True}
headers = {
'User-Agent': 'Mozilla/5.0',
'Accept': 'application/json, text/plain, */*',
'If-Unmodified-Since': 'Wed, 21 Oct 2020 07:28:00 GMT',
'Content-Type': 'application/json'
}
with requests.Session() as session:
session.headers.update(headers)
r = session.get(url)
print(r.status_code)
response = session.post(link, json=payload)
print(response.status_code)
if response.status_code == 428:
print('428 Error: Missing required headers.')
എച്ച്ടിടിപി അഭ്യർത്ഥനകളിലെ മുൻവ്യവസ്ഥ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നു
HTTP അഭ്യർത്ഥനകൾ പ്രോസസ്സ് ചെയ്യുമ്പോൾ, a 428 സ്റ്റാറ്റസ് കോഡ് തുടരുന്നതിന് മുമ്പ് സെർവറിന് പ്രത്യേക മുൻവ്യവസ്ഥകൾ ആവശ്യമാണെന്ന് സാധാരണയായി സൂചിപ്പിക്കുന്നു. പോലുള്ള സുരക്ഷാ തലക്കെട്ടുകൾ ഒഴിവാക്കുന്നു എങ്കിൽ-പൊരുത്തം അല്ലെങ്കിൽ എങ്കിൽ-മാറ്റം വരുത്താത്തത്-മുതൽ ഈ പ്രശ്നത്തിലേക്ക് നയിച്ചേക്കാം. അഭ്യർത്ഥന സെർവറിൻ്റെ പ്രതീക്ഷകളുമായി പൊരുത്തപ്പെടുന്നുണ്ടോയെന്ന് പരിശോധിക്കാൻ ഈ തലക്കെട്ടുകൾ സഹായിക്കുന്നു, ഡാറ്റ ഓവർറൈറ്റുചെയ്യുന്നതിനോ അസാധുവായ അഭ്യർത്ഥനകൾ അയയ്ക്കുന്നതിനോ ഉള്ള സാധ്യത കുറയ്ക്കുന്നു.
428 സ്റ്റാറ്റസ് കോഡ് സ്വീകരിക്കുന്നതിലെ മറ്റൊരു പ്രധാന പ്രശ്നം മോശം സെഷൻ കൈകാര്യം ചെയ്യലാണ്. ഉപയോക്താക്കളെ പ്രാമാണീകരിക്കുന്നതിനും തുടർച്ചയായ അഭ്യർത്ഥനകളിൽ നില നിലനിർത്തുന്നതിനും പല ഓൺലൈൻ ആപ്ലിക്കേഷനുകളും സെഷൻ മാനേജ്മെൻ്റിനെ ആശ്രയിക്കുന്നു. ഉദാഹരണത്തിന്, കുക്കികൾ അല്ലെങ്കിൽ ടോക്കണുകൾ പോലുള്ള സെഷൻ ഡാറ്റ നിലനിർത്തുന്നതിൽ പരാജയപ്പെടുന്നത്, സെർവർ അടുത്ത POST അഭ്യർത്ഥന നിരസിക്കുന്നതിലേക്ക് നയിച്ചേക്കാം. പൈത്തണിൻ്റെ അഭ്യർത്ഥനകൾ ഉപയോഗിക്കുന്നു. സെഷൻ() ഈ സെഷനുകളുടെ ശരിയായ കൈകാര്യം ചെയ്യൽ പ്രാപ്തമാക്കുന്നു, ഇത് API-യുമായുള്ള സുഗമമായ ആശയവിനിമയത്തിന് കാരണമാകുന്നു.
സെഷൻ മാനേജ്മെൻ്റിനും മുൻവ്യവസ്ഥകൾക്കും അപ്പുറം, ഹെഡ്ഡറുകളുടെയും പേലോഡുകളുടെയും ശരിയായ ഒഴുക്ക് ഉറപ്പാക്കേണ്ടത് വളരെ പ്രധാനമാണ്. സെർവറുകൾ പലപ്പോഴും സുരക്ഷാ തലക്കെട്ടുകൾ ആവശ്യപ്പെടുന്നു അംഗീകാരം, റഫറർ, ഒപ്പം ഉത്ഭവം. അവരുടെ അഭാവം അഭ്യർത്ഥന പരാജയപ്പെടുന്നതിന് കാരണമായേക്കാം, പ്രത്യേകിച്ചും നിയന്ത്രിത അല്ലെങ്കിൽ സെൻസിറ്റീവ് ഡാറ്റ ആക്സസ് ചെയ്യുമ്പോൾ. ഈ തലക്കെട്ടുകൾ നൽകിയിട്ടുണ്ടെന്നും അഭ്യർത്ഥനയിൽ ഉചിതമായ രീതിയിൽ രൂപപ്പെടുത്തിയിട്ടുണ്ടെന്നും ഉറപ്പാക്കുന്നത് 428 പിശകും മറ്റ് ബുദ്ധിമുട്ടുകളും ഒഴിവാക്കാൻ സഹായിക്കും.
പൈത്തണിലെ HTTP 428 പിശകുകളെക്കുറിച്ചുള്ള പൊതുവായ ചോദ്യങ്ങൾ
- 428 സ്റ്റാറ്റസ് കോഡ് എന്താണ് അർത്ഥമാക്കുന്നത്?
- അഭ്യർത്ഥന പ്രോസസ്സ് ചെയ്യുന്നതിന് മുമ്പ് സെർവറിന് ഹെഡറുകൾ അല്ലെങ്കിൽ ടോക്കൺ മൂല്യനിർണ്ണയം പോലുള്ള നിർദ്ദിഷ്ട മാനദണ്ഡങ്ങൾ ആവശ്യമാണെന്ന് 428 സ്റ്റാറ്റസ് കോഡ് സൂചിപ്പിക്കുന്നു.
- പൈത്തണിലെ 428 പിശക് എങ്ങനെ പരിഹരിക്കാം?
- തുടങ്ങിയ തലക്കെട്ടുകൾ ഉപയോഗിക്കുക If-Match അല്ലെങ്കിൽ If-Unmodified-Since, കൂടാതെ സെഷൻ ശരിയായി സംരക്ഷിച്ചിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക requests.Session().
- എന്തുകൊണ്ടാണ് എൻ്റെ POST അഭ്യർത്ഥന 428 പിശക് നൽകുന്നത്?
- POST അഭ്യർത്ഥന പ്രോസസ്സ് ചെയ്യുന്നതിന് മുമ്പ്, സെർവർ മുമ്പേ നിലവിലുള്ള തലക്കെട്ട് അല്ലെങ്കിൽ ടോക്കൺ പോലുള്ള ഒരു അവസ്ഥ പരിശോധിക്കാൻ സാധ്യതയുണ്ട്.
- യുടെ പങ്ക് എന്താണ് If-Match തലക്കെട്ട്?
- ദി If-Match ഉറവിടം നിർദ്ദിഷ്ട ETag മൂല്യവുമായി പൊരുത്തപ്പെടുന്നുവെങ്കിൽ മാത്രമേ അഭ്യർത്ഥന കൈകാര്യം ചെയ്യപ്പെടുകയുള്ളൂവെന്ന് ഹെഡർ ഉറപ്പാക്കുന്നു.
- പൈത്തൺ അഭ്യർത്ഥനകളിൽ ശരിയായ സെഷൻ കൈകാര്യം ചെയ്യൽ എങ്ങനെ ഉറപ്പാക്കാം?
- ഉപയോഗിക്കുന്നത് requests.Session() തലക്കെട്ടുകളും കുക്കികളും ഉൾപ്പെടെ നിങ്ങളുടെ സെഷൻ തുടർന്നുള്ള അഭ്യർത്ഥനകളിലുടനീളം സ്ഥിരത പുലർത്തുന്നു.
428 സ്റ്റാറ്റസ് കോഡ് പരിഹരിക്കുന്നതിനുള്ള അന്തിമ ചിന്തകൾ
428 സ്റ്റാറ്റസ് കോഡ്, അവശ്യ തലക്കെട്ടുകൾ പോലെ, നഷ്ടമായ മുൻവ്യവസ്ഥകൾ സൂചിപ്പിക്കാൻ ഉപയോഗിക്കാറുണ്ട്. ഈ പ്രശ്നം പരിഹരിക്കാൻ, അഭ്യർത്ഥനയിൽ ശരിയായ തലക്കെട്ടുകൾ ഉൾപ്പെട്ടിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക എങ്കിൽ-പൊരുത്തം അല്ലെങ്കിൽ എങ്കിൽ-മാറ്റം വരുത്താത്തത്-മുതൽ. സെഷനുകൾ നിയന്ത്രിക്കുന്നതും പ്രധാനമാണ്.
കൂടാതെ, പ്രാമാണീകരണവും മറ്റ് സുരക്ഷയുമായി ബന്ധപ്പെട്ട തലക്കെട്ടുകളും ഉചിതമായി കൈകാര്യം ചെയ്യുന്നതിലൂടെ, POST അഭ്യർത്ഥന പ്രശ്നങ്ങളില്ലാതെ കൈകാര്യം ചെയ്യപ്പെടുന്നുവെന്ന് നിങ്ങൾക്ക് ഉറപ്പാക്കാം. ഈ മാനദണ്ഡങ്ങൾ അഭിസംബോധന ചെയ്യുന്നതിലൂടെ, അഭ്യർത്ഥന വിജയിച്ചുവെന്ന് സൂചിപ്പിക്കുന്ന ആവശ്യമായ 200 സ്റ്റാറ്റസ് കോഡ് സെർവർ തിരികെ നൽകണം.
HTTP 428 സ്റ്റാറ്റസ് കോഡ് സൊല്യൂഷനുകൾക്കുള്ള ഉറവിടങ്ങളും റഫറൻസുകളും
- HTTP സ്റ്റാറ്റസ് കോഡുകളെയും ട്രബിൾഷൂട്ടിംഗ് പ്രീകണ്ടീഷൻ പിശകുകളെയും കുറിച്ചുള്ള വിവരങ്ങൾ ഇതിൽ നിന്ന് ലഭിച്ചു മോസില്ല ഡെവലപ്പർ നെറ്റ്വർക്ക് .
- ഔദ്യോഗിക പൈത്തൺ അഭ്യർത്ഥന ഡോക്യുമെൻ്റേഷൻ HTTP അഭ്യർത്ഥനകളിലെ സെഷനുകളും ഹെഡറുകളും കൈകാര്യം ചെയ്യുന്നതിനെക്കുറിച്ചുള്ള വിശദമായ ഉൾക്കാഴ്ചകൾ നൽകി. സന്ദർശിക്കുക പൈത്തൺ അഭ്യർത്ഥന ലൈബ്രറി .
- API ടോക്കണുകൾ സെഷൻ കൈകാര്യം ചെയ്യുന്നതിനും കൈകാര്യം ചെയ്യുന്നതിനും, ഉറവിടങ്ങൾ യഥാർത്ഥ പൈത്തൺ പരാമർശിക്കപ്പെട്ടു.
- HTTP പിശക് കൈകാര്യം ചെയ്യുന്നതിനുള്ള അധിക ഉദാഹരണങ്ങളും ട്രബിൾഷൂട്ടിംഗ് ഘട്ടങ്ങളും കണ്ടെത്താനാകും സ്റ്റാക്ക് ഓവർഫ്ലോ .