CONNECT පසු හිස් පේළිය එනතුරු රැඳී සිටින්න
තත්ත්ව පේළිය පළමුව ආවත්, socket එක TLS වෙත භාර දීමට පෙර සම්පූර්ණ HTTP/1 CONNECT ප්රතිචාරය කියවන්න.
සේවාලාභියා 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 සේවාදායකයේ ලේඛන සීමා ආරක්ෂා නොකරයි.
හුවමාරුව පැහැදිලි පාර්සර තත්ත්වයක් කරන්න
- තත්ත්ව පේළිය එකතු කර විග්රහ කරන්න. නිශ්චිත ඉංග්රීසි හේතු වාක්යය වෙනුවට සංඛ්යාත්මක තත්ත්වය භාවිත කරන්න.
- ශීර්ෂ කොටසේ සම්පූර්ණ අවසානය පැමිණෙන තෙක් දිගටම කරගෙන යන්න. සාර්ථක තත්ත්ව පේළියක් ඉතිරි ක්ෂේත්ර අතුරුදහන් නොකරයි.
- සාර්ථක CONNECT ප්රතිචාරයක, එම අවසානයට පසුව ඇති බයිටය උමං දත්තවල ආරම්භය ලෙස සලකන්න. අනෙක් ප්රතිචාරවලදී අදාළ HTTP ප්රතිචාර හා සත්යාපන කටයුතු අනුගමනය කරන්න.
- සම්බන්ධතාවය සහ නොභාවිත බයිට ඊළඟ ප්රොටෝකෝලය අනුග්රහය දක්වන බෆර සහිත I/O අතුරුමුහුණත හරහා මාරු කරන්න.
හොඳ බෙදුම්කරු සෙවීමක් තිබුණත් අවසන් පියවර වැදගත් වේ. බෆර සහිත කියවන්නා පාර්සරය ඉල්ලූ ප්රමාණයට වඩා socket පරිභෝජනය කර තිබිය හැක. නිරුවත් socket මත TLS ආරම්භ කර එම කියවන්නා අත්හැරීමෙන් බයිට කියවන්නාගේ පෞද්ගලික බෆරයේ සිරවිය හැක.
සැකසීම සඳහා කාල සීමාවක් සහ ශීර්ෂ ප්රමාණ සීමාවක් භාවිත කරන්න. අවසානයට පෙර EOF යනු අසම්පූර්ණ ප්රොක්සි ප්රතිචාරයකි, සදාකාලිකව රැඳී සිටීමට හෝ කෙසේ හෝ TLS උත්සාහ කිරීමට ආරාධනාවක් නොවේ.
සීමා කිහිපයක් ගැන සිතන්න
Proxy-Agent: ට පසුව අවසන් වන කියවීමක් සිතන්න. පාර්සරයට තවම HTTP ශීර්ෂ බයිට අවශ්යයි. අවසාන CRLF අනුක්රමය මැදින් අවසන් වන තවත් කියවීමක් සිතන්න. එය තවම සම්පූර්ණ ශීර්ෂ කොටසක් නොවේ. දැන් එකම බෆරයේ සම්පූර්ණ සාර්ථක ශීර්ෂ කොටසකින් පසු උමං බයිට එන බව සිතන්න: එම අමතර බයිට හුවමාරුවෙන් ගැලවිය යුතුය.
407 යනු වෙනස් ප්රතිඵලයකි. එයට සත්යාපන කටයුතු අවශ්යයි; කිසිදා නොවිවෘත වූ උමං එකකට TLS ClientHello යැවීමට එය අවසර නොදෙයි.
හස්ත මුද්රාව ක්රියාත්මක කිරීමම කාර්යය නොවේ නම්, නඩත්තු කරන කනෙක්ටරයක් තෝරන්න. මෙම සීමාව මෙහි පෙන්වා ඇති HTTP/1 හුවමාරුවට පමණක් අදාළය. HTTP/2 ප්රොක්සිය CONNECT වෙනස් රාමුකරණයක් සහිත ධාරාවක ගෙන යයි.