Nge-ssl::stream<tcp::socket> ngokusebenzisa i-proxy evamile ye-HTTP, qala usebenzise ukuthutha kwayo okungahluziwe ngaphambi kokuyala ukuthi yenze i-TLS yendawo:

auto& transport = tlsStream.next_layer();
  1. Xhuma lokho kuthutha ku-host ne-port ye-proxy. Uma indawo yomphakathi ye-HTTPS evunyelwe ingenazo iziqinisekiso ze-proxy ezilungisiwe, uhlu lwe-proxy ye-HTTP lunikeza izindawo zokugcina ezingaba khona; hlola ukuthi ozokhethwa uvumela yini umhubhe oceliwe.
  2. Thumela i-CONNECT ekhombisa i-authority yendawo, njenge-api.example:443, futhi uhlaziye izihloko zimpendulo ezigcwele kukho ukuthutha okulula. I-2xx ephumelelayo ivula umhubhe; ukwenqaba kuhlala kuyimpendulo ye-proxy ye-HTTP.
  3. Lungisa igama le-host yendawo, i-SNI edingekayo, izimpande zokuthembela nokuqinisekiswa kwe-peer, bese uqala ukuxhawana komxhasi ku-tlsStream.
  4. Ngemva kokuphumelela kwe-TLS, sebenzisa ukufunda nokubhala ngomfudlana we-SSL wohlelo lokusebenza. Ukufunda ungqimba olungezansi ngqo ngaleso sikhathi kudlula ukucutshungulwa kwe-TLS.

Yisa noma yikuphi okusele kwesihlukanisi se-HTTP esigabeni esilandelayo. I-Asio inezinto ezingaphezulu zokuxhawana ezinamabhafa; ukulahla umsila ophethwe isihlukanisi kungalahlekelwa amabhayithi asevele afundiwe kusokhethi.

Kulolu hlobo olulula, i-next_layer ne-lowest_layer zombili zifinyelela ku-TCP. Izembozo ezengeziwe zingazenza zehluke, ngakho khetha isixhumanisi esithwala iphrothokholo yangempela yocingo ye-proxy. I-proxy ye-HTTPS yengeza esinye isigaba se-TLS futhi ayikho kulolu landelwano lwe-CONNECT lombhalo ocacile.

Izihloko ezihlobene