HTTP Connection antraščių skaitymas kaip kableliais atskirtų žetonų
Skaitykite kiekvieną Connection parinktį neatsižvelgdami į raidžių dydį, kai forward proxy tame pačiame HTTP/1.1 lauke randa keep-alive ir Upgrade.
Šios reikšmės nėra konkuruojančios vieno režimo rašybos:
Connection: Upgrade
Connection: keep-alive, Upgrade
Antroji išvardija dvi ryšio parinktis. HTTP apibrėžia Connection kaip kableliais atskirtą sąrašą, o parinkčių pavadinimai nepriklauso nuo raidžių dydžio. Kodas, lyginantis visą reikšmę su tikslia eilute Upgrade, praleidžia galiojantį sąrašą, kuriame yra ta parinktis.
Įprastam persiuntimui HTTP tarpininkas išanalizuoja gaunamą lauką, pašalina laukus, įvardytus jo parinkčių, tada pašalina patį Connection arba pakeičia jį savo valdymo parinktimis tolimesniam ryšiui.
Pašalinti tik užkoduotą Keep-Alive lauką nepakanka. Žinutė gali įvardyti kitą su ryšiu susijusį lauką sąraše, ir tas laukas neturi nutekėti į įprastą persiuntimą.
Protokolo atnaujinimo palaikymas reikalauja sąmoningo abiejų ryšių ir naujo protokolo tvarkymo. Aklai kopijuoti gaunamas Upgrade antraštes nėra to perdavimo įgyvendinimas.
Kai viena naršyklė veikia, o kita ne, palyginkite faktines lauko reikšmes abiejose tarpininko pusėse. Skirtumas tarp vieno žetono ir dviejų žetonų sąrašo gali atskleisti analizatoriaus klaidą, nereikalaujant, kad naršyklė imituotų kitos naršyklės tikslią formatą.
Tai susiję su HTTP žinutėmis, kurias analizuoja proxy. Įprastas HTTPS CONNECT tunelis neatskleidžia šifruotos svetainės Connection lauko tam proxy.