HTTPS అనేది కేవలం ఒక TLS-encrypted channel లోపల నడిచే HTTP. TLS (Transport Layer Security) మీకు మూడు guarantees ఇస్తుంది: confidentiality (traffic encrypt అవుతుంది), integrity (గుర్తించబడకుండా tamper చేయలేరు), మరియు authentication (మీరు నిజంగా certificateలో పేర్కొన్న serverతో మాట్లాడుతున్నారు). ఏ HTTP పంపే ముందు ఇది ఒక handshakeలో negotiate చేయబడుతుంది:
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)
