HTTPS আসলে একটি TLS-এনক্রিপ্টেড চ্যানেলের ভেতরে চলা HTTP মাত্র। TLS (Transport Layer Security) আপনাকে তিনটি নিশ্চয়তা দেয়: confidentiality (ট্রাফিক এনক্রিপ্টেড), integrity (ধরা না-পড়ে এতে হস্তক্ষেপ করা যায় না), এবং authentication (আপনি সত্যিই certificate-এ নাম-করা সার্ভারের সাথে কথা বলছেন)। যেকোনো HTTP পাঠানোর আগে এটি একটি handshake-এ আলোচিত হয়:
Client Server
│──── ClientHello ──────────────────────▶│ (TLS versions, cipher suites, random)
│◀─── ServerHello + Certificate ─────────│ (chosen cipher + cert with public key)
│ │
│ verify cert against a trusted CA │
│ agree on keys (e.g. ECDHE key exchange)│
│ │
│──── Finished (encrypted) ──────────────▶│
│◀─── Finished (encrypted) ───────────────│
│========= encrypted application data ====│ (now HTTP flows, encrypted)
