# HTTP vs WebSocket

Adres: https://softwaredictionary.org/tr/karsilastirma/http-vs-websocket
Son güncelleme: 2026-10-06

Kısaca: HTTP istek-yanıt modelidir: istemci sorar, sunucu bir kez cevap verir. WebSocket ise tek bağlantıyı açık tutar; böylece iki taraf da her an mesaj gönderebilir.

## HTTP ile WebSocket arasındaki fark nedir?

HTTP turlar hâlinde çalışır: istemci bir istek gönderir, sunucu tek bir yanıt döner ve o alışveriş biter. Web sayfalarının, REST API'lerinin ve dosya indirmelerinin arkasındaki protokoldür ve durumsuzdur (stateless); bu yüzden her istek, sunucunun ihtiyaç duyduğu cookie ya da token gibi bilgileri yanında taşır. WebSocket ise istemci ile sunucu arasında uzun ömürlü, iki yönlü bir kanal için ayrı bir protokoldür.

Bir WebSocket bağlantısı aslında HTTP olarak başlar. İstemci `Upgrade: websocket` başlığı taşıyan sıradan bir `GET` isteği gönderir, sunucu `101 Switching Protocols` ile cevap verir ve o andan itibaren aynı TCP bağlantısı iki yönde küçük WebSocket çerçeveleri taşır. Taraflardan biri bağlantıyı kapatana kadar iki taraf da, yeni bir isteğin başlıkları olmadan, istediği an mesaj gönderebilir.

Fark, sunucunun bir haberi olduğunda önem kazanır. Yalnızca HTTP ile istemci polling ya da long polling yoluyla sürekli sormak zorundadır; bu da gecikme ve boşa giden istekler demektir. WebSocket ile sunucu her güncellemeyi gerçekleştiği anda iter; bu da sohbet, çok oyunculu oyunlar, ortak düzenleme ve canlı panolar için uygundur. Bedeli durumdur: sunucular çok sayıda açık bağlantı tutar, yük dengeleyiciler bunları canlı tutmalıdır, istemcilerin de yeniden bağlanma mantığına ihtiyacı vardır.

Sık yapılan bir yanlış, WebSocket'in HTTP'nin yerini aldığını düşünmektir. Çoğu uygulama ikisini birlikte kullanır: önbellekten ve basit araçlardan yararlanan sayfalar, statik dosyalar, girişler ve sıradan API çağrıları için HTTP; yalnızca gerçek zamanlı kısım için WebSocket. Güncellemeler yalnızca sunucudan istemciye akıyorsa düz HTTP üzerinden Server-Sent Events çoğu zaman daha basittir.

| Özellik | HTTP | WebSocket |
| --- | --- | --- |
| Model | İstek ve yanıt: istemci sorar, sunucu cevaplar | Her an, iki yönde mesajlar |
| Bağlantı | Kısa alışverişler; bağlantı sonraki istekler için yeniden kullanılabilir | İstemci başına tek bir kalıcı bağlantı |
| Kim başlatabilir | Yalnızca istemci | Bağlandıktan sonra iki taraf da |
| Mesaj başına ek yük | Her istekte başlıklar | Birkaç baytlık bir çerçeve başlığı |
| URL şeması | `http://` ve `https://` | `ws://` ve `wss://` |
| Önbellek ve araçlar | Önbellekler, proxy'ler ve CDN'ler onu anlar | HTTP önbelleği yok; proxy'ler yükseltmeyi desteklemeli |
| En uygun olduğu yer | Sayfalar, REST API'leri, indirmeler, form gönderimleri | Sohbet, oyunlar, canlı panolar, iş birliği |

## HTTP şu durumlarda doğru seçim

- İstemci veriyi, sayfalarda ve çoğu API'de olduğu gibi ihtiyaç duyduğunda istiyor.
- Önbelleğin, CDN'lerin ve standart araçların kutudan çıktığı gibi çalışmasını istiyorsunuz.
- Güncellemeler seyrek; polling ya da Server-Sent Events yetiyor.

## WebSocket şu durumlarda doğru seçim

- Sohbette ya da çok oyunculu oyunlarda olduğu gibi iki taraf da sık mesaj gönderiyor.
- Güncellemeler gerçekleştikten hemen sonra ulaşmalı.
- Çok sayıda bağlantıyı açık tutan sunucular ve yük dengeleyiciler işletebiliyorsunuz.

## Sık sorulan sorular

**WebSocket, HTTP'den daha mı hızlı?**

Sık ve küçük mesajlarda evet; çünkü her mesaj, HTTP'nin her seferinde tekrarladığı istek kurulumunu ve başlıkları atlar. Tek bir istekte ya da büyük bir indirmede HTTP de aynı derecede hızlıdır ve önbelleğe alınması daha kolaydır.

**WebSocket HTTP kullanır mı?**

Yalnızca başlangıçta. Bağlantı, yükseltme isteyen bir HTTP isteğiyle açılır; sunucu kabul ettiğinde iki taraf aynı TCP bağlantısı üzerinden WebSocket protokolünü konuşur.

**WebSocket mi kullanmalıyım, Server-Sent Events mi?**

Bildirimler ya da akıtılan yapay zekâ yanıtları gibi yalnızca sunucunun güncelleme gönderdiği durumlarda Server-Sent Events kullanın; düz HTTP üzerinden çalışır ve kendiliğinden yeniden bağlanır. İstemci de sık mesaj gönderiyorsa WebSocket'i seçin.

---

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