Web geliştirme dünyasında, HTTP hata kodları bir web sitesinin kullanıcı deneyimini ve itibarını etkilemede hayati bir rol oynar. Bu makalede, sunucu hata kodlarının tam listesini ele alacağız, anlamlarını analiz edeceğiz ve sorunları çözmek ve web uygulamalarının performansını optimize etmek için sunucu yanıt kodlarını etkili bir şekilde nasıl yorumlayacağımızı öğreneceğiz.
HTTP yanıt kodu nedir?
HTTP yanıt kodu, tarayıcı isteklerini anlaşılır talimatlara çeviren web sunucularının dilidir. Sanal soruları yanıtlayan, onlara anlam ve yön veren bir şair gibidir. Yanıt kodları her zaman HTTP hata kodları değildir. Örneğin, "200 OK" her şeyin yolunda olduğu anlamına gelir, ancak HTTP Hatası "404 Bulunamadı" sayfanın sanal alanda kaybolduğu anlamına gelir. Her kod, sunucu durumunun benzersiz bir ifadesidir ve kodunun çözülmesi sanal dünyanın diğer tarafında neler olduğunu anlamamızı sağlar.
1xx kodları (Bilgi)
HTTP protokolündeki 1xx durum kodları, sunucu ile istemci arasındaki diyalogda bir tür ilk bağlantıdır. Bir isteğe tam bir yanıt sağlamak yerine, mevcut durum hakkında bilgi sağlar ve veri alışverişini daha verimli hale getirir. Bunlara daha yakından bakalım:
100 Devam Et . Sunucunun kullanıcıya büyük bir isteği güvenle göndermeye devam etmesine izin veren yeşil ışık yaktığı HTTP yanıt kodu.
101 Protokol Değiştirme . Sunucu, istemciye oyunun kurallarını değiştirdiğini, örneğin HTTP'den daha güvenli olan HTTPS'ye geçtiğini bildirir. Bu durumda, protokol değişikliği için "Upgrade" başlığı kullanılır.
102 İşlem devam ediyor . Bu kod, sunucunun isteği kabul ettiğini ancak karmaşık bir işlemle meşgul olduğunu belirten bir mesaj gibidir.
103 Erken İpuçları . Burada sunucu, ana yanıttan önce istemciye yakın gelecekte önemli olabilecek bir şey hakkında uyarıda bulunan birkaç gösterge niteliğinde başlık gönderir.
2xx kodu (Başarılı)
2xx grubundaki HTTP hata kodları sunucudan gelen başarılı bir isteği belirtir. Esasen web iletişimleri kapsamında bir "yeşil ışık" görevi görürler, her şeyin plana göre gittiğini ve başarıyla tamamlandığını doğrularlar.
200 OK . Bu durum, sunucunun GET yöntemiyle gelen bir isteği sorunsuz bir şekilde işleyip istenen verileri yanıt olarak döndürdüğünde kullanılır. "Content-Type" başlığı, yanıttaki içerik türünü bildirir. Bu sadece istemciye isteğin başarılı olduğunu bildirir.
201 Oluşturuldu . Burada sunucu yeni bir kaynağın oluşturulduğunu duyuruyor.
202 Kabul Edildi . Sunucu, isteğin kabul edildiğini ancak yanıt vermenin zaman alacağını kullanıcıya bildirir.
203 Resmi Olmayan Bilgi . Bu kod, müşteriye resmi olmayabilecek ancak karşılaştırma amacıyla kullanılabilecek veriler sağlar.
204 İçerik Yok . Sunucu isteği işledi ancak ek içerik döndürmüyor.
205 İçeriği Sıfırla . Burada istemciye, gönderdikten sonra mevcut görünümü veya verileri sıfırlaması talimatı verilir.
206 Kısmi İçerik . Bu durum, yanıtın istenen içeriğin yalnızca bir kısmını içerdiğini gösterir. "Content-Range" başlığı, kısmi içerik aralığını belirtir.
207 Çoklu Durum. Sunucu, istemciden gelen çoklu işlem isteğini başarıyla tamamladı ve yanıt, işlemlerin her birinin durumu hakkında bilgi içeriyor.
226 IM Kullanıldı . Bu kod, sunucunun Artımlı Meta Veri (IM) yöntemini kullandığını ve istemciye yalnızca değiştirilen kaynak parçalarını ileterek yanıt verdiğini gösterir.
3xx kodları (Yönlendirmeler)
HTTP protokolündeki 3xx kodları, kullanıcıyı yeni bir kaynak konumuna yönlendiren işaretçiler gibidir. İstemciye, istenen içeriği elde etmek veya başka bir kaynağa yönlendirilmek için takip adımlarının atılması gerektiğini bildirirler. Her birinin ayrıntılarına dalalım:
300 Çoklu Seçenek . İstemci, kaynak için birden fazla olası konum olduğunu belirten bir sinyal alır ve buna karşılık bir seçim yapma olanağı sunulur. Mevcut koşullar altında, "Konum" başlığı kaynak için alternatif seçenekleri gösterebilir.
301 Kalıcı Olarak Taşındı. Sunucu, kaynağın kalıcı olarak başka bir konuma taşındığını kullanıcıya bildirir.
302 Bulundu . Bu HTTP kodu, geçici bir yönlendirmeye benzer. Sunucu, tüketiciye kaynağın geçici olarak farklı bir URL'de mevcut olduğunu bildirir. "Location" başlığı, geçici yönlendirme için yeni URL'yi gösterir.
303 Diğerine Bakın . İstemciye kaynağın farklı bir URL'de mevcut olduğu ve bu yeni adrese bir GET isteği göndermesi gerektiği bildirilir.
304 Değiştirilmedi . Bu durum, istemciye kaynağın son istekten bu yana değişmediğini ve tekrar indirilmesine gerek olmadığını bildirir. İstek yapılırken, kaynağın değiştirilip değiştirilmediğini kontrol etmek için "If-Modified-Since" başlığı kullanılır.
305 Proxy Kullanın. Buna karşılık, sunucu istenen kaynağa erişmek için belirtilen proxy'yi kullanması gerektiğini bildirir.
306 (ayrılmış) — Bu kod ayrılmış ancak aslında kullanılmıyor.
307 Geçici Yönlendirme . Bu kod 302 Bulundu koduna benzer, ancak istemcinin orijinal istekte kullanılan istek yönteminde kalmasını gerektirir.
308 Kalıcı Yönlendirme . Kaynağın yeni bir URI'ye kalıcı olarak taşındığını ve istemcinin bundan sonraki tüm istekler için yeni URI'yi kullanması gerektiğini gösterir.
4xx HTTP Hatası (İstemci hataları)
HTTP 4xx hata kodları istemci hatalarını gösterir. Bu, sorunun web tarayıcısı veya uygulama gibi kullanıcı tarafında olduğu anlamına gelir.
400 Hatalı İstek . Sunucu, sözdizimi hataları, geçersiz veriler veya istemci tarafındaki diğer hatalar nedeniyle isteği işleyemiyor.
401 Yetkisiz Erişim. Sunucu, sözdizimi hataları, geçersiz veriler veya istemci tarafındaki diğer hatalar nedeniyle isteği işleyemiyor.
402 Ödeme Gerekli . Kod şu anda aktif değil ve gelecekteki kullanım için ayrılmıştır. Gelecekte kaynağa erişmeden önce ödeme yapmanız gerekebileceğini gösterir.
HTTP 403 Hatası: Erişim Yasaklandı. İstemcinin istenen kaynağa erişmek için yeterli hakkı yok.
404 Bulunamadı. İstenen kaynak sunucuda mevcut değil. Bu, en sık karşılaşılan kullanıcı hatalarından biridir.
405 Yöntem İzin Verilmiyor . Sunucu, bu kaynak sırasında belirtilen istek yöntemini desteklemiyor. "Allow" başlığı, kaynak için izin verilen yöntemleri gösterir. Bu kodla,
406 Kabul Edilemez. Sunucu, istemci tarafından kabul edilebilecek bir biçimde veri sağlayamıyor.
407 Proxy Kimlik Doğrulaması Gerekli . İstenen kaynağa erişim için proxy sunucusunda kimlik doğrulaması gereklidir.
408 İstek Zaman Aşımı . Sunucu, istemciden bir istek almak için bekliyordu ancak zaman aşımı oluştu. "Retry-After" başlığı, isteğin yeniden denenebileceği süreyi gösterebilir.
409 Çakışma. Mevcut kaynak durumuyla çakışma nedeniyle istek tamamlanamıyor.
410 Kayboldu . İstenen kaynak daha önce mevcuttu ancak şimdi silindi ve geri yüklenmesi beklenmiyor.
411 Uzunluk Gerekli . Sunucu, istekte içerik uzunluğunun belirtilmesini talep eder; bu bilginin eksikliği hata olarak kabul edilir.
412 Ön koşul başarısız oldu . İstekteki bir ön koşul karşılanmadı ve bu da isteğin yürütülmesini engelliyor.
413 Yük Çok Büyük . İstek verilerinin boyutu sunucu sınırlarını aşıyor.
414 URI Çok Uzun . İstekteki URI uzunluğu kabul edilebilir sınırları aşıyor.
415 Desteklenmeyen Medya Türü . Sunucu, istekte belirtilen veri türünü işleyemiyor.
416 Aralık Karşılanamıyor . İstenen aralığın mevcut sunucu verileriyle eşleşmediği HTTP hatası.
417 Beklenti Karşılanmadı . "Beklenti" başlığındaki beklenen koşul karşılanmadı.
418 Ben bir çaydanlığım . Bu kod şaka amaçlı eklenmiştir ve kullanıcı veya sunucu için gerçek bir eylem anlamına gelmez ve tam teşekküllü bir hata değildir. Sunucunun bir çaydanlık olduğunu ve kahve yapamayacağını belirtir.
421 Yanlış Yönlendirilmiş İstek . Sunucu, istekte veya sunucu yapılandırmasında bir hata nedeniyle isteği işlemez.
422 İşlenemeyen Varlık . Sunucu isteği anlıyor ancak veri hataları nedeniyle işlemi gerçekleştirmiyor.
423 Kilitli. Kaynak bloke edildi ve işlenemiyor.
424 Bağımlılık Hatası . İstek, henüz yürütülmemiş başka bir isteğe bağlıdır.
425 Çok Erken. Sunucu, isteğin erken gelmesi nedeniyle isteği işlemeye hazır değil.
426 Yükseltme Gerekli . Sunucu, isteği işlemek için daha gelişmiş bir protokol kullanılmasını gerektiriyor.
428 Önkoşul Gerekli . Sunucu, istekte belirli önkoşulların belirtilmesini gerektirir.
429 Çok Fazla İstek . İstemci kısa sürede çok fazla istek göndererek sunucunun sınırlarını aştı.
431 İstek Başlık Alanları Çok Büyük . İstek başlıkları izin verilen maksimum boyutu aşıyor.
449 Yeniden dene. Bu, isteğin mevcut sunucu tarafından yürütülemeyeceğini, ancak başka bir sunucu tarafından başarıyla işlenebileceğini ve istemcinin isteği yeni bir URI ile yeniden denemesi gerektiğini gösterir.
451 Yasal Nedenlerle Kullanılamıyor . Kaynak yasal nedenlerle kullanılamıyor.
499 İstemci İsteği Kapattı . Sunucu isteği aldı, ancak bağlantı işlem tamamlanmadan önce istemci tarafından kapatıldı.
HTTP 5xx hatası (Sunucu hataları)
HTTP 5xx hata kodları sunucu sorunlarını belirtir. Bu kodlar sunucu tarafında meydana gelen ve sunucunun kullanıcının isteğini doğru şekilde işlemesini engelleyen sorunları belirtir. Bunlara daha yakından bakalım:
HTTP 500 Dahili Sunucu Hatası . Sunucu, isteğin tamamlanmasını engelleyen beklenmedik durumlarla karşılaşıyor. "Server" başlığı, hatanın oluştuğu sunucuyu gösterebilir.
501 Uygulanmadı . Sunucu, istemcinin isteğini işlemek için gereken işlevselliği desteklemiyor. "Via" başlığı, hatanın oluştuğu proxy sunucusunu gösterebilir.
502 Hatalı Ağ Geçidi . Bu kod, proxy görevi gören sunucunun başka bir sunucudan hatalı bir yanıt aldığını gösterir.
HTTP Hatası 503 Hizmet Kullanılamıyor . Sunucu geçici olarak istekleri işleyemiyor.
504 Ağ Geçidi Zaman Aşımı . Vekil sunucu görevi gören sunucu, başka bir sunucudan zamanında yanıt alamadı.
505 HTTP Sürümü Desteklenmiyor . Sunucu, istekte belirtilen HTTP protokol sürümünü desteklemiyor. Yedek seçenek olarak, "Yükseltme" başlığı desteklenen protokolleri gösterebilir.
506 Varyantı Ayrıca Müzakere Eder . Bu durum HTTP/1.1'de kullanılmaz; ancak sunucu, içerik müzakeresinde belirsizliğe yol açan dahili bir yapılandırma tespit ederse bu yanıtı kullanabilir.
507 Yetersiz Depolama Alanı . Sunucu, sunucuda yeterli depolama alanı bulunmaması nedeniyle isteği yerine getiremiyor.
508 Döngü Algılandı . Sunucu, isteği işlerken bir döngü algıladı ve sonsuz döngüyü önlemek için isteği tamamlamayı reddediyor.
509 Bant Genişliği Sınırı Aşıldı . Bu hata, sunucunun bant genişliğinin yüksek istek veya trafik hacmi nedeniyle aşılması durumunda oluşur.
510 Uzatılmadı . İstemcinin isteğe devam edebilmesi için ek uzantılar göndermesi gerekmektedir.
511 Ağ Kimlik Doğrulaması Gerekli . İstemcinin ağa erişim sağlamak için kimliğini doğrulaması gerekir.
Sayfa durum kodu nasıl kontrol edilir
Bu bölümde, sayfa durum kodunu kontrol etmenin üç ana yolunu ele alacağız: komut satırı aracılığıyla, bir web tarayıcısı kullanarak ve bağımsız çevrimiçi hizmetleri kullanarak. Bu yöntemlerin her birinin kendine özgü avantajları vardır ve farklı durumlarda yararlı olabilir.
Sunucu yanıtını komut satırı aracılığıyla kontrol etme
Komut satırı, bir web tarayıcısı kullanmak zorunda kalmadan sayfa durum kodunu kontrol etmek için kullanışlı bir yol sağlar. Bu yöntem için komut satırını açmanız ve şu komutu kullanmanız gerekir:
curl -I http://page-address
Bu komut belirtilen URL'ye bir HEAD isteği (yalnızca başlık isteği) gönderir ve HTTP durum kodu da dahil olmak üzere bilgileri görüntüler:
Yukarıdaki örnek başarılı bir yanıt kodunu gösterir. 404 Not Found HTTP hatası gibi bir hata kodu içeren bir yanıt durumunda, sonuç benzer görünecektir:
Sunucu yanıtını tarayıcı konsolu aracılığıyla kontrol etme
Web tarayıcısı geliştirici konsolu, sayfa durum kodunu kontrol etmek de dahil olmak üzere çeşitli işlemleri yürütmek için araçlar sağlar. Sunucu yanıtındaki HTTP kodunu görmek için, kullanılan tarayıcıya bağlı olarak geliştirici konsolunu açmanız (Ctrl+Shift+K) veya (Ctrl+shift+J) gerekir. Sonra, "ağ" bölümünü seçin ve istediğiniz sayfayı yükleyin:
Bağımsız araçlar kullanılarak sunucu yanıtının kontrol edilmesi
Web sitesi sayfa durum kodunu kontrol etmek için araçlar sağlayan çok sayıda bağımsız çevrimiçi hizmet bulunmaktadır. Bu hizmetler genellikle kaynağınızın kullanılabilirliği ve performansı hakkında hızlı bir genel bakış elde etmenizi sağlar. Hepsi aynı prensiple çalışır. Örnek olarak, en popüler kaynak olan httpstatus.io'yu ele alacağız.
Öncelikle servisin kendisini açmanız, ardından cevabını bulmak istediğiniz sayfanın adresini girmeniz ve doğrulama talebinde bulunmanız gerekmektedir:
Sonuç sayfanın alt kısmında gösterilecektir:
Sonuç
Sonuç olarak, HTTP hata kodlarını anlama ve okuyabilmenin web geliştirme ve sunucu bakımıyla ilgilenen herkes için önemli bir beceri olduğu vurgulanmalıdır. Her hatayı çözüp bunları tespit etmek için araçları incelerken, bu web hizmetleri yönlerini etkili bir şekilde yönetmenin neden bu kadar önemli olduğunu görüyoruz.