Parsiranje HTTP Connection zaglavlja kao tokena odvojenih zarezima
Parsirajte svaku opciju Connection neosjetljivu na velika i mala slova kada forward proxy naiđe na keep-alive i Upgrade u istom polju HTTP/1.1.
Ove vrijednosti nisu suprotstavljeni načini pisanja jednog načina rada:
Connection: Upgrade
Connection: keep-alive, UpgradeDrugi navodi dvije opcije veze. HTTP definira Connection kao popis odvojen zarezima, s nazivima opcija neosjetljivim na velika i mala slova. Kod koji cijelu vrijednost uspoređuje s točnim nizom Upgrade propušta valjani popis koji sadrži tu opciju.
Za obično prosljeđivanje, HTTP posrednik parsira dolazno polje, uklanja polja koja imenuju njegove opcije, zatim uklanja sam Connection ili ga zamjenjuje vlastitim kontrolnim opcijama za odlaznu vezu.
Uklanjanje samo tvrdo kodiranog polja Keep-Alive nije dovoljno. Poruka može u popisu navesti drugo polje specifično za vezu, a to polje ne smije procuriti u obično prosljeđivanje.
Podrška nadogradnji protokola zahtijeva namjerno rukovanje objema vezama i novim protokolom. Slijepo kopiranje dolaznih Upgrade zaglavlja nije implementacija tog prijelaza.
Kada jedan preglednik radi, a drugi ne, usporedite stvarne vrijednosti polja na obje strane posrednika. Razlika između jednog tokena i popisa od dva tokena može otkriti pogrešku parsera bez potrebe da preglednik oponaša točno oblikovanje drugog preglednika.
Ovo se odnosi na HTTP poruke koje proxy parsira. Običan HTTPS CONNECT tunel ne izlaže polje Connection šifrirane web stranice tom proxyju.