# Server-Sent Events

Adres: https://softwaredictionary.org/tr/terimler/server-sent-events
Kategori: Backend ve API'ler
Son güncelleme: 2026-09-30
Okunuşu: sörvır sent ivents

Kısaca: Server-Sent Events, sunucunun tarayıcıya tek bir uzun ömürlü HTTP bağlantısı üzerinden sürekli metin güncellemeleri göndermesini sağlayan web standardıdır.

## Server-Sent Events nedir?

Server-Sent Events ya da SSE, bir web sayfasına sunucudan gelen tek yönlü bir kanal sağlar: tarayıcı bağlantıyı bir kez açar, sunucu onu açık tutar ve bildirecek bir şeyi olduğunda yeni bir mesaj gönderir. SSE, tarayıcılara `EventSource` API'siyle yerleşik olarak gelir ve sıradan HTTP üzerinde çalışır; bu yüzden özel bir kurulum gerekmeden çoğu proxy'den, load balancer'dan ve güvenlik duvarından geçer.

Sunucu `text/event-stream` içerik tipiyle yanıt verir ve mesajları basit bir metin biçiminde yazar: `data:` ile başlayan satırlar, adlandırılmış bir olay tipi için isteğe bağlı `event:` ve mesaj kimliği için `id:`; her mesajı boş bir satır bitirir. Bağlantı koparsa tarayıcı otomatik olarak yeniden bağlanır ve `Last-Event-ID` başlığını gönderir; böylece sunucu kaldığı yerden devam edebilir. HTTP/1.1 üzerinde tarayıcılar site başına yalnızca yaklaşık altı açık bağlantıya izin verir; bu, çok sayıda sekmede sorun olabilir, ancak HTTP/2 ve HTTP/3 üzerinde birçok akış tek bir bağlantıyı paylaşır.

SSE, canlı bir haber bandına abone olmak gibidir: bir kez abone olursunuz ve başlıklar gelmeye devam eder, ancak aynı kanaldan karşılık veremezsiniz. Bildirimler, canlı panolar, hisse fiyatları, derleme ve dağıtım logları, ilerleme çubukları ve metnin model ürettikçe kelime kelime göründüğü LLM yanıt akışları için doğal bir uyumdur. İstemcinin veri göndermesi gerektiğinde akışın yanında sıradan HTTP istekleri kullanır.

SSE sıklıkla WebSocket ve long polling ile karşılaştırılır. WebSocket, her iki tarafın istediği zaman mesaj gönderebildiği ayrı, iki yönlü bir protokoldür; sohbet, çok oyunculu oyunlar ve ortak düzenleme için uygundur ancak daha fazla altyapı desteği gerektirir. Long polling, sunucunun veri gelene kadar açık tuttuğu tekrarlanan isteklerle push'u taklit eder ve istemcinin her yanıttan sonra yeniden bağlanması gerekir. SSE bu ikisinin arasında durur: tek yönlü sunucu push'u, yalnızca metin, düz HTTP üzerinde otomatik yeniden bağlanma. Bir sınırlama, yerel `EventSource`'un `Authorization` gibi özel başlıklar gönderememesidir; bu yüzden uygulamalar cookie'lere dayanır ya da `fetch()` tabanlı bir SSE istemcisi kullanır.

## Önemli noktalar

- SSE, mesajları sunucudan tarayıcıya tek bir uzun ömürlü HTTP yanıtı üzerinden akıtır.
- Sunucu `text/event-stream` verisi gönderir, tarayıcılar onu `EventSource` API'siyle okur.
- Tarayıcılar otomatik yeniden bağlanır ve `Last-Event-ID` başlığını kullanarak devam eder.
- SSE tek yönlü ve yalnızca metindir; her iki taraf da mesaj göndermek zorundaysa WebSocket kullanın.
- Bildirimler, canlı panolar ve LLM çıktısı akışı için yaygın olarak kullanılır.

## Örnek: Bir Node.js SSE endpoint'i ve bir tarayıcı abonesi

```javascript
// Server (Node.js): keep the response open and write events
import http from "node:http";
http.createServer((req, res) => {
  res.writeHead(200, { "Content-Type": "text/event-stream", "Cache-Control": "no-cache" });
  const timer = setInterval(() => {
    res.write("data: " + JSON.stringify({ time: Date.now() }) + "\n\n");
  }, 1000);
  req.on("close", () => clearInterval(timer));
}).listen(3000);

// Browser: subscribe and react to each message
const source = new EventSource("/events");
source.onmessage = (event) => console.log(JSON.parse(event.data).time);
```

## Sık sorulan sorular

**SSE, WebSocket'ten daha mı iyidir?**

Hiçbiri genel olarak daha iyi değildir. SSE daha basittir ve otomatik yeniden bağlanmayla düz HTTP üzerinde çalışır; bu da yalnızca sunucunun veri göndermesi gerektiğinde onu ideal yapar. Sohbet veya oyunlarda olduğu gibi her iki taraf da sık mesaj gönderiyorsa WebSocket daha iyi seçimdir.

**LLM API'leri neden Server-Sent Events kullanır?**

Üretilen metni parça parça akıtırlar; böylece kullanıcılar tüm yanıtı beklemek yerine cevabın hemen belirdiğini görür. SSE bu tek yönlü akışa iyi uyar ve sıradan HTTP altyapısıyla çalışır.

**SSE, HTTP/2 ile çalışır mı?**

Evet, hatta orada daha iyi çalışır. HTTP/2 birçok akışı tek bir bağlantı üzerinden çoklar; bu da HTTP/1.1'deki site başına yaklaşık altı bağlantı sınırını kaldırır, ki bu sınır birçok sekmede SSE'yi engelleyebilirdi.

---

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