HTTPS बस एक TLS-encrypted channel के अंदर चलता हुआ HTTP है। TLS (Transport Layer Security) आपको तीन गारंटियाँ देता है: confidentiality (traffic encrypted है), integrity (इसे बिना पता चले छेड़ा नहीं जा सकता), और authentication (आप वाक़ई उसी server से बात कर रहे हैं जिसका नाम 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)
