خېرىدار 200 Connection Established نى كۆرۈپ TLS نى باشلايدۇ، ئاندىن TLS خاتىرىسى بولۇشى كېرەك بولغان يەردە دەرھال مەنىسىز نەرسىلەرنى دوكلات قىلىدۇ. نىشاننىڭ شىفىر تەڭشەكلىرىنى ئەيىبلەشتىن بۇرۇن تاماملانمىغان HTTP ئىنكاسىنى ئىزدەڭ.

HTTP/1 CONNECT ئالماشتۇرۇشىدا ھالەت قۇرى پەقەت ئىنكاسنىڭ باشلىنىشى. ئۇنىڭدىن كېيىن باش ئېتىكى ساھەلىرى كېلىشى مۇمكىن. مۇۋەپپەقىيەتلىك CONNECT ئىنكاسىدىن كېيىن باش ئېتىكى بۆلۈمىنى ئاخىرلاشتۇرىدىغان قۇرۇق قۇر تونېلغا ئۆتۈشنى كۆرسىتىدۇ.

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

بۇ بايتلار بىر ئوقۇشتا، بىر قانچە ئوقۇشتا ياكى كېيىنكى بايتلارنىمۇ ئۆز ئىچىگە ئالغان ئوقۇشتا كېلىشى مۇمكىن. TCP مۇلازىمېتىرنىڭ يېزىش چېگرىسىنى ساقلىمايدۇ.

تاپشۇرۇشنى ئېنىق parser ھالىتىگە ئايلاندۇرۇڭ

  1. ھالەت قۇرىنى توپلاپ تەھلىل قىلىڭ. توغرا ئىنگلىزچە سەۋەب جۈملىسى ئورنىغا سانلىق ھالەتنى ئىشلىتىڭ.
  2. باش ئېتىكى بۆلۈمىنىڭ تولۇق ئاخىرلاشقۇچىسى كەلگۈچە داۋاملاشتۇرۇڭ. مۇۋەپپەقىيەتلىك ھالەت قۇرى قالغان ساھەلەرنى يوق قىلمايدۇ.
  3. مۇۋەپپەقىيەتلىك CONNECT ئىنكاسىدا شۇ ئاخىرلاشقۇچىدىن كېيىنكى بايتنى تونېل سانلىق مەلۇماتىنىڭ باشلىنىشى دەپ قاراڭ. باشقا ئىنكاسلاردا مۇناسىپ HTTP ئىنكاسى ۋە دەلىللەش بىر تەرەپ قىلىشنى ئەمەل قىلىڭ.
  4. ئۇلىنىش ۋە ئىشلىتىلمىگەن بايتلارنى كېيىنكى پروتوكول قوللايدىغان بۇفېرلىق I/O كۆرۈنمە يۈزى ئارقىلىق يۆتكەڭ.

ياخشى ئايرىغۇچ ئىزدەش بولسىمۇ ئاخىرقى قەدەم مۇھىم. بۇفېرلىق ئوقۇغۇچى parser تەلەپ قىلغاندىن كۆپرەك socket ئىشلىتىپ بولغان بولۇشى مۇمكىن. يالىڭاچ socket تا TLS باشلاپ شۇ ئوقۇغۇچىنى تاشلىسا بايتلار ئوقۇغۇچىنىڭ شەخسىي بۇفېرىدا قېلىپ قېلىشى مۇمكىن.

تەڭشەش ئۈچۈن ۋاقىت چېكى ۋە باش ئېتىكى چوڭلۇقى چېكىنى ئىشلىتىڭ. ئاخىرلاشقۇچىدىن بۇرۇنقى EOF تاماملانمىغان ۋاكالەتچى ئىنكاسى، مەڭگۈ ساقلاڭ ياكى قانداق بولسىمۇ TLS سىناڭ دېگەن تەكلىپ ئەمەس.

بىر قانچە چېگرا ھەققىدە ئويلىنىڭ

Proxy-Agent: دىن كېيىن ئاخىرلىشىدىغان بىر ئوقۇشنى تەسەۋۋۇر قىلىڭ. parser غا يەنە HTTP باش ئېتىكى بايتلىرى كېرەك. ئاخىرقى CRLF تەرتىپىنىڭ ئوتتۇرىسىدا ئاخىرلىشىدىغان يەنە بىرنى تەسەۋۋۇر قىلىڭ. ئۇ يەنىلا تولۇق باش ئېتىكى بۆلۈمى ئەمەس. ئەمدى شۇ بۇفېردا تولۇق مۇۋەپپەقىيەتلىك باش ئېتىكى بۆلۈمىدىن كېيىن تونېل بايتلىرى كېلىشىنى تەسەۋۋۇر قىلىڭ: ئۇ قوشۇمچە بايتلار تاپشۇرۇشتىن ئۆتۈشى كېرەك.

407 باشقا نەتىجە. ئۇ دەلىللەش بىر تەرەپ قىلىشنى تەلەپ قىلىدۇ؛ ھەرگىز ئېچىلمىغان تونېلغا TLS ClientHello كىرگۈزۈشكە رۇخسەت قىلمايدۇ.

قول ئېلىشىشنى ئەمەلگە ئاشۇرۇش خىزمەتنىڭ ئۆزى بولمىسا، خىزمەت قىلىنىدىغان ئۇلىغۇچنى تاللاڭ. بۇ چېگرا بۇ يەردە كۆرسىتىلگەن HTTP/1 ئالماشتۇرۇشىغا خاس. HTTP/2 ۋاكالەتچىسى CONNECT نى باشقا رامكا قۇرۇلۇشى بار ئېقىمدا كۆتۈرىدۇ.

مۇناسىۋەتلىك ماقالىلەر