HTTP Connection హెడర్లను కామాతో వేరు చేసిన టోకెన్లుగా పార్స్ చేయడం
ఒకే HTTP/1.1 ఫీల్డ్లో keep-alive మరియు Upgrade కలిసినప్పుడు ప్రతి Connection ఎంపికను పెద్ద-చిన్న అక్షర భేదం లేకుండా పార్స్ చేయండి.
ఈ విలువలు ఒకే మోడ్ యొక్క పోటీ స్పెల్లింగ్లు కావు:
Connection: Upgrade
Connection: keep-alive, Upgrade
రెండవది రెండు కనెక్షన్ ఎంపికలను జాబితా చేస్తుంది. HTTP, Connection ను కామాతో వేరు చేసిన జాబితాగా నిర్వచిస్తుంది, ఎంపిక పేర్లు పెద్ద-చిన్న అక్షరాలను బట్టి మారవు. మొత్తం విలువను ఖచ్చితమైన Upgrade స్ట్రింగ్తో పోల్చే కోడ్ ఆ ఎంపిక ఉన్న చెల్లుబాటు జాబితాను దాటవేస్తుంది.
సాధారణ ఫార్వార్డింగ్ కోసం, HTTP మధ్యవర్తి వచ్చే ఫీల్డ్ను పార్స్ చేసి, తన ఎంపికలతో పేరు పెట్టిన ఫీల్డ్లను తొలగిస్తుంది, తర్వాత Connection ను తొలగిస్తుంది లేదా తదుపరి కనెక్షన్ కోసం మధ్యవర్తి సొంత నియంత్రణ ఎంపికలతో భర్తీ చేస్తుంది.
హార్డ్కోడ్ చేసిన Keep-Alive ఫీల్డ్ను మాత్రమే తొలగించడం సరిపోదు. ఒక సందేశం జాబితాలో కనెక్షన్-నిర్దిష్టమైన మరో ఫీల్డ్ను పేరు పెట్టవచ్చు, ఆ ఫీల్డ్ సాధారణ ఫార్వార్డింగ్లోకి లీక్ కాకూడదు.
ప్రోటోకాల్ అప్గ్రేడ్కు మద్దతు ఇవ్వడానికి రెండు కనెక్షన్లు మరియు కొత్త ప్రోటోకాల్ను ఉద్దేశపూర్వకంగా నిర్వహించాలి. వచ్చే Upgrade హెడర్లను గుడ్డిగా కాపీ చేయడం ఆ బదిలీ అమలు కాదు.
ఒక బ్రౌజర్ పనిచేసి మరొకటి విఫలమైనప్పుడు, మధ్యవర్తి రెండు వైపులా ఉన్న వాస్తవ ఫీల్డ్ విలువలను పోల్చండి. ఒక టోకెన్ మరియు రెండు టోకెన్ల జాబితా మధ్య వ్యత్యాసం, బ్రౌజర్ మరొక బ్రౌజర్ ఖచ్చితమైన ఫార్మాటింగ్ను అనుకరించాల్సిన అవసరం లేకుండానే పార్సర్ లోపాన్ని వెల్లడించగలదు.
ఇది ప్రాక్సీ పార్స్ చేసే HTTP సందేశాలకు సంబంధించినది. సాధారణ HTTPS CONNECT సొరంగం ఆ ప్రాక్సీకి గుప్తీకరించిన వెబ్సైట్ Connection ఫీల్డ్ను చూపించదు.