HTTPS é apenas HTTP rodando dentro de um canal criptografado por TLS. O TLS (Transport Layer Security) lhe dá três garantias: confidentiality (o tráfego é criptografado), integrity (não pode ser adulterado sem ser detectado) e authentication (você está realmente falando com o servidor nomeado no certificate). Ele é negociado num handshake antes de qualquer HTTP ser enviado:
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)
