Komið CONNECT áður en Asio TLS-handaband er hafið
Notið næsta lag Asio SSL-straums fyrir venjulega HTTP-milliliðaumsýslu og hefjið síðan TLS í gegnum göngin sem samþykkt eru.
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();- 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.
- 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. - Stillið hýslisheiti áfangastaðarins, nauðsynlegt SNI, traustrót og sannprófun jafningja, og hefjið síðan handaband biðlarans á
tlsStream. - Þ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.