Parsirajte HTTP Connection zaglavlja kao tokene razdvojene 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 definiše Connection kao listu razdvojenu zarezima, s nazivima opcija neosjetljivim na velika i mala slova. Kod koji cijelu vrijednost poredi s tačnim stringom Upgrade propušta valjanu listu koja 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 listi 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, uporedite stvarne vrijednosti polja na obje strane posrednika. Razlika između jednog tokena i liste od dva tokena može otkriti grešku parsera bez potrebe da preglednik oponaša tačno formatiranje 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.