Fyrir ssl::stream<tcp::socket> í gegnum venjulegt HTTP-millilið notið þið hrárása flutninginn áður en þið biðjið hann um TLS til áfangastaðar:

auto& transport = tlsStream.next_layer();
  1. Tengið þann flutning við hýsil og gátt milliliðarins. Fyrir leyfðan opinberan HTTPS-áfangastað án skilgreindra milliliðaskilríkja býður HTTP-milliliðalistinn upp á hugsanlega endapunkta; athugið hvort frambjóðandinn leyfir umbeðin göngin.
  2. Sendið CONNECT með authority áfangastaðarins, til dæmis api.example:443, og greinið heildar svarhausana á hráa flutningnum. Árangursríkt 2xx opnar göngin; synjun er áfram HTTP-milliliðasvar.
  3. Stillið hýslisheiti áfangastaðarins, nauðsynlegt SNI, traustrót og sannprófun jafningja, og hefjið síðan handaband biðlarans á tlsStream.
  4. Þegar TLS hefur tekist, notið lestur og skrif SSL-straumsins fyrir forritið. Að lesa næsta lag beint á þeim tímapunkti víkur fram hjá TLS-vinnslu.

Færið hvert umframmagn HTTP-greinarans á næsta stig. Asio hefur ofhleðslur fyrir biðminnisbundin handabönd; að henda hala sem greinarinn á getur týnt bætum sem þegar eru lesin úr sokknum.

Með þessari einföldu gerð ná bæði next_layer og lowest_layer TCP. Fleiri umbúðir geta gert þau ólík, svo veljið viðmótið sem ber raunverulegt vírprótokol milliliðarins. HTTPS-millilið bætir við enn einu TLS-stigi og er utan þessarar CONNECT-röð í hreinu texta.

Tengdir greinar