Hypertext Transfer Protocol Secure (HTTPS) is an extension of the Hypertext Transfer Protocol (HTTP). It uses encryption for secure communication over a computer network, and is widely used on the Internet. In HTTPS, the communication protocol is encrypted using Transport Layer Security (TLS) or, formerly, Secure Sockets Layer (SSL). The protocol is therefore also referred to as HTTP over TLS, or HTTP over SSL.
The principal motivations for HTTPS are authentication of the accessed website and protection of the privacy and integrity of the exchanged data while it is in transit. It protects against man-in-the-middle attacks, and the bidirectional block cipher encryption of communications between a client and server protects the communications against eavesdropping and tampering. The authentication aspect of HTTPS requires a trusted third party to sign server-side digital certificates. This was historically an expensive operation, which meant fully authenticated HTTPS connections were usually found only on secured payment transaction services and other secured corporate information systems on the World Wide Web. In 2016, a campaign by the Electronic Frontier Foundation with the support of web browser developers led to the protocol becoming more prevalent. HTTPS is now used more often by web users than the original, non-secure HTTP, primarily to protect page authenticity on all types of websites, secure accounts, and keep user communications, identity, and web browsing private.
HTTPs communications
HTTPS over TCP with TLS 1.2
- Client says to server let's sync
- Server replies OK and I acknowledged your previous message
- Client says Cool; I acknowledged that you agreed to sync with me.
- Client asks Hello server which Encryption key should we use
- Server said we will use XYZ algo
- Client replies cool, here is my public key + other info
- Server replies, here is my public key + other info
- Client makes HTTPS call
- Server responds
HTTPS over TCP with TLS 1.3
- Client says to server let's sync
- Server replies OK and I acknowledged your previous message
- Client says Cool; I acknowledged that you agreed to sync with me.
- Client says as there are a handful of encryption algo there, here is my public key + other info
- Server says, wow you are being pretty proactive, here is my public key + other info
- Client makes HTTPS call
- Server responds
HTTPS over QUIC
- TLS and QUIC Connection combined together.
- In TCP we could not combine cause TCP and TLS were created in two different times.
HTTPS over TCP fast Open
HTTPS over TCP with TLS 1.3 ORTT
- When establishing the TLS connection, the client sends encrypted request too.
HTTPS over QUIC with ORTT
- This is the fastest way to encrypt connection.
- Cloudflare did it.