Stenna l-linja vojta wara CONNECT
Aqra r-risposta HTTP/1 CONNECT sħiħa qabel ma tgħaddi s-socket lil TLS, anki meta l-linja tal-istat tasal l-ewwel.
Il-klijent jara 200 Connection Established, jibda TLS u minnufih jirrapporta ħmerijiet fejn suppost ikun hemm rekord TLS. Fittex risposta HTTP mhux mitmuma qabel ma tagħti l-ħtija lill-issettjar tas-sifri tad-destinazzjoni.
Fi skambju HTTP/1 CONNECT il-linja tal-istat hija biss il-bidu tar-risposta. Wara jistgħu jiġu oqsma tal-header. Il-linja vojta li tagħlaq is-sezzjoni tal-header tindika l-qbil għall-mina wara risposta CONNECT b'suċċess.
HTTP/1.1 200 Connection Established\r\n
Proxy-Agent: example\r\n
\r\n
Dawn il-bytes jistgħu jaslu f'qari wieħed, f'bosta qari, jew fi qari li jkun fih ukoll il-bytes li jmiss. TCP ma jżommx il-fruntieri tal-kitba tas-server.
Agħmel il-konsenja stat espliċitu tal-parser
- Iġbor u ppersja l-linja tal-istat. Uża l-istat numeriku minflok frażi tar-raġuni bl-Ingliż eżatta.
- Kompli sakemm tasal it-terminatur sħiħ tas-sezzjoni tal-header. Linja tal-istat b'suċċess ma tagħmilx l-oqsma li jifdal jisparixxu.
- F'risposta CONNECT b'suċċess, ikkunsidra l-byte immedjatament wara dak it-terminatur bħala l-bidu tad-data tal-mina. F'risposti oħra, segwi l-immaniġġjar xieraq tar-risposta HTTP u tal-awtentikazzjoni.
- Ittrasferixxi l-konnessjoni u l-bytes mhux użati mill-interfaċċja I/O bil-buffer li tappoġġja l-protokoll li jmiss.
L-aħħar pass huwa importanti anki b'tfittix tajjeb tad-delimitatore. Qarrej bil-buffer seta' kkonsma aktar mis-socket milli talab il-parser. Li tibda TLS fuq is-socket għarwien waqt li tħalli dak il-qarrej jista' jħalli bytes fil-buffer privat tal-qarrej.
Uża skadenza għas-setup u limitu għad-daqs tal-header. EOF qabel it-terminatur hija risposta proxy mhux kompluta, mhux stedina biex tistenna għal dejjem jew tipprova TLS xorta waħda.
Irraġuna dwar bosta fruntieri
Immaġina qari li jispiċċa wara Proxy-Agent:. Il-parser għadu jeħtieġ aktar bytes tal-header HTTP. Immaġina ieħor li jispiċċa f'nofs is-sekwenza CRLF finali. Dik għadha mhix sezzjoni tal-header kompleta. Issa immaġina sezzjoni tal-header sħiħa b'suċċess segwita minn bytes tal-mina fl-istess buffer: dawk il-bytes żejda jridu jgħaddu mill-konsenja.
407 huwa riżultat differenti. Jeħtieġ immaniġġjar tal-awtentikazzjoni; ma jawtorizzax TLS ClientHello f'mina li qatt ma nfetħet.
Ippreferi konnettur miżmum sakemm l-implimentazzjoni tal-handshake mhix ix-xogħol. Dan il-limitu huwa speċifiku għall-iskambju HTTP/1 muri hawn. Proxy HTTP/2 iġorr CONNECT fuq stream b'qafas differenti.