# WebSocket

Adres: https://softwaredictionary.org/tr/terimler/websocket
Kategori: Web Geliştirme
Son güncelleme: 2026-09-30
Okunuşu: vebsokit

Kısaca: WebSocket, tarayıcı ile sunucu arasında tek bir bağlantıyı açık tutarak her iki tarafın istediği an birbirine anında mesaj göndermesini sağlayan protokoldür.

## WebSocket nedir?

Düz HTTP'de istemci her zaman önce sormak zorundadır, sunucu ise yalnızca yanıtlayabilir. WebSocket bu sınırı kaldırır: bağlantının yükseltilmesini isteyen tek bir ilk HTTP isteğinden sonra tarayıcı ve sunucu kalıcı, çift yönlü bir kanal açık tutar ve her biri, mesaj başına çok az ek yükle, istediği zaman mesaj gönderebilir.

Tarayıcıda `WebSocket` API'si, bir `ws://` ya da tercihen şifreli bir `wss://` URL'sine bağlantı açar ve kodunuz `open`, `message` ve `close` olaylarını dinler. Tipik kullanım alanları sohbet uygulamaları, çok oyunculu oyunlar, canlı panolar, ortak çalışmaya yönelik editörler, alım satım ekranları ve bildirimlerdir; yani güncellemelerin gerçek zamanlı ulaşması gereken her yer.

HTTP, her yanıt için yeni bir istek gerektiren mektup göndermek gibidir; WebSocket ise iki tarafın da her an konuşabildiği, açık kalan bir telefon görüşmesi gibidir. Bunun bedeli, sunucuların çok sayıda uzun ömürlü bağlantıyı tutmak zorunda olmasıdır; bu da ölçeklemeyi, yük dengelemeyi ve ağ koptuğunda gereken yeniden bağlanma mantığını etkiler.

WebSocket çoğunlukla polling ve Server-Sent Events (SSE) ile karşılaştırılır. Polling sunucuya sürekli haber olup olmadığını sorar; basittir ama israftır. SSE ise güncellemeleri yalnızca sunucudan istemciye akıtır; bu da canlı akışlar ve birçok yapay zekâ sohbet yanıtı için yeterlidir. Güvenlik için her zaman `wss://` kullanın, bağlantıyı doğrulayın, el sıkışma (handshake) sırasında `Origin` başlığını kontrol edin ve gelen her mesajı diğer güvenilmeyen girdiler gibi doğrulayın.

## Önemli noktalar

- WebSocket, istemci ile sunucu arasında kalıcı, çift yönlü bir bağlantı sağlar.
- WebSocket protokolüne yükseltilen bir HTTP isteği olarak başlar.
- Her iki taraf da düşük ek yükle istediği zaman mesaj gönderebilir.
- Sohbet, oyun, canlı pano ve iş birliği araçları için uygundur.
- `wss://` kullanın, bağlantıları doğrulayın ve her mesajı denetleyin.

## Örnek: Tarayıcıda mesaj göndermek ve almak

```javascript
// Open an encrypted WebSocket connection
const socket = new WebSocket("wss://chat.example.com/rooms/42");

// Send a message once the connection is ready
socket.addEventListener("open", () => {
  socket.send(JSON.stringify({ type: "join", user: "ada" }));
});

// The server can push messages at any time, without a new request
socket.addEventListener("message", (event) => {
  const message = JSON.parse(event.data);
  console.log(`${message.user}: ${message.text}`);
});
```

## Sık sorulan sorular

**WebSocket ile HTTP arasındaki fark nedir?**

HTTP, istemcinin sunucu yanıt verebilmeden önce sorması gereken bir istek-yanıt modelini izler. WebSocket bir HTTP el sıkışmasıyla başlar, ardından bağlantıyı açık tutar; böylece iki taraf da istediği zaman mesaj gönderebilir.

**WebSocket yerine ne zaman Server-Sent Events kullanmalıyım?**

Sohbet ya da çok oyunculu oyunlarda olduğu gibi hem istemcinin hem sunucunun sık mesaj göndermesi gerekiyorsa WebSocket kullanın. Güncellemeler yalnızca sunucudan istemciye akıyorsa Server-Sent Events daha basittir ve normal HTTP üzerinden çalışır.

**WebSocket güvenli midir?**

`wss://` üzerinden WebSocket, tıpkı HTTPS gibi TLS ile şifrelenir. Yine de kullanıcıları doğrulamanız, istenmeyen siteler arası bağlantıları engellemek için `Origin` başlığını kontrol etmeniz ve sunucunun aldığı her mesajı doğrulamanız gerekir.

## Kaynaklar

- [RFC 6455: The WebSocket Protocol](https://www.rfc-editor.org/rfc/rfc6455.html)

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
