ક્લાયન્ટ 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 સર્વરની લેખન સીમાઓ જાળવતું નથી.

હેન્ડઓફને સ્પષ્ટ પાર્સર સ્થિતિ બનાવો

  1. સ્ટેટસ લાઇન એકત્ર કરો અને પાર્સ કરો. ચોક્કસ અંગ્રેજી reason phrase ને બદલે સંખ્યાત્મક સ્ટેટસ વાપરો.
  2. હેડર વિભાગનો સંપૂર્ણ અંત આવે ત્યાં સુધી ચાલુ રાખો. સફળ સ્ટેટસ લાઇન બાકીના ફીલ્ડ અદૃશ્ય કરતી નથી.
  3. સફળ CONNECT પ્રતિસાદમાં અંત પછીની તરતની બાઇટને ટનલ ડેટાની શરૂઆત ગણો. બીજા પ્રતિસાદોમાં યોગ્ય HTTP પ્રતિસાદ અને પ્રમાણીકરણ પ્રક્રિયા અનુસરો.
  4. કનેક્શન અને ન વપરાયેલી બાઇટને આગલા પ્રોટોકોલ દ્વારા સમર્થિત બફરવાળા I/O ઇન્ટરફેસ દ્વારા સ્થાનાંતરિત કરો.

સારી ડિલિમિટર શોધ હોવા છતાં છેલ્લું પગલું મહત્વનું છે. બફરવાળો રીડર પાર્સરે માંગ્યું તેના કરતાં વધુ સોકેટ વાપરી શકે છે. નગ્ન સોકેટ પર TLS શરૂ કરીને એ રીડર છોડી દેવાથી બાઇટ રીડરના ખાનગી બફરમાં અટકી શકે છે.

સેટઅપ માટે સમયમર્યાદા અને હેડર કદની મર્યાદા વાપરો. અંત પહેલા EOF એ અધૂરો પ્રોક્સી પ્રતિસાદ છે, કાયમ રાહ જોવાનું કે કોઈપણ રીતે TLS અજમાવવાનું આમંત્રણ નથી.

કેટલીક સીમાઓ પર વિચાર કરો

ધારો કે એક વાંચન Proxy-Agent: પછી પૂરું થાય છે. પાર્સરને હજી વધુ HTTP હેડર બાઇટ જોઈએ છે. ધારો કે બીજું વાંચન છેલ્લા CRLF ક્રમની વચ્ચે પૂરું થાય છે. તે હજી સંપૂર્ણ હેડર વિભાગ નથી. હવે ધારો કે સંપૂર્ણ સફળ હેડર વિભાગ પછી એ જ બફરમાં ટનલ બાઇટ આવે છે: એ વધારાની બાઇટને હેન્ડઓફ પાર કરવો પડશે.

407 અલગ પરિણામ છે. તેને પ્રમાણીકરણ પ્રક્રિયા જોઈએ છે; કદી ન ખૂલેલી ટનલમાં TLS ClientHello મોકલવાની તે પરવાનગી આપતું નથી.

જો હેન્ડશેક લાગુ કરવો એ કામ ન હોય તો જાળવાયેલો કનેક્ટર પસંદ કરો. આ સીમા અહીં દર્શાવેલ HTTP/1 આદાનપ્રદાન પૂરતી છે. HTTP/2 પ્રોક્સી CONNECT ને અલગ ફ્રેમિંગવાળા સ્ટ્રીમ પર વહન કરે છે.

સંબંધિત લેખો