HTTPS એ માત્ર TLS-encrypted channel ની અંદર ચાલતું HTTP છે. TLS (Transport Layer Security) તમને ત્રણ ખાતરીઓ આપે છે: confidentiality (traffic encrypted છે), 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)
