Tyto hodnoty nejsou konkurenčními zápisy jednoho režimu:

Connection: Upgrade
Connection: keep-alive, Upgrade

Druhá uvádí dvě volby spojení. HTTP definuje Connection jako seznam oddělený čárkami s názvy voleb nezávislými na velikosti písmen. Kód, který porovnává celou hodnotu s přesným řetězcem Upgrade, mine platný seznam obsahující tuto volbu.

Při běžném předávání HTTP prostředník parsuje příchozí pole, odstraní pole pojmenovaná jeho volbami, poté odstraní samotné Connection nebo je nahradí vlastními řídicími volbami pro navazující spojení.

Odstranění pouze pevně zadaného pole Keep-Alive nestačí. Zpráva může v seznamu uvést jiné pole specifické pro spojení a toto pole nesmí uniknout do běžného předávání.

Podpora upgradu protokolu vyžaduje cílevědomé zacházení s oběma spojeními a novým protokolem. Slepé kopírování příchozích hlaviček Upgrade není implementací tohoto předání.

Když jeden prohlížeč funguje a jiný selhává, porovnejte skutečné hodnoty polí na obou stranách prostředníka. Rozdíl mezi jediným tokenem a seznamem dvou tokenů může odhalit chybu parseru, aniž by prohlížeč musel napodobovat přesné formátování jiného prohlížeče.

Týká se to zpráv HTTP, které proxy parsuje. Běžný tunel HTTPS CONNECT nevystavuje poli Connection šifrovaného webu této proxy.

Související články