Bíðið eftir auðu línunni eftir CONNECT
Lestu heildar HTTP/1 CONNECT svarið áður en þú lætur TLS fá socketið, jafnvel þótt stöðulínan komi fyrst.
Biðlarinn sér 200 Connection Established, byrjar TLS og tilkynnir strax bull þar sem TLS-færsla ætti að vera. Leitaðu að ókláruðu HTTP-svari áður en þú kennir dulkóðunarstillingum áfangastaðarins um.
Í HTTP/1 CONNECT samskiptum er stöðulínan aðeins byrjun svarsins. Hausreiti geta fylgt. Auða línan sem endar hauskaflann markar skiptinguna yfir í göngin eftir árangursríkt CONNECT svar.
HTTP/1.1 200 Connection Established\r\n
Proxy-Agent: example\r\n
\r\n
Þessir bæti geta komið í einni lestri, nokkrum lestrum eða lestri sem inniheldur líka næstu bæti. TCP varðveitir ekki skriftarmörk netþjónsins.
Gerðu afhendinguna að skýru stöðu þáttarans
- Safnaðu og þáttaðu stöðulínuna. Notaðu tölulegu stöðuna í stað nákvæmrar enskrar ástæðusetningar.
- Haltu áfram þar til fullur endir hauskaflans er kominn. Árangursrík stöðulína lætur reitina sem eftir eru ekki hverfa.
- Við árangursríkt CONNECT svar skal líta á bætið strax eftir endinum sem byrjun göngugagna. Við önnur svör fylgdu viðeigandi meðferð HTTP svars og auðkenningar.
- Flyttu tenginguna og öll ónotuð bæti um biðminnisviðmót I/O sem næsta samskiptareglan styður.
Síðasta skrefið skiptir máli jafnvel með góðri leit að skiltákni. Biðminnislesari getur hafa neytt meira af socketinu en þáttarinn bað um. Að hefja TLS á beru socketinu meðan lesaranum er yfirgefið getur skilið bæti eftir í einkabiðminni lesarans.
Notaðu tímafrest fyrir uppsetningu og hámark á hausstærð. EOF fyrir endinn er ófullkomið proxy svar, ekki boð um að bíða að eilífu eða prófa TLS samt.
Hugleiddu nokkur mörk
Ímyndaðu þér lestur sem endar eftir Proxy-Agent:. Þáttarinn þarf enn fleiri HTTP hausbæti. Ímyndaðu þér annan sem endar mitt í síðustu CRLF röðinni. Það er ekki enn fullur hauskafli. Ímyndaðu þér nú fullan árangursríkan hauskafla sem göngubæti fylgja í sama biðminni: þessi aukabæti verða að komast af afhendinguna.
407 er önnur niðurstaða. Það krefst auðkenningarmeðferðar; það leyfir ekki TLS ClientHello inn í göng sem voru aldrei opnuð.
Veldu viðhaldið tengi nema að útfæra handabandið sé verkefnið. Þetta mark er sérstakt fyrir HTTP/1 samskiptin sem sýnd eru hér. HTTP/2 proxy ber CONNECT á streymi með annarri rammagjörð.