- Konu sahibi
- #1
HTTP 200 nedir?
HTTP 200, bir web sunucusunun isteği başarıyla işlediğini belirten durum kodudur. Bir tarayıcı veya istemci bir sayfayı istediğinde sunucu 200 döndürüyorsa bağlantı kurulmuş, istek anlaşılmış ve sunucu isteğe uygun bir yanıt üretmiştir. Ancak 200 kodu, sayfanın mutlaka doğru içerik sunduğu, güncel olduğu veya arama motorlarında iyi sıralanacağı anlamına gelmez.
Nasıl çalışır?
HTTP yanıtı genellikle üç temel bölümden oluşur: durum satırı, başlıklar ve gövde. Örneğin bir GET isteğinin yanıtı şu mantıktadır:
Kod:
HTTP/1.1 200 OK
Content-Type: text/html
<!doctype html>
Buradaki
200 sayısal durum kodu, OK ise açıklayıcı metindir. Durum kodunu, başlıkları ve varsa gövdeyi birlikte değerlendirin; bunlardan biri diğerinin yerine geçmez. Bu metin örneği HTTP/1.1'in kısaltılmış gösterimidir; HTTP/2 ve HTTP/3 aynı metinsel durum satırını kullanmaz. GET isteğinde genellikle beklenen HTML, JSON veya başka bir kaynak gövdesi 200 yanıtıyla gelir. POST, PUT veya HEAD gibi yöntemlerde de 200 kullanılabilir; fakat başarı ölçütü yapılan işleme göre değişir.Örneğin
/urunler/kahve adresini isteyen istemci ürün sayfasının HTML içeriğini alırsa 200 anlamlı bir başarıdır. Aynı sunucu, var olmayan bir ürün için “Ürün bulunamadı” sayfasını 200 ile döndürüyorsa teknik olarak yanıt alınmıştır; fakat uygulama davranışı hatalı olabilir. Böyle bir durum arama motorlarının veya izleme araçlarının olmayan sayfaları gerçek sayfa sanmasına yol açabilir.Yanıtı pratik olarak kontrol etme
Bir URL'nin durum kodunu ve temel başlıklarını komut satırından kontrol etmek için aşağıdaki en küçük örneği kullanabilirsiniz:
- Terminalde
curl -i https://example.com/komutunu kendi URL'nizle çalıştırın. Küçük i, normal GET yanıtının başlıklarını ve gövdesini gösterir. PowerShell'de curl bir takma adsa gerçek istemciyi curl.exe ile çağırın. - Çıktının ilk satırında
200kodunu arayın; örneğinHTTP/2 200veyaHTTP/1.1 200 OK. - Beklenen alan yerine giriş sayfası, hata metni veya boş içerik dönüyorsa yalnızca kodu değil, yanıt gövdesini ve sunucu günlüklerini de inceleyin.
example.com burada adres yer tutucusudur. Beklenen senaryoda GET yanıtı 200 içerir ve istenen kaynağın gövdesi sunulur; burada canlı ölçüm yapılmış değildir.
301 veya 302 görürseniz istek önce başka bir adrese yönlendirilmiştir; 404 kaynağın bulunamadığını, 500 ise sunucu tarafında işlem hatası olduğunu gösterir. Yönlendirmeyi izlemek için curl -i -L https://example.com/ kullanılabilir. Birden fazla başlık bloğunda ilk yönlendirmeyi ve son yanıtı ayrı okuyun. Büyük I ise HEAD isteği yapar, gövdeyi getirmez; uygulama HEAD'i GET'ten farklı işliyorsa iki sonucu aynı test saymayın.200 kodunu nasıl yorumlamalı?
Duruma göre kontrol edilmesi gereken nokta değişir:
| Durum | 200 ne anlatır? | Sonraki kontrol |
|---|---|---|
| Normal web sayfası | İstenen yanıt sunulmuş olabilir | HTML'nin doğru sayfaya ait olduğunu doğrulayın |
| Olmayan adres | Uygulama hatalı biçimde başarı döndürüyor olabilir | Gerçek olmayan kaynaklar için uygun hata yanıtını kullanın |
| API isteği | İşlem uygulama kurallarına göre tamamlanmış olabilir | JSON gövdesindeki sonuç ve hata alanlarını kontrol edin |
| Yönlendirme sonrası | Son adreste yanıt alınmıştır | İlk ve son adresi ayrı değerlendirin |
HTTP 200 ile dönen bir sayfanın gerçekten doğru olup olmadığını kontrol etmek için içerik başlığını, yanıt gövdesini, uygulamanın beklenen kayıt veya işlem sonucunu ve varsa sunucu günlüklerini birlikte değerlendirin. Özellikle her bilinmeyen URL'yi ilgisiz ana sayfaya yönlendirmek veya hata metnini 200 ile sunmak, arama motorunca soft 404 olarak değerlendirilebilir. Var olmayan kaynak için uygulamanızın kullandığı hata davranışını açıkça belirlemek daha doğrudur.
Sık sorulan sorular
HTTP 200 ile 204 arasındaki fark nedir?
200 yanıtında genellikle bir temsil veya içerik gövdesi bulunabilir. 204 ise istek başarıyla işlenmesine rağmen yanıt gövdesi gönderilmediğini ifade eder. Bu nedenle içerik bekleyen bir istemci için bu iki kod aynı anlama gelmez.
HTTP 200 bağlantının güvenli olduğunu gösterir mi?
Hayır. 200 yalnızca isteğin başarıyla işlendiğini belirtir. HTTPS kullanımı, sertifika doğrulaması, kimlik doğrulama ve uygulama güvenliği ayrı kontrollerdir.