HTTPS بس ایک TLS-encrypted چینل کے اندر چلتا ہوا HTTP ہے۔ TLS (Transport Layer Security) آپ کو تین ضمانتیں دیتا ہے: confidentiality (ٹریفک 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)
