⚠️ This section won't work well without Javascript! ⚠️
Enable the execution of scripts in this site to be able to interact with the dynamic components here, or... just be aware that they might break.
This diagram is rendered with JavaScript. Source:
@startuml autonumber "<b>[00]</b>" participant "Browser (Client)" as Client participant "Server (Website)" as Server == TCP 3-Way Handshake == Client -> Server: SYN Server -> Client: SYN-ACK Client -> Server: ACK == TLS 1.3 Handshake (Encryption Setup) == Client -> Server: ClientHello\n(Supported Cipher Suites, TLS Version, Client Random, Key Share) note over Server: Server verifies TLS version,\nselects cipher, generates its key share Server -> Client: ServerHello\n(Selected Cipher, Server Random, Key Share) note over Client, Server: Both parties calculate the Shared Master Secret (Forward Secrecy) note over Server: Following messages are ENCRYPTED using the handshake key Server -> Client: EncryptedExtensions / Certificate / CertificateVerify Server -> Client: Finished note over Client: Client verifies Server Certificate\nagainst trusted Root CAs Client -> Server: Finished note over Client, Server: Handshake complete. Main traffic keys derived. == HTTPS Data Exchange (Encrypted) == Client -> Server: **HTTP GET /index.html** (Encrypted Application Data) note over Server: Decrypts request, processes page logic Server -> Client: **HTTP 200 OK** (Encrypted Application Data / HTML) == Connection Closure == Client -> Server: close_notify (TLS alert) Server -> Client: close_notify (TLS alert) Client -> Server: FIN Server -> Client: ACK / FIN Client -> Server: ACK @enduml