200 OK: ne anlama gelir ve neyi gizler
200 OK, sunucunun isteği aldığı, anladığı ve başarılı bir yanıt döndürdüğü anlamına gelir, ama o yanıttaki içeriğin doğru olup olmadığı hakkında hiçbir şey söylemez. Bir bakım bildirimi, bir hata sayfası ve boş bir şablon, hepsi bir 200 ile sunulabilir.
Bir 200 neyi garanti eder
200 standart başarı durumudur. Size dar ve belirli bir dizi şeyi söyler: DNS çözümlendi, bir TCP bağlantısı kuruldu, URL HTTPS ise TLS müzakere edildi, sunucu istek satırını ve başlıkları kabul etti, ve başarılı saydığı bir yanıt üretti. Bir GET için gövde istenen kaynaktır; bir POST için eylemin sonucudur.
Bir 200'ün size söylemediği şey, sayfanın ürün kataloğunu içerip içermediği, ödeme formunun oluşup oluşmadığı, sayfayı dolduran JavaScript'in verisini alıp almadığı, veya aldığınız yanıtın başka bir ülkedeki ziyaretçilerinizin aldığı yanıtla aynı olup olmadığıdır. Bunların hepsi gövdede yaşar, ve durum kodu asla gövdeye bakmaz.
Gerçekte bir başarısızlık olan 200
Tek başına durum kodu izlemesi yeterli değildir, çünkü bozuk bir site tüm bu durumlarda 200 yanıtı verir:
- Bir bakım sayfası. Bir dağıtım betiği veya bir CDN kuralı tarafından kasıtlı olarak 200'de sunulur. Çalışma süresi, tüm kesinti penceresi boyunca mükemmel görünür.
- Yakalanmış bir uygulama istisnası. Çerçeve hatayı yakalar ve normal şablon hattı üzerinden dostane bir "bir şeyler ters gitti" sayfası oluşturur, ki bu da varsayılan 200 durumunu ayarlar.
- Yumuşak bir 404. 404 yerine 200'de döndürülen bir "sayfa bulunamadı" mesajı. Ziyaretçiler kafası karışır ve arama motorları URL'yi indekslenmiş tutabilir veya tüm deseni düşük kaliteli sayabilir.
- Boş, istemci tarafında oluşturulan bir kabuk. HTML belgesi sorunsuz yüklenir, ama onu dolduran API çağrısı başarısız olur. Durum 200'dür ve sayfa boştur.
- Bayat veya yanlış dilde önbelleğe alınmış bir kopya. Kaynak getirmesi başarısız olan bir edge düğümü, zaten sahip olduğunu 200'de sunmaya devam eder.
- Park edilmiş veya ele geçirilmiş bir alan adı. Bir DNS değişikliğinden sonra başkasının içeriğiyle 200 yanıtı verir.
Yavaş bir 200 hala bir sorundur
Yanıt süresi genellikle koddan daha önemlidir. 200 döndürmesi on iki saniye süren bir sayfa, çoğu ziyaretçi için işlevsel olarak çöküktür; onlar bitmeden ayrılmış olacaktır. Durum kodunun hiçbir zaman boyutu yoktur, bu yüzden yanıt süresini ayrıca ölçmeniz ve eşiklemeniz gerekir. Boyut da aynı nedenle izlemeye değer: normalde 80 KB döndüren bir yerde 300 bayt döndüren bir 200, sayfanın içeriği olmadan oluştuğunun güçlü bir sinyalidir.
Bir 200'ün gerçek bir başarı olduğu nasıl doğrulanır
- Durum satırını ve zamanlamayı birlikte okuyun:
curl -sI -o /dev/null -w "%{http_code} in %{time_total}s\n" https://example.com/ - Gövdeyi getirin ve hata şablonunun da içerdiği bir şey yerine, sayfa gerçekten çalışırken görünen bir başlık, bir fiyat veya bir altbilgi işareti gibi yalnızca bir dizeye karşı iddiada bulunun.
- Varlığın yanı sıra yokluğa karşı da iddiada bulunun. "bakımda", "geçici olarak kullanılamıyor" veya çerçevenizin istisna ifadesi gibi cümleleri aramak, dostane hata durumunu yakalar.
- Yanıt boyutunu bilinen iyi bir taban değerle karşılaştırın. Gövde uzunluğunda ani bir çöküş, genellikle kabuğun oluştuğu ve içeriğin oluşmadığı anlamına gelir.
- Yalnızca ana sayfayı değil derin bir sayfayı kontrol edin. Ana sayfalar en yoğun önbelleğe alınan ve arkalarındaki uygulama bozukken bile 200 yanıtlamaya devam etme olasılığı en yüksek olan sayfalardır.
- Birden fazla ağdan tekrarlayın. Ofisinizden bir 200 ve başka bir kıtadan bir hata, uygulamanın kendisinden çok DNS'i, CDN'yi veya coğrafi yönlendirmeyi işaret eder.
Yeşil bir çalışma süresi kontrolünün kaçırabileceği şey
Yalnızca durum kodunu okuyan bir monitör, kimsenin kaldırmadığı bir bakım sayfasıyla başlayan bir olayın tamamı boyunca yeşil bir site raporlar. Durum kontrolünü bir anahtar kelime iddiasıyla ve bir yanıt süresi eşiğiyle eşleştirmek, "sunucu yanıt verdi"yi "sayfa çalıştı"ya dönüştüren şeydir. HostTracker 13 monitör türü sunar ve e-posta, SMS, sesli arama, Slack, Telegram ve daha fazlasıyla uyarır, bu yüzden bir içerik uyuşmazlığı bir kesintinin vereceği aynı uyarıyı yükseltir. Durumunu, başlıklarını ve zamanlamasını görmek için bir URL'yi HTTP kontrolü aracından geçirin, veya dostane bir hata sayfasının gizlediği yanıtlar için 2xx ailesini ve 500 Internal Server Error'ı okuyun.