ସାଧାରଣ HTTP ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ssl::stream<tcp::socket> ପାଇଁ ପ୍ରଥମେ ଏହାର କଞ୍ଚା ପରିବହନ ବ୍ୟବହାର କରନ୍ତୁ, ତାପରେ ଏହାକୁ ଲକ୍ଷ୍ୟର TLS କରିବାକୁ କୁହନ୍ତୁ:

auto& transport = tlsStream.next_layer();
  1. ସେହି ପରିବହନକୁ ପ୍ରକ୍ସି ହୋଷ୍ଟ ଏବଂ ପୋର୍ଟ ସହିତ ସଂଯୋଗ କରନ୍ତୁ। ଅନୁମତିପ୍ରାପ୍ତ ସାର୍ବଜନୀନ HTTPS ଲକ୍ଷ୍ୟ ପାଇଁ ପ୍ରକ୍ସି ପ୍ରମାଣପତ୍ର ସେଟ୍ ନଥିଲେ, HTTP ପ୍ରକ୍ସି ତାଲିକା ପ୍ରାର୍ଥୀ ଏଣ୍ଡପଏଣ୍ଟ ଦିଏ; ପ୍ରାର୍ଥୀ ଅନୁରୋଧିତ ଟନେଲକୁ ଅନୁମତି ଦିଏ କି ନାହିଁ ଯାଞ୍ଚ କରନ୍ତୁ।
  2. ଲକ୍ଷ୍ୟର authority ଉଲ୍ଲେଖ କରି CONNECT ପଠାନ୍ତୁ, ଯେପରି api.example:443, ଏବଂ ସାଧାରଣ ପରିବହନରେ ସମ୍ପୂର୍ଣ୍ଣ ପ୍ରତିକ୍ରିୟା ହେଡର ବିଶ୍ଳେଷଣ କରନ୍ତୁ। ସଫଳ 2xx ଟନେଲ ଖୋଲେ; ପ୍ରତ୍ୟାଖ୍ୟାନ HTTP ପ୍ରକ୍ସି ପ୍ରତିକ୍ରିୟା ହୋଇ ରହେ।
  3. ଲକ୍ଷ୍ୟ ହୋଷ୍ଟନାମ, ଆବଶ୍ୟକ SNI, ବିଶ୍ୱାସ ମୂଳ ଏବଂ peer ଯାଞ୍ଚ ସେଟ୍ କରନ୍ତୁ, ତାପରେ tlsStream ରେ କ୍ଲାଏଣ୍ଟ ହ୍ୟାଣ୍ଡସେକ ଆରମ୍ଭ କରନ୍ତୁ।
  4. TLS ସଫଳ ହେବା ପରେ ଆପ୍ ପାଇଁ SSL ଷ୍ଟ୍ରିମ୍ ମାଧ୍ୟମରେ ପଢ଼ିବା ଏବଂ ଲେଖିବା ବ୍ୟବହାର କରନ୍ତୁ। ସେହି ସମୟରେ ତଳ ସ୍ତରକୁ ସିଧାସଳଖ ପଢ଼ିବା TLS ପ୍ରକ୍ରିୟାକରଣକୁ ଏଡ଼ାଇ ଦିଏ।

HTTP ପାର୍ସରର ଯେକୌଣସି ଅବଶିଷ୍ଟ ପରବର୍ତ୍ତୀ ପର୍ଯ୍ୟାୟକୁ ନିଅନ୍ତୁ। Asio ରେ ବଫର୍ଯୁକ୍ତ ହ୍ୟାଣ୍ଡସେକ ଓଭରଲୋଡ ଅଛି; ପାର୍ସର ମାଲିକାନାର ଲାଞ୍ଜ ଫିଙ୍ଗିଲେ ସକେଟରୁ ପୂର୍ବରୁ ପଢ଼ାଯାଇଥିବା ବାଇଟ ହଜିପାରେ।

ଏହି ସରଳ ପ୍ରକାରରେ next_layer ଏବଂ lowest_layer ଉଭୟ TCP ପର୍ଯ୍ୟନ୍ତ ପହଞ୍ଚନ୍ତି। ଅଧିକ ରାପର ସେମାନଙ୍କୁ ଭିନ୍ନ କରିପାରେ, ତେଣୁ ପ୍ରକ୍ସିର ପ୍ରକୃତ ୱାୟର ପ୍ରୋଟୋକଲ ବହନ କରୁଥିବା ଇଣ୍ଟରଫେସ ବାଛନ୍ତୁ। HTTPS ପ୍ରକ୍ସି ଆଉ ଏକ TLS ପର୍ଯ୍ୟାୟ ଯୋଡ଼େ ଏବଂ ଏହି ସାଧାରଣ ପାଠ୍ୟ CONNECT କ୍ରମରୁ ବାହାରେ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ