HTTP Connection վերնագրերի վերլուծումը որպես ստորակետով բաժանված թոքեններ
Վերլուծեք Connection-ի յուրաքանչյուր տարբերակը՝ անկախ տառերի մեծությունից, երբ forward proxy-ն նույն HTTP/1.1 դաշտում հանդիպում է keep-alive-ին և Upgrade-ին։
Այս արժեքները մեկ ռեժիմի մրցակցող գրություններ չեն.
Connection: Upgrade
Connection: keep-alive, UpgradeԵրկրորդը թվարկում է միացման երկու տարբերակ։ HTTP-ն Connection-ը սահմանում է որպես ստորակետով բաժանված ցուցակ՝ տարբերակների անուններով, որոնք զգայուն չեն տառերի մեծության նկատմամբ։ Ամբողջ արժեքը ճշգրիտ Upgrade տողի հետ համեմատող կոդը բաց է թողնում այդ տարբերակը պարունակող վավեր ցուցակը։
Սովորական փոխանցման համար HTTP միջնորդը վերլուծում է մուտքային դաշտը, հեռացնում է իր տարբերակներով անվանված դաշտերը, ապա հեռացնում է ինքը Connection-ը կամ փոխարինում այն միջնորդի սեփական կառավարման տարբերակներով՝ հաջորդ միացման համար։
Միայն կոշտ կոդավորված Keep-Alive դաշտը հեռացնելը բավարար չէ։ Հաղորդագրությունը ցուցակում կարող է անվանել միացմանը հատուկ մեկ այլ դաշտ, և այդ դաշտը չպետք է արտահոսի սովորական փոխանցման մեջ։
Պրոտոկոլի թարմացման աջակցությունը պահանջում է երկու միացումների և նոր պրոտոկոլի գիտակցված մշակում։ Մուտքային Upgrade վերնագրերի կուրորեն պատճենումը այդ հանձնման իրականացում չէ։
Երբ մի զննարկիչ աշխատում է, իսկ մյուսը ձախողվում է, համեմատեք փաստացի դաշտային արժեքները միջնորդի երկու կողմերում։ Մեկ թոքենի և երկու թոքենից բաղկացած ցուցակի տարբերությունը կարող է բացահայտել վերլուծիչի սխալ՝ առանց զննարկիչից պահանջելու ընդօրինակել մեկ այլ զննարկիչի ճշգրիտ ձևաչափը։
Սա վերաբերում է այն HTTP հաղորդագրություններին, որոնք proxy-ն վերլուծում է։ Սովորական HTTPS CONNECT թունելը չի բացահայտում գաղտնագրված կայքի Connection դաշտը այդ proxy-ին։