Bíða eftir tómari linju eftir CONNECT
Les fulla HTTP/1 CONNECT-svar áðrenn tú letur socketin til TLS, eisini tá statuslinjan kemur fyrst.
Klienturin sær 200 Connection Established, byrjar TLS og boðar beint frá órímiligheit har ein TLS-færsla eigur at vera. Leita eftir óliðugum HTTP-svari áðrenn tú kenner mótmælinum cipher-innstillingarnar.
Í einum HTTP/1 CONNECT-skifti er statuslinjan bert byrjanin av svarinum. Header-feløg kunnu koma eftir henni. Tóma linjan, sum endar header-partin, merkir skiftið til tunnalin eftir eitt eydnað CONNECT-svar.
HTTP/1.1 200 Connection Established\r\n
Proxy-Agent: example\r\n
\r\n
Hesir bytes kunnu koma í einum lesingi, í fleiri lesingum, ella í einum lesingi, sum eisini hevur næstu bytes. TCP varðveitir ikki skrivmarkini hjá servaranum.
Ger avhendingina til eitt greitt parser-støðu
- Savna og greina statuslinjuna. Brúka talstøðuna í staðin fyri eina nágreina enska orsøkar-frasu.
- Halt fram til fulla endan á header-partinum er komin. Ein eydnað statuslinja letur hini feløgini ikki hvørva.
- Í einum eydnaðum CONNECT-svari er bytin beint eftir endanum byrjanin av tunnaldátum. Í øðrum svarum fylg viðkomandi viðgerð av HTTP-svari og samdáming.
- Flyt sambandið og allar ónýttar bytes gjøgnum tað buffereraða I/O-viðmótið, sum næsta protokollið styður.
Síðsta stigið hevur týdning eisini við góðari leiting eftir skilmarki. Ein buffereraður lesari kann hava brúkt meira av socketinum, enn parserin bað um. At byrja TLS á berum socketi og lata lesaran vera kann lata bytes verða eftir í privata bufferinum hjá lesaranum.
Brúka eina freist fyri uppseting og eina mark fyri header-stødd. EOF áðrenn endan er eitt ófullfíggjað proxy-svar, ikki eitt boð um at bíða í allar ævir ella royna TLS allíkavæl.
Hugsa teg ígjøgnum fleiri mark
Hugsa tær ein lesing, sum endar eftir Proxy-Agent:. Parserin tørvar enn fleiri HTTP-header-bytes. Hugsa tær aðra, sum endar mitt í seinastu CRLF-røðini. Tað er enn ikki ein fullur header-partur. Hugsa tær nú ein fullan eydnaðan header-part, sum tunnalbytes fylgja eftir í sama buffer: hesir eyka bytes mugu klára avhendingina.
407 er ein annar útgongd. Tað krevur samdámingarviðgerð; tað loyvir ikki TLS ClientHello inn í eina tunnal, sum ongantíð varð opnað.
Vel heldur einum viðhildnum connector, uttan so at at seta handtakið í verk er uppgávan. Hetta markið er serstakt fyri HTTP/1-skiftið, sum víst verður her. Ein HTTP/2-proxy ber CONNECT á einum streymi við øðrum framing.