Разбор загалоўкаў HTTP Connection як спісу праз коску
Разбірайце кожны варыянт Connection без уліку рэгістру, калі прамы праксі сустракае keep-alive і Upgrade у адным полі HTTP/1.1.
Гэтыя значэнні не з'яўляюцца канкуруючымі напісаннямі аднаго рэжыму:
Connection: Upgrade
Connection: keep-alive, UpgradeДругі радок пералічвае два варыянты злучэння. HTTP вызначае Connection як спіс праз коску, дзе назвы варыянтаў не залежаць ад рэгістру. Код, які параўноўвае ўсё значэнне з дакладным радком Upgrade, прапускае сапраўдны спіс, што змяшчае гэты варыянт.
Для звычайнай перасылкі HTTP-пасрэднік разбірае атрыманае поле, выдаляе палі, названыя яго варыянтамі, а затым выдаляе сам Connection або замяняе яго ўласнымі варыянтамі кіравання для наступнага злучэння.
Выдалення толькі жорстка зададзенага поля Keep-Alive недастаткова. Паведамленне можа называць у спісе іншае поле, спецыфічнае для злучэння, і гэта поле не павінна прасачыцца ў звычайную перасылку.
Падтрымка павышэння пратаколу патрабуе ўсвядомленай працы з абодвума злучэннямі і новым пратаколам. Сляпое капіраванне атрыманых загалоўкаў Upgrade не з'яўляецца рэалізацыяй такой перадачы.
Калі адзін браўзер працуе, а другі не, параўнайце фактычныя значэнні палёў з абодвух бакоў пасрэдніка. Розніца паміж адным токенам і спісам з двух токенаў можа выявіць памылку разбору, не патрабуючы ад браўзера пераймаць дакладнае фарматаванне іншага браўзера.
Гэта датычыцца HTTP-паведамленняў, якія разбірае праксі. Звычайны тунэль HTTPS CONNECT не паказвае праксі поле Connection зашыфраванага сайта.