200 OK Nedir?
Kısa tanım
200 OK, sunucunun isteği başarıyla işlediğini bildiren HTTP durum kodudur. Yanıt gövdesinin anlamı istek metoduna bağlıdır: GET isteğinde istenen kaynağın kendisi, POST isteğinde ise yapılan işlemin sonucu döner. Arama motorları için 200, içeriğin bir sonraki işleme adımına geçebileceği anlamına gelir; ancak sayfanın dizine ekleneceğini garanti etmez.
Diğer adları: HTTP 200, 200 durum kodu, başarılı yanıt

Metoda göre değişen bir başarı
“İstek başarılı” cümlesi, hangi isteğin gönderildiğine göre farklı bir şey anlatır. RFC 9110, 200 yanıtının gövdesini HTTP metoduna göre şöyle tanımlar:
| Metot | 200 yanıtının gövdesi |
|---|---|
| GET | İstenen kaynağın temsili (örneğin sayfanın HTML'i) |
| HEAD | GET ile aynı başlıklar, ama gövde gönderilmez |
| POST | İşlemin durumu ya da sonucu |
| PUT, DELETE | İşlemin durumu |
Gövde gönderilmeyecekse doğru kod 204 No Content'tir; bir REST API'de yeni kayıt oluşturulduğunda ise 201 Created daha açıklayıcıdır. Standart ayrıca GET ve HEAD'e verilen 200 yanıtlarında ETag ve Last-Modified gibi doğrulayıcıların gönderilmesini önerir; sonraki ziyaretlerde 304 Not Modified alınabilmesi buna bağlıdır.
200 almak dizinde olmak demek değil
Google'ın belgesi bu konuda açıktır: 200 döndüren içerik dizine ekleme sistemine iletilir, sistem onu dizine ekleyebilir ama bu garanti değildir. Aynı içeriğin başka bir URL'de de bulunması, sayfada noindex olması, içeriğin çok zayıf olması ya da sayfanın kanonik olarak başka bir adresin seçilmesi, 200 yanıtına rağmen sayfayı dizin dışında bırakabilir. Kısacası 200, dizine eklenebilirliğin ön koşuludur, kendisi değildir.
Yanlış yerde 200: hata sayfaları ve API yanıtları
200'ün en pahalı hatası, aslında başarısız olan bir isteğe başarılı demektir. “Ürün bulunamadı” yazan ama 200 döndüren bir sayfa Google tarafından soft 404 olarak işaretlenir. Bakım sırasında 200 ile sunulan “Kısa süre sonra döneceğiz” metni ise dizine girebilir.
API'lerde aynı hata farklı bir zarar verir:
HTTP/1.1 200 OK
Content-Type: application/json
{"success": false, "error": "Kart reddedildi"}Bu yanıtı izleme sistemi başarılı sayar, ara önbellekler saklayabilir, istemci kütüphaneleri hata yakalama bloğuna hiç girmez. Hata gövdesi faydalıdır ama doğru durum koduyla birlikte gelmelidir: doğrulama hatası için 422 ya da 400, yetki sorunu için 403 gibi.
DevTools'taki “200 (from disk cache)” satırı
Chrome'un Network sekmesinde bazı istekler 200 (from memory cache) ya da 200 (from disk cache) olarak görünür. Bu satırlar sunucunun o anda 200 döndürdüğünü göstermez; tarayıcı önbellekteki kopyayı kullanmış ve sunucuya hiç gitmemiştir. 304 ise farklıdır: tarayıcı sunucuya sormuş, sunucu “değişmedi” demiştir. Hız sorunlarını incelerken bu ayrım, hangi isteğin gerçekten ağdan geçtiğini anlamanın ilk adımıdır. Diğer sınıflara genel bakış için HTTP durum kodu sayfasına bakabilirsiniz.

