TCP കണക്ഷൻ വിജയിച്ചതിന് ശേഷമുള്ള പ്രോക്സി CONNECT ടൈംഔട്ടുകൾ
പൂർത്തിയായ TCP കണക്ഷൻ ടണൽ സെറ്റപ്പും പൂർത്തിയാക്കിയെന്ന് അനുമാനിക്കുന്നതിനു പകരം CONNECT സമയത്ത് സജീവമായ ടൈംഔട്ട് കണ്ടെത്തുക.
ക്ലയന്റ് പ്രോക്സിയുമായി ബന്ധപ്പെട്ട ഉടൻ തന്നെ TCP കണക്ഷൻ ടൈംഔട്ട് അതിന്റെ ജോലി ചെയ്തു. അടുത്ത കാത്തിരിപ്പ്—പൂർണമായ CONNECT മറുപടി സ്വീകരിക്കുക എന്നത്—മറ്റൊരു ടൈമർ നിയന്ത്രിച്ചേക്കാം.
പ്രോക്സി ഇപ്പോഴും മുകളിലേക്ക് ബന്ധിപ്പിക്കുകയോ ആധികാരികതാ സന്ദേശങ്ങൾ കൈമാറുകയോ മറ്റൊരു സേവനത്തിനായി കാത്തിരിക്കുകയോ ആകാം. വെബ്സൈറ്റിന്റെ സാധാരണ മറുപടി ഇതുവരെ തുടങ്ങിയിട്ടില്ല.
| അവസാനം പൂർത്തിയായ ഘട്ടം | ഇനിയും എന്തിനാണ് കാത്തിരിക്കുന്നത്? |
|---|---|
| TCP പ്രോക്സിയുമായി ബന്ധിപ്പിച്ചു | CONNECT സ്വീകരണം ഉൾപ്പെടെയുള്ള പ്രോക്സി ഹാൻഡ്ഷേക്ക് |
| CONNECT സ്വീകരിച്ചു | ലക്ഷ്യം അത് ഉപയോഗിക്കുമ്പോൾ ലക്ഷ്യസ്ഥാനത്തിന്റെ TLS |
| ലക്ഷ്യസ്ഥാനത്തേക്കുള്ള അഭ്യർത്ഥന അയച്ചു | ലക്ഷ്യസ്ഥാനത്തിന്റെ മറുപടി |
കണക്ടർ ആ ഹാൻഡ്ഷേക്ക് വായിക്കുകയും എഴുതുകയും ചെയ്യുമ്പോൾ സജീവമായ ടൈമർ കണ്ടെത്തുക. “response timeout” എന്ന പ്രോപ്പർട്ടി റൂട്ട് സ്ഥാപിച്ചതിന് ശേഷം മാത്രമേ പ്രാബല്യത്തിൽ വന്നേക്കാം. HttpClient 5-ൽ, ConnectionConfig ഉം അതിന്റെ സോക്കറ്റ് ടൈംഔട്ടും, TLS ഹാൻഡ്ഷേക്ക് കോൺഫിഗറേഷനും, അഭ്യർത്ഥനാ തലത്തിലുള്ള പ്രതികരണ ടൈംഔട്ടും വേർതിരിച്ചറിയുക. യഥാർത്ഥ ക്ലയന്റ് ഉപയോഗിക്കുന്ന മാനേജർ വഴി പ്രസക്തമായ കണക്ഷൻ കോൺഫിഗറേഷൻ പ്രയോഗിക്കുക. പഴയ Apache HttpClient തലമുറകൾ വ്യത്യസ്ത API-കൾ ഉപയോഗിക്കുന്നു, അതിനാൽ പഴയ സ്നിപ്പറ്റ് ഈ ഉത്തരവാദിത്വങ്ങളുടെ വിശ്വസനീയമായ ഭൂപടമല്ല.
അന്തിമ CONNECT നിരസിക്കൽ പ്രോക്സിയുടെ മറുപടിയായി നിലനിർത്തുക. വിജയകരമായ മറുപടിക്ക് ശേഷം TLS നിലയ്ക്കുന്നത് മറ്റൊരു പരാജയ ഘട്ടമാണ്. “TCP ബന്ധിപ്പിച്ചു; സെറ്റപ്പ് സമയപരിധിക്ക് മുമ്പ് പൂർണ CONNECT മറുപടിയില്ല” എന്നത് പൊതുവായ പ്രോക്സി ടൈംഔട്ടിനേക്കാൾ കൃത്യമായി പ്രശ്നം വിവരിക്കുന്നു.
ഒരു മൊത്ത സമയപരിധി ഈ ഘട്ട പരിധികൾക്കൊപ്പം വിളിക്കുന്നയാളുടെ കാത്തിരിപ്പ് പരിമിതപ്പെടുത്താം. അത് കഴിയുമ്പോൾ, അടുത്ത ശ്രമം കണക്ഷൻ ശേഷി ഉപയോഗിക്കുന്നതിന് മുമ്പ് ക്ലയന്റ് പിന്തുണയ്ക്കുന്ന ജീവിതചക്രത്തിലൂടെ പ്രവർത്തനം റദ്ദാക്കുകയോ അടയ്ക്കുകയോ ചെയ്യുക.