HTTP Connection ഹെഡറുകൾ കോമയാൽ വേർതിരിച്ച ടോക്കണുകളായി പാഴ്സ് ചെയ്യുക
ഒരേ HTTP/1.1 ഫീൽഡിൽ keep-alive ഉം Upgrade ഉം കാണുമ്പോൾ ഓരോ Connection ഓപ്ഷനും കേസ്-ഇൻസെൻസിറ്റീവായി പാഴ്സ് ചെയ്യുക.
ഈ മൂല്യങ്ങൾ ഒരു മോഡിന്റെ മത്സരിക്കുന്ന അക്ഷരവിന്യാസങ്ങളല്ല:
Connection: Upgrade
Connection: keep-alive, Upgrade
രണ്ടാമത്തേത് രണ്ട് കണക്ഷൻ ഓപ്ഷനുകൾ പട്ടികപ്പെടുത്തുന്നു. HTTP, Connection-നെ കോമയാൽ വേർതിരിച്ച ലിസ്റ്റായി നിർവചിക്കുന്നു, ഓപ്ഷൻ പേരുകൾ കേസ്-ഇൻസെൻസിറ്റീവാണ്. മുഴുവൻ മൂല്യവും കൃത്യമായ Upgrade എന്ന സ്ട്രിംഗുമായി താരതമ്യം ചെയ്യുന്ന കോഡ് ആ ഓപ്ഷൻ അടങ്ങിയ സാധുവായ ലിസ്റ്റ് വിട്ടുകളയുന്നു.
സാധാരണ ഫോർവേഡിംഗിന്, ഒരു HTTP ഇന്റർമീഡിയറി വരുന്ന ഫീൽഡ് പാഴ്സ് ചെയ്യുന്നു, അതിന്റെ ഓപ്ഷനുകൾ പേരിട്ട ഫീൽഡുകൾ നീക്കം ചെയ്യുന്നു, തുടർന്ന് Connection തന്നെ നീക്കം ചെയ്യുന്നു അല്ലെങ്കിൽ അടുത്ത കണക്ഷനുവേണ്ടി ഇന്റർമീഡിയറിയുടെ സ്വന്തം നിയന്ത്രണ ഓപ്ഷനുകൾ കൊണ്ട് അതിനെ മാറ്റുന്നു.
ഹാർഡ്കോഡ് ചെയ്ത Keep-Alive ഫീൽഡ് മാത്രം നീക്കം ചെയ്യുന്നത് പര്യാപ്തമല്ല. ഒരു സന്ദേശം ലിസ്റ്റിൽ കണക്ഷൻ-നിർദ്ദിഷ്ടമായ മറ്റൊരു ഫീൽഡ് പേരിടാം, ആ ഫീൽഡ് സാധാരണ ഫോർവേഡിംഗിലേക്ക് ചോരരുത്.
പ്രോട്ടോക്കോൾ അപ്ഗ്രേഡ് പിന്തുണയ്ക്കാൻ രണ്ട് കണക്ഷനുകളെയും പുതിയ പ്രോട്ടോക്കോളിനെയും ബോധപൂർവം കൈകാര്യം ചെയ്യണം. വരുന്ന Upgrade ഹെഡറുകൾ കണ്ണടച്ച് പകർത്തുന്നത് ആ കൈമാറ്റത്തിന്റെ നടപ്പാക്കലല്ല.
ഒരു ബ്രൗസർ പ്രവർത്തിക്കുമ്പോൾ മറ്റൊന്ന് പരാജയപ്പെടുമ്പോൾ, ഇന്റർമീഡിയറിയുടെ ഇരുവശത്തുമുള്ള യഥാർത്ഥ ഫീൽഡ് മൂല്യങ്ങൾ താരതമ്യം ചെയ്യുക. ഒരു ടോക്കണും രണ്ട് ടോക്കണുകളുള്ള ലിസ്റ്റും തമ്മിലുള്ള വ്യത്യാസം, മറ്റൊരു ബ്രൗസറിന്റെ കൃത്യമായ ഫോർമാറ്റിംഗ് അനുകരിക്കാൻ ആവശ്യപ്പെടാതെ തന്നെ ഒരു പാഴ്സർ പിശക് വെളിപ്പെടുത്താം.
ഇത് പ്രോക്സി പാഴ്സ് ചെയ്യുന്ന HTTP സന്ദേശങ്ങളെക്കുറിച്ചാണ്. സാധാരണ HTTPS CONNECT ടണൽ എൻക്രിപ്റ്റ് ചെയ്ത വെബ്സൈറ്റിന്റെ Connection ഫീൽഡ് ആ പ്രോക്സിക്ക് വെളിപ്പെടുത്തുന്നില്ല.