WebSocket El Sıkışma Sürecini Anlama
Standart bir HTTP bağlantısını WebSocket'e yükselten HTTP tabanlı el sıkışma sürecini ayrıntılı biçimde inceleyin.
WebSocket El Sıkışma Sürecini Anlama, CoddyKit'te ücretsiz bir WebSockets & Realtime Systems Programming dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, WebSockets & Realtime Systems Programming öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. WebSockets & Realtime Systems Programming kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Handshake: The Connection Upgrade
Imagine you're calling a friend, but instead of just talking, you first agree on a secret language. The WebSocket handshake is similar!
It's the crucial initial step where your browser (client) and a server agree to switch from a standard HTTP connection to a WebSocket connection.
Beyond HTTP's Limitations
Traditional HTTP is designed for short, one-off requests and responses. Think of loading a webpage – you ask, the server sends, and the connection closes.
- One-way: Client requests, server responds.
- Short-lived: Connection closes after each interaction.
- Overhead: Each new request needs to set up a new connection.
WebSockets need a persistent, two-way street for real-time data.
Client Initiates the Upgrade
The handshake begins with the client (your browser) sending a regular HTTP GET request to the server. But it's not truly "regular"!
This request includes special HTTP headers that signal the client's intention to "upgrade" to the WebSocket protocol. It's like adding a special note to your call asking to switch to the secret language.
Signaling the Intent to Switch
Two key headers clearly tell the server the client wants a WebSocket connection:
Upgrade: websocket: This header specifies the protocol the client wants to switch to.Connection: Upgrade: This header is a general HTTP header that indicates the client wishes to upgrade or switch protocols.
Together, they form the core of the upgrade request.
The Client's Secret Key
Another vital header from the client is Sec-WebSocket-Key.
- It's a 16-byte random value, encoded in Base64.
- It acts as a unique, unpredictable "nonce" (number used once) for each handshake.
- The server uses this key to prove it understands the WebSocket protocol and to prevent certain types of caching or proxy issues.
Protocol Version Check
The Sec-WebSocket-Version header is straightforward but important.
It tells the server which version of the WebSocket protocol the client is using. Currently, the standard version is 13.
This ensures both client and server speak the same "dialect" of the WebSocket language, guaranteeing compatibility.
Server Responds: 101 Switching Protocols
If the server supports WebSockets and agrees to the upgrade, it sends a special HTTP response back to the client.
The most important part of this response is the HTTP status code 101: Switching Protocols. This code explicitly means the server is changing protocols as requested by the client.
Server's Confirmation Key
The server's response also includes key headers:
Upgrade: websocketandConnection: Upgrade: Mirroring the client, these confirm the server's agreement to upgrade.Sec-WebSocket-Accept: This is a hash generated by the server using the client'sSec-WebSocket-Keyplus a specific "magic string". It proves the server understood the key and is capable of WebSockets.
Handshake Key Check
You've learned about the important headers involved in the WebSocket handshake.
Which of the following headers is sent by the client to initiate the WebSocket upgrade, and contains a random, unique value?
Connection Upgraded & Ready!
Once the client receives and validates the server's 101 response with the correct Sec-WebSocket-Accept header, the HTTP handshake is complete!
The connection is now upgraded to a full-duplex WebSocket. Both client and server can send and receive data simultaneously over this persistent connection, enabling true real-time communication.
Sıkça Sorulan Sorular
“WebSocket El Sıkışma Sürecini Anlama” dersi ücretsiz mi?
Evet — “WebSocket El Sıkışma Sürecini Anlama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve WebSockets & Realtime Systems Programming kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. WebSockets & Realtime Systems Programming kursu toplamda 4 dersten oluşur.
“WebSocket El Sıkışma Sürecini Anlama” dersinde ne öğreneceğim?
Standart bir HTTP bağlantısını WebSocket'e yükselten HTTP tabanlı el sıkışma sürecini ayrıntılı biçimde inceleyin. WebSockets & Realtime Systems Programming ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
WebSockets & Realtime Systems Programming öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te WebSockets & Realtime Systems Programming, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“WebSocket El Sıkışma Sürecini Anlama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu WebSockets & Realtime Systems Programming dersinde kod yazıp çalıştırabilir miyim?
Evet. Her WebSockets & Realtime Systems Programming dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- WebSocket El Sıkışma Sürecini Anlama
- WebSocket Veri Çerçeveleme ve İletiler
- Bağlantı Yaşam Döngüsü ve Durumları
- Alt Protokoller, Uzantılar ve Sıkıştırma