Protokol WebSocket direka bentuk untuk berfungsi dengan infrastruktur rangkaian sedia ada. Sebagai sebahagian daripada prinsip reka bentuk ini, spesifikasi protokol untuk sambungan WebSocket mentakrifkan sambungan HTTP sebagai permulaan kitaran hayatnya, sekali gus memastikan keserasian ke belakang sepenuhnya dengan dunia pra-WebSocket. Secara umumnya, menukar WebSocket daripada protokol HTTP dipanggil jabat tangan WebSocket.
Pelayar menghantar permintaan kepada pelayan, menunjukkan bahawa ia mahu menukar protokol WebSocket daripada HTTP. Keinginan pelanggan dinyatakan melalui tajuk peningkatan, kodnya adalah seperti berikut:
Jika pelayan memahami protokol WebSocket, ia bersetuju dengan suis protokol melalui pengepala Naik Taraf.
Pada ketika ini sambungan HTTP terputus dan menggantikan sambungan WebSocket pada sambungan TCP/IP asas yang sama. Sambungan WebSocket menggunakan HTTP (80) dan port yang sama seperti HTTPS (443), secara lalai.
Selepas sambungan diwujudkan, bingkai data WebSocket boleh dihantar berulang-alik antara klien dan pelayan dalam mod dupleks penuh. Kedua-dua teks dan bingkai binari boleh dihantar serentak dalam kedua-dua arah. Hanya dua bait data dibingkaikan secara minima. Untuk bingkai teks, setiap bingkai bermula pada 0x00 bait dan berakhir pada 0xff bait, yang mengandungi data UTF-8. Bingkai teks WebSocket menggunakan penamat, manakala bingkai binari menggunakan panjang awalan.