Skip to content
Devgo

HTTPS

HTTP over TLS — the encrypted, authenticated version of HTTP. HTTPS encrypts traffic and verifies the server's identity via a certificate. Every modern website should use HTTPS. The 'S' is TLS, which provides confidentiality, integrity, and server authentication.

When to use
  • Every website, always.
  • Any API handling sensitive data.
When not to
  • Internal isolated networks where the threat model allows (rare).

Definition

HTTPS is wrapped in . The client and server do a TLS handshake (exchange keys, verify the server certificate), then all HTTP traffic flows encrypted. TLS 1.3 does this in one round trip. Certificates are issued by Certificate Authorities (CAs) trusted by browsers.

Why it exists

Plain is readable and tamperable by anyone on the network. HTTPS prevents eavesdropping, tampering, and impersonation, and enables modern web features (HTTP/2, service workers, geolocation).

How it works

Client connects on port 443, server presents a certificate. handshake negotiates encryption and verifies the cert via a CA chain. After the handshake, requests/responses are encrypted. Let's Encrypt provides free certificates.

Scaling limits

handshake adds latency (mitigated by resumption and TLS 1.3). Certificate management and renewal need automation (certbot, ACME).

Cost shape

Free certificates via Let's Encrypt. The cost is handshake CPU and cert management.

Alternatives

  • HTTP — Faster but insecure — never use for public sites.

Failure modes

  • Expired certificates causing browser warnings.
  • Mixed content ( resources on HTTPS pages).
  • Certificate chain issues.

, ,