Ontleed HTTP-Connection-koptekste as kommageskeide tekens
Ontleed elke hoofletter-onsensitiewe Connection-opsie wanneer 'n vorentoe-volmagtigde keep-alive en Upgrade in dieselfde HTTP/1.1-veld teëkom.
Hierdie waardes is nie mededingende spellings van 'n enkele modus nie:
Connection: Upgrade
Connection: keep-alive, UpgradeDie tweede lys twee verbindingsopsies. HTTP definieer Connection as 'n kommageskeide lys, met hoofletter-onsensitiewe opsiename. Kode wat die hele waarde met die presiese string Upgrade vergelyk, mis 'n geldige lys wat daardie opsie bevat.
Vir gewone deurstuur ontleed 'n HTTP-tussenlaag die inkomende veld, verwyder velde wat deur sy opsies genoem word, en verwyder dan Connection self of vervang dit met die tussenlaag se eie beheeropsies vir die voortgaande verbinding.
Om slegs 'n hardgekodeerde Keep-Alive-veld te verwyder, is onvoldoende. 'n Boodskap kan 'n ander verbinding-spesifieke veld in die lys noem, en daardie veld mag nie in gewone deurstuur lek nie.
Om 'n protokolopgradering te ondersteun, vereis doelbewuste hantering van die twee verbindings en die nuwe protokol. Om die inkomende Upgrade-koptekste blindelings te kopieer, is nie 'n implementering van daardie oordrag nie.
Wanneer een blaaier werk en 'n ander misluk, vergelyk die werklike veldwaardes aan beide kante van die tussenlaag. 'n Verskil tussen 'n enkele teken en 'n lys van twee tekens kan 'n ontlederfout blootlê sonder dat die blaaier 'n ander blaaier se presiese formatering hoef na te boots.
Dit raak HTTP-boodskappe wat die volmagtigde ontleed. 'n Gewone HTTPS CONNECT-tonnel stel nie die geënkripteerde webwerf se Connection-veld aan daardie volmagtigde bloot nie.