The TLS handshake is the initial exchange between client and server that agrees on encryption keys and verifies the server's identity before any application data flows.
Explanation
Every HTTPS connection starts with a TLS handshake. The browser sends a ClientHello (with the SNI hostname, supported ciphers, TLS version). The server responds with ServerHello (chosen cipher, certificate). Client verifies the certificate against trusted roots. Both sides derive shared session keys. Only then does the request itself get sent, encrypted with the session keys. In TLS 1.3 (the modern default) the handshake completes in one round-trip and much of it is encrypted. The parts that stay in plaintext are the SNI hostname and the TLS version — which is why SNI is the primary DPI target for censorship. ECH (Encrypted Client Hello) hides even those.
Related terms