Aṣàmúlò náà rí 200 Connection Established, ó bẹ̀rẹ̀ TLS, ó sì ní kété náà jábọ̀ ohun tí kò ní ìtumọ̀ níbi tí ó yẹ kí àkọsílẹ̀ TLS wà. Wá ìdáhùn HTTP tí kò parí kí o tó dá ibi-afẹ́fẹ́ sísan ẹ̀ṣẹ̀.

Nínú ìpàṣépọ̀ HTTP/1 CONNECT, ìlà ipò jẹ́ ìbẹ̀rẹ̀ ìdáhùn nìkan. Àwọn pápá àkọlé lè tẹ̀lé e. Ìlà òfo tí ó parí ẹ̀ka àkọlé fi ìyípadà sí ọ̀nà-ìsàlẹ̀ hàn lẹ́yìn ìdáhùn CONNECT tí ó ṣe àṣeyọrí.

HTTP/1.1 200 Connection Established\r\n
Proxy-Agent: example\r\n
\r\n

Àwọn báìtì wọ̀nyí lè dé nínú ìkàwé kan, ìkàwé púpọ̀, tàbí ìkàwé tí ó tún ní àwọn báìtì tó tẹ̀lé. TCP kò pa àwọn ààlà kíkọ ti sáfà mọ́.

Sọ ìfàṣẹ́kọ́sílẹ̀ di ipò parser tí ó ṣe kedere

  1. Kó àti ṣàyẹ̀wò ìlà ipò. Lo ipò oní-nọ́mbà dípò gbólóhùn ìdí èdè Gẹ̀ẹ́sì gbọ́rọ̀.
  2. Tẹ̀síwájú títí ìparí ẹ̀ka àkọlé pípé yóò fi dé. Ìlà ipò tí ó ṣe àṣeyọrí kò mú àwọn pápá tó kù pàdánù.
  3. Nínú ìdáhùn CONNECT tí ó ṣe àṣeyọrí, ka báìtì tí ó wà lẹ́sẹ̀kẹsẹ̀ lẹ́yìn ìparí yẹn sí ìbẹ̀rẹ̀ dátà ọ̀nà-ìsàlẹ̀. Nínú àwọn ìdáhùn mìíràn, tẹ̀lé ìtọ́jú ìdáhùn HTTP àti ìjẹ́rìí tí ó yẹ.
  4. Gbé ìsopọ̀ àti àwọn báìtì tí a kò lò lọ nípasẹ̀ ìkànnì I/O oní-àpòtí tí ìlànà tó tẹ̀lé ń ṣe àtìlẹ́yìn fún.

Ìgbésẹ̀ ìkẹyìn ṣe pàtàkì kódà pẹ̀lú wíwá ìpín tí ó dára. Olùkàwé oní-àpòtí lè ti jẹ socket púpọ̀ ju bí parser ti béèrè lọ. Bíbẹ̀rẹ̀ TLS lórí socket òfo nígbà tí a fi olùkàwé yẹn sílẹ̀ lè fi àwọn báìtì sínú àpòtí àdáni olùkàwé.

Lo àkókò ìparí fún ètò àti ààlà fún bíburú àkọlé. EOF ṣáájú ìparí jẹ́ ìdáhùn proxy tí kò pé, kì í ṣe ìpè láti dúró títí láé tàbí gbìyànjú TLS bí ó ti wù kí ó rí.

Ronú nípasẹ̀ àwọn ààlà púpọ̀

Fojú inú wo ìkàwé tí ó parí lẹ́yìn Proxy-Agent:. Parser ṣì nílò àwọn báìtì àkọlé HTTP sí i. Fojú inú wo òmíràn tí ó parí ní àárín ìtẹ̀lé CRLF ìkẹyìn. Ìyẹn kò tíì jẹ́ ẹ̀ka àkọlé pípé. Ní báyìí fojú inú wo ẹ̀ka àkọlé pípé tí ó ṣe àṣeyọrí tí àwọn báìtì ọ̀nà-ìsàlẹ̀ tẹ̀lé e nínú àpòtí kan náà: àwọn báìtì àfikún yẹn gbọ́dọ̀ ye ìfàṣẹ́kọ́sílẹ̀ já.

407 jẹ́ àbájáde mìíràn. Ó nílò ìtọ́jú ìjẹ́rìí; kò gbà kí TLS ClientHello wọ inú ọ̀nà-ìsàlẹ̀ tí a kò ṣí rí.

Yàn ohun-ìsopọ̀ tí a ń tọ́jú àyè-bí-ààyè àyàfi bí ṣíṣe ìfọwọ́sowọ́pọ̀ fúnra rẹ̀ bá jẹ́ iṣẹ́ náà. Ààlà yìí ṣe pàtàkì fún ìpàṣépọ̀ HTTP/1 tí a fi hàn níbí. Proxy HTTP/2 gbé CONNECT lórí ṣíṣàn tí ó ní ìṣètò fírémù mìíràn.

Àwọn àpilẹ̀kọ tó jọra