Deze waarden zijn geen concurrerende spellingen van één modus:

Connection: Upgrade
Connection: keep-alive, Upgrade

De tweede noemt twee verbindingsopties. HTTP definieert Connection als een kommagescheiden lijst, met optienamen die niet hoofdlettergevoelig zijn. Code die de hele waarde vergelijkt met de exacte tekenreeks Upgrade, mist een geldige lijst die die optie bevat.

Voor gewoon doorsturen parseert een HTTP-tussenliggende partij het inkomende veld, verwijdert velden die door zijn opties worden genoemd en verwijdert daarna Connection zelf of vervangt het door de eigen controleopties van de tussenpartij voor de volgende verbinding.

Alleen een hardgecodeerd Keep-Alive-veld verwijderen is onvoldoende. Een bericht kan een ander verbindingsspecifiek veld in de lijst noemen, en dat veld mag niet in gewoon doorsturen terechtkomen.

Ondersteuning van een protocolupgrade vereist bewuste afhandeling van de twee verbindingen en het nieuwe protocol. De inkomende Upgrade-headers blind kopiëren is geen implementatie van die overdracht.

Wanneer de ene browser werkt en de andere faalt, vergelijk dan de werkelijke veldwaarden aan beide zijden van de tussenpartij. Een verschil tussen één token en een lijst met twee tokens kan een parserfout blootleggen zonder dat de browser de exacte opmaak van een andere browser hoeft na te bootsen.

Dit betreft HTTP-berichten die de proxy parseert. Een gewone HTTPS CONNECT-tunnel stelt het Connection-veld van de versleutelde website niet aan die proxy bloot.

Gerelateerde artikelen