HTTP durum kodları, bir web sunucusunun bir HTTP isteğine yanıt olarak gönderdiği yanıt kodlarıdır. İşte en yaygın HTTP durum kodları ve açıklamaları:
1xx (Bilgilendirme) Durum Kodu
1xx (Bilgilendirme) kodları, sunucunun bir isteği aldığını ve işlemeye başladığını belirtir. Bu kodlar, sunucunun isteği aldığı ve işlediği anlamına gelir. İstemci, sunucunun işleme devam edeceğini bekleyebilir veya istekle ilgili daha fazla bilgi için yanıtın geri kalanını bekleyebilir.
Bu kodlar, genellikle bir isteğin başlatılması ve istekle ilgili daha fazla bilgi sağlanması arasındaki bir bağlantı oluşturmak için kullanılır. Örneğin, bir web sayfası yüklerken, web tarayıcısı sunucudan yanıtı beklerken bu kodlar kullanılabilir.
İşte en yaygın 1xx durum kodları ve açıklamaları:
100 Continue:
100 Continue kodu, sunucunun bir isteği aldığını ve işlemeye başladığını belirtir. Ancak, istemci, isteğe ilişkin daha fazla bilgi göndermek üzere olduğunu belirtirse, sunucu yanıtı tamamlamadan önce beklemeye devam edebilir.
Bu durum, özellikle istemci, sunucunun isteği anlaması için ek bilgi sağlamak zorunda kaldığında ortaya çıkar. Örneğin, istemci, sunucunun bir dosyayı yüklemesi için bir POST isteği göndermiş olabilir. Sunucu, isteği aldığını belirtirken, istemcinin dosya yüklemesi için ek bilgi sağlaması gerekiyor olabilir. Bu durumda, sunucu 100 Continue yanıtı gönderir ve istemci, dosyayı yüklemek için gereken ek bilgiyi gönderebilir.
101 Switching Protocols:
101 Switching Protocols durum kodu, sunucunun istekte belirtilen protokolü değiştirdiğini ve artık yeni protokole göre işlem yapacağını belirtir. Bu durum genellikle sunucu ve istemci arasındaki iletişimde bir protokol değişikliği gerektiğinde ortaya çıkar. Örneğin, bir web sitesi ziyaretçisi, HTTPS protokolüyle web sitesine erişmek isteyebilir. Sunucu, HTTP protokolüyle başladığı iletişimi HTTPS protokolüne değiştirebilir.
Örneğin, bir istemci, sunucuyla bir HTTP protokolü kullanarak bir bağlantı başlatmış olabilir. Ancak sunucu, istemcinin HTTPS protokolünü kullanmasını gerektiriyorsa, sunucu 101 Switching Protocols yanıtını gönderebilir ve HTTPS protokolüne geçiş yapılabilir.
2xx (Başarılı) Durum Kodu
2xx (Başarılı) durum kodları, sunucunun bir isteği başarıyla işlediğini ve istemciye olumlu bir yanıt verdiğini belirtir. Bu durum kodları, istemci tarafından yapılan bir isteğin sunucu tarafından başarılı bir şekilde işlendiği anlamına gelir ve genellikle istemcinin beklentilerine uygun bir yanıt olduğunu gösterir.
Örneğin, bir istemci, bir web sitesindeki bir sayfayı görüntülemek için bir GET isteği gönderebilir. Sunucu, isteği başarılı bir şekilde işlediğinde, 200 OK durum kodu gönderir. Bu kod, sunucunun isteği aldığını ve istemciye isteğine uygun bir yanıt sağladığını belirtir.
200 OK:
200 OK, sunucunun isteği başarılı bir şekilde işlediğini ve istemciye isteğine uygun bir yanıt sağladığını belirten bir HTTP durum kodudur. Bu kod, sunucunun isteği aldığını, işlediğini ve istemcinin talebine uygun bir yanıt döndürdüğünü gösterir.
Örneğin, bir kullanıcının bir web sitesine bir GET isteği göndermesi durumunda, sunucu 200 OK yanıtı gönderir ve istemciye istediği sayfanın içeriğini gösterir. Bu kod, genellikle sunucunun istemcinin talebini başarıyla işlediğini ve uygun bir yanıt sağladığını belirtmek için kullanılır.
201 Created:
201 Created, sunucunun istemcinin gönderdiği istekle yeni bir kaynak oluşturduğunu ve başarıyla işlediğini belirten bir HTTP durum kodudur. Bu kod, sunucunun istemcinin talebine uygun olarak yeni bir kaynak oluşturduğunu ve başarılı bir şekilde işlediğini belirtir.
Örneğin, bir kullanıcının bir POST isteği göndermesi durumunda, sunucu yeni bir kaynak oluşturduysa, 201 Created yanıtı gönderir. Bu yanıtta, sunucu oluşturulan kaynağın URL’sini de içerebilir. Bu, istemcinin kaynağın nerede bulunabileceğini bilmek için kullanabileceği bir bilgidir.
202 Accepted:
202 Accepted, sunucunun istemcinin gönderdiği isteği kabul ettiğini, ancak hemen yanıt veremediğini veya işleme koyamadığını belirten bir HTTP durum kodudur. Bu kod, sunucunun istemcinin isteğini kabul ettiğini, ancak işlemenin tamamlanması için daha fazla zaman gerektiğini gösterir.
Örneğin, bir kullanıcının bir POST isteği göndermesi durumunda, sunucu isteği aldıysa ancak işlemeyi henüz tamamlamadıysa, 202 Accepted yanıtı gönderir. Bu yanıt, sunucunun isteği aldığını ve işleme koyduğunu, ancak işlemin tamamlanması için daha fazla zaman gerektiğini gösterir.
203 Non-Authoritative Information:
203 Non-Authoritative Information, sunucunun istemcinin gönderdiği isteği başarıyla işlediğini, ancak yanıtın kaynağının sunucunun o kaynağın sahibi olmadığını ve kaynağın doğru olmayabileceğini belirten bir HTTP durum kodudur. Bu kod, sunucunun istemcinin isteğini kabul ettiğini ve yanıtın kaynağına işaret ettiğini, ancak kaynağın güvenilirliği konusunda bir garanti vermediğini gösterir.
203 Non-Authoritative Information yanıtı, özellikle bir proxy sunucunun bir kaynak için yanıtı önbelleğe aldığında veya bir sunucunun kendi önbelleğindeki yanıtı gönderdiğinde kullanılır. Bu durumda, sunucu yanıtın orijinal kaynağı olmadığını ve bu nedenle yanıtın güvenilirliği konusunda bir garanti veremeyeceğini belirtir.
204 No Content:
204 No Content, sunucunun istemcinin gönderdiği isteği başarıyla işlediğini ve yanıt olarak herhangi bir içerik göndermediğini belirten bir HTTP durum kodudur. Bu kod, sunucunun istemcinin isteğini tam olarak yerine getirdiğini, ancak bir yanıt gövdesi oluşturmadığını veya yanıtın boyutunun sıfır olduğunu belirtir.
Örneğin, bir kullanıcının bir DELETE isteği göndermesi durumunda, sunucu isteği aldıysa ve ilgili kaydı başarıyla sildiyse, 204 No Content yanıtı gönderebilir. Bu yanıt, sunucunun isteği başarıyla işlediğini, ancak yanıt olarak herhangi bir içerik göndermediğini gösterir.
205 Reset Content:
205 Reset Content, sunucunun istemcinin gönderdiği isteği başarıyla işlediğini ve istemcinin sayfayı sıfırlaması gerektiğini belirten bir HTTP durum kodudur. Bu durum kodu, sunucunun bir formu işleyerek bir sayfayı güncellediği veya bir istek sonucunda bir sayfayı sıfırlamak istediği durumlarda kullanılır.
Örneğin, bir kullanıcının bir form göndermesi durumunda, sunucu form verilerini işleyebilir ve sonuç olarak 205 Reset Content yanıtını gönderebilir. Bu yanıt, sunucunun isteği başarıyla işlediğini ve istemcinin form verilerini temizlemesi gerektiğini belirtir.
206 Partial Content:
206 Partial Content, bir sunucunun, istemcinin talep ettiği içeriğin sadece bir kısmını gönderdiği bir HTTP durum kodudur. Bu kod, sunucunun bir istemcinin talep ettiği kaynağın büyük bir bölümünü gönderdiği durumlarda kullanılır.
Örneğin, bir müzik dosyası isteği gönderildiğinde, sunucu tüm dosyayı göndermek yerine, istemcinin talep ettiği bölümünü yani bir kısmını gönderebilir. Sunucu, 206 Partial Content yanıtı ile istemciye, talep edilen içeriğin sadece bir kısmını gönderdiğini bildirir.
3xx (Yönlendirme) Durum Kodu
3xx (Yönlendirme) durum kodları, sunucunun istemciyi başka bir URL’ye yönlendirdiği durumları ifade eder. Bu durum kodları, bir URL’nin değiştirildiği, bir sayfanın taşındığı veya bir kaynağın farklı bir konumda olduğu durumlarda kullanılır.
Aşağıda, bazı örnekler ve açıklamalar verilmiştir:
300 Multiple Choice:
300 Multiple Choice, bir istek için birden fazla kaynak mevcut olduğu durumda sunucunun gönderdiği HTTP durum kodudur. Sunucu, istemciye mevcut kaynakların listesini gönderir ve istemcinin hangi kaynağı kullanacağına karar vermesi gerektiğini belirtir.
Örneğin, bir film indirme sitesi, kullanıcıya farklı kalitelerde aynı filmin farklı sürümlerini sunabilir. Sunucu, kullanıcıya bu farklı sürümleri göstererek hangi sürümü indireceğine karar vermesini sağlayabilir. Bu durumda, sunucu 300 Multiple Choice durum kodunu göndererek mevcut seçenekleri gösterebilir.
301 Moved Permanently:
301 Moved Permanently, bir isteğin kalıcı olarak başka bir URL’ye yönlendirildiğini belirten bir HTTP durum kodudur. Sunucu, istemcinin istediği kaynağın kalıcı olarak yeni bir URL’ye taşındığını belirtir ve artık eski URL’yi kullanmamasını isteyebilir.
Örneğin, bir web sitesi yöneticisi, bir sayfanın URL’sini değiştirirse, eski URL’yi kullanan tüm isteklerin yeni URL’ye yönlendirilmesi gerekebilir. Bu durumda, sunucu 301 Moved Permanently durum kodunu kullanarak istemciyi yeni URL’ye yönlendirir.
302 Found:
302 Found, bir isteğin geçici olarak başka bir URL’ye yönlendirildiğini belirten bir HTTP durum kodudur. Sunucu, istemcinin istediği kaynağın geçici olarak farklı bir URL’de bulunduğunu belirtir ve istemciyi otomatik olarak yeni URL’ye yönlendirir.
Örneğin, bir web sitesi yöneticisi, bir sayfayı bakım nedeniyle geçici olarak başka bir URL’ye taşıyabilir. Bu durumda, sunucu 302 Found durum kodunu kullanarak istemciyi yeni URL’ye yönlendirir.
303 See Other:
303 See Other, bir isteğin başarılı bir şekilde işlendiğini ve istemcinin farklı bir URI’ye yönlendirildiğini belirten bir HTTP durum kodudur. Bu durumda, sunucu istemciye farklı bir URI’ye yönlendirildiği bilgisini verir ve istemci yeni URI’yi kullanarak bir sonraki isteği gönderir.
Ancak, 303 See Other durum kodu, istemcinin yeni URI’yi kullanarak yalnızca GET isteği göndermesine izin verir. Bu nedenle, 303 See Other durum kodu, bir form gönderimi sonrasında işlemin tamamlanması için kullanılabilir.
Örneğin, bir web sitesinde kullanıcının bir form göndermesi gerektiğinde, sunucu 303 See Other durum kodunu kullanarak, istemciyi tekrar yönlendirir ve sonucu gösterir. Bu durumda, istemci, sonucu görüntülemek için yeni URI’yi kullanabilir ve form gönderimi sonrasında yeniden gönderme riski olmadan sayfayı yenileyebilir.
304 Not Modified:
304 Not Modified, istemcinin önbelleğindeki bir kaynağın değişmediğini belirten bir HTTP durum kodudur. Bir istemci, bir kaynağı daha önce indirdiğinde, sunucuya yeniden istek göndermek yerine, yerel önbellekten kaynağı alabilir. Ancak, sunucu, önbellekteki kaynak değişmediyse, aynı kaynağı tekrar göndermek yerine, 304 Not Modified durum kodunu kullanarak, istemciyi mevcut kaynağı kullanmaya teşvik eder.
Örneğin, bir web sitesi ziyaretçisi, bir sayfayı ziyaret ettiğinde, tarayıcı sayfanın kaynaklarını önbelleğe alır. Bir sonraki ziyaretinde, tarayıcı, önbelleğe alınan kaynakları tekrar kullanır. Ancak, sunucu, önbelleğe alınan kaynakların hiçbirinde değişiklik yapılmamışsa, 304 Not Modified durum kodunu kullanarak, sunucudan kaynakları yeniden indirmeye gerek olmadığını belirtir.
305 Use Proxy:
305 Use Proxy, artık kullanılmayan bir HTTP durum kodudur. Bu durum kodu, bir istemcinin sunucudan bir kaynağı almak için bir proxy sunucu kullanması gerektiğini belirtir. Ancak, bu durum kodu, güvenlik açıklarına neden olduğu için artık önerilmiyor ve yerine 307 Temporary Redirect veya 308 Permanent Redirect durum kodları öneriliyor.
307 Temporary Redirect durum kodu, istemcinin başka bir URI’ye yönlendirildiğini belirtir ve istemci yeni URI’yi kullanarak bir sonraki isteği gönderir. Ancak, istemci orijinal isteğin yönlendirilmediği bir metod kullanarak yeniden göndermeli ve aynı isteği göndermeli. Bu durum, orijinal istek verilerinin korunmasını sağlar.
306 Unused:
306, “unused” olarak belirtilen bir HTTP durum kodudur ancak kullanılmamaktadır ve herhangi bir anlamı yoktur. Bu durum kodu, yalnızca belgelerde listelenir ve hiçbir zaman kullanılmamıştır. Bu nedenle, bu durum kodu HTTP protokolü tarafından desteklenmez ve kullanılmaması önerilir.
307 Temporary Redirect:
307 Temporary Redirect, istemcinin başka bir URI’ye yönlendirildiğini belirtir ve istemcinin yeni URI’yi kullanarak bir sonraki isteği göndermesini gerektirir. Ancak, istemci orijinal isteğin yönlendirilmediği bir metod kullanarak yeniden göndermeli ve aynı isteği göndermeli. Bu durum, orijinal istek verilerinin korunmasını sağlar.
307 Temporary Redirect, 302 Found durum kodunun yerini alır ve daha doğru bir şekilde bir geçici yönlendirme olduğunu belirtir. Örneğin, bir web sitesi sahibi, bir sayfanın bakım için geçici olarak devre dışı bırakılması gerektiğinde, 307 Temporary Redirect durum kodunu kullanarak istemcileri geçici olarak başka bir sayfaya yönlendirebilir.
308 Permanent Redirect:
308 Permanent Redirect, istemcinin başka bir URI’ye kalıcı olarak yönlendirildiğini belirtir ve istemcinin yeni URI’yi kullanarak bir sonraki isteği göndermesini gerektirir. Bu durum kodu, orijinal URI’nin artık kullanılamadığını ve kalıcı olarak başka bir URI’ye yönlendirildiğini belirtir.
308 Permanent Redirect durum kodu, 301 Moved Permanently durum kodunun yerini alır ve daha doğru bir şekilde bir kalıcı yönlendirme olduğunu belirtir. Örneğin, bir web sitesi sahibi, bir sayfanın tamamen kaldırıldığını veya başka bir URL’ye taşındığını bildirmek için 308 Permanent Redirect durum kodunu kullanabilir.
4xx (İstemci Hatası) Durum Kodu
4xx (İstemci Hatası) Durum Kodu, sunucunun isteği işleyemediği ve hatanın istemciden kaynaklandığı anlamına gelir. Bu durum kodları, genellikle istemcinin yanlış veya eksik bir istek göndermesi nedeniyle oluşur.
Aşağıda, bazı örnekler ve açıklamalar verilmiştir:
400 Bad Request:
400 Bad Request, sunucunun istemcinin gönderdiği isteği anlayamadığını veya geçersiz bir istek aldığını belirtir. Bu durum kodu, genellikle istemcinin yanlış biçimlendirilmiş bir istek göndermesi veya eksik parametreler içermesi nedeniyle oluşur.
Örneğin, bir web sitesine giriş yapmaya çalışırken kullanıcı adı veya şifre alanını doldurmadan “giriş yap” düğmesine tıklarsanız, bu durum koduyla karşılaşabilirsiniz. Sunucu, gerekli parametreleri almaz ve bir hata mesajı gösterir.
401 Unauthorized, sunucunun istemcinin kimliğini doğrulayamadığını ve bu nedenle isteğe yanıt veremeyeceğini belirtir. Bu durum kodu, kullanıcının kimliği veya kimlik doğrulama bilgileri eksik veya yanlış olduğunda ortaya çıkar.
Örneğin, bir web sitesine giriş yapmaya çalışırken yanlış kullanıcı adı veya şifre girerseniz, sunucu size 401 Unauthorized hatası döndürebilir. Sunucu, gerekli kimlik doğrulama bilgilerini alamaz ve bu nedenle isteğe yanıt veremez.
402 Payment Required:
402 Payment Required, ödeme gerektiren bir işlem yapılmadan isteğin gerçekleştirilemeyeceğini belirtir. Ancak, bu durum kodu genellikle kullanılmaz ve yerine 403 Forbidden durum kodu kullanılır.
HTTP protokolü, 402 Payment Required durum kodu için bir tanım sağlamaktadır, ancak pratikte bu durum kodu nadiren kullanılır. Eğer bir ödeme işlemi gerekiyorsa, bu genellikle 403 Forbidden durum koduyla bildirilir.
403 Forbidden:
403 Forbidden, sunucunun istemcinin isteğini anladığını, ancak isteği yerine getirmek için gerekli izinlere sahip olmadığını belirtir. Bu durum kodu, bir kullanıcının bir web sitesindeki belirli bir sayfaya veya kaynağa erişmek için gerekli izinlere sahip olmadığını belirtmek için kullanılır.
Örneğin, bir web sitesindeki özel bir bölüme erişmeye çalışırken kimlik doğrulaması yapılmadan önce 403 Forbidden hatası alabilirsiniz. Bu durumda, sunucu isteği reddeder ve istemcinin bu bölüme erişmek için gerekli izinlere sahip olmadığını belirtir.
403 Forbidden durum kodu, sunucunun isteği reddettiğini ve istemcinin isteğini yerine getirmek için gerekli izinlere sahip olmadığını belirtir.
404 Not Found:
404 Not Found, sunucunun istemcinin istediği kaynağı bulamadığını belirtir. Bu durum kodu, bir URL’nin yanlış yazıldığı, kaynağın taşındığı veya silindiği durumlarda kullanılır.
Örneğin, bir web sitesindeki belirli bir sayfaya erişmeye çalışırken 404 Not Found hatası alabilirsiniz. Bu durumda, sunucu istemcinin talep ettiği kaynağı bulamaz ve istemciye kaynağın mevcut olmadığını belirtir.
404 Not Found durum kodu, sunucunun istemcinin talep ettiği kaynağı bulamadığını belirtir.
405 Method Not Allowed:
405 Method Not Allowed, sunucunun istemcinin isteğinde belirtilen HTTP yöntemini desteklemediğini belirtir. Bu durum kodu, bir istemcinin belirli bir kaynağa erişmek için kullanılan HTTP yöntemini desteklemediği durumlarda kullanılır.
Örneğin, bir web sitesindeki belirli bir formu göndermek için POST yöntemini kullanmaya çalışırken 405 Method Not Allowed hatası alabilirsiniz. Bu durumda, sunucu sadece GET yöntemini destekliyor olabilir ve istemcinin talep ettiği HTTP yöntemini desteklemiyor olabilir.
405 Method Not Allowed durum kodu, sunucunun istemcinin istediği HTTP yöntemini desteklemediğini belirtir.
406 Not Acceptable:
406 Not Acceptable, sunucunun istemcinin talep ettiği kaynağı sunamayacağını belirtir. Bu durum kodu, bir istemcinin belirli bir kaynağa erişmek için kabul edilebilir bir medya türü sağlamadığı durumlarda kullanılır.
Örneğin, bir web sitesinden belirli bir kaynağı JSON formatında istemeye çalışırken 406 Not Acceptable hatası alabilirsiniz. Bu durumda, sunucu belirli bir kaynağı yalnızca XML formatında sunuyor olabilir ve istemcinin JSON formatında talep etmesi durumunda 406 Not Acceptable hatası alır.
406 Not Acceptable durum kodu, sunucunun istemcinin talep ettiği kaynağı sunamayacağını belirtir.
407 Proxy Authentication Required:
407 Proxy Authentication Required, bir istemcinin proxy sunucusuyla yapılan bir istekte kimlik doğrulaması gerektiğini belirtir. Bu durum kodu, bir proxy sunucusu aracılığıyla sunucuya bağlanmaya çalışırken kimlik doğrulaması gerektiği durumlarda kullanılır.
Örneğin, bir kuruluşun internete erişimi yalnızca bir proxy sunucusu aracılığıyla mümkün olabilir. Bu durumda, kullanıcı internete erişmek için proxy sunucusuna bağlanırken kimlik bilgileri gerektirebilir. Proxy sunucusuna yapılan istekler, kimlik bilgilerinin doğrulanmasından sonra sunucuya iletilebilir.
407 Proxy Authentication Required durum kodu, bir istemcinin proxy sunucusu aracılığıyla sunucuya bağlanmaya çalışırken kimlik doğrulaması gerektiğini belirtir.
408 Request Timeout:
408 Request Timeout, bir isteğin sunucu tarafından belirtilen zaman aralığında tamamlanamaması durumunda gönderilir. Bu durum kodu, bir isteğin tamamlanması için belirli bir sürenin aşıldığı durumlarda kullanılır.
Örneğin, bir istemcinin bir dosya indirmek için sunucuya bir istekte bulunduğunu düşünün. Sunucu, dosyanın büyük olması nedeniyle isteği tamamlamak için belirli bir süre gerektirebilir. 408 Request Timeout durum kodu, sunucunun isteği belirtilen sürede tamamlayamaması durumunda istemciye gönderilir.
408 Request Timeout durum kodu, bir isteğin belirtilen sürede tamamlanamaması durumunda gönderilir.
409 Conflict:
409 Conflict durum kodu, bir istekle ilgili olarak sunucu tarafından algılanan bir çelişki veya çakışma durumunda gönderilir. Bu durum kodu genellikle, bir istekle ilgili kaynakların aynı anda değiştirilmesi veya güncellenmesi gibi senkronizasyon sorunlarıyla ilişkilendirilir.
Örneğin, bir web uygulamasında iki kullanıcının aynı anda bir kaynağı değiştirmeye çalıştığını düşünün. Bu durumda, sunucu değiştirilmiş kaynaklar arasında bir çakışma tespit ederse, 409 Conflict durum kodunu gönderir ve isteği reddeder.
410 Gone:
410 Gone durum kodu, bir istekle ilgili olarak talep edilen kaynağın artık mevcut olmadığını veya kalıcı olarak silindiğini belirtir. Bu durum kodu, 404 Not Found durum kodundan farklı olarak, kaynağın geçmişte mevcut olduğunu ve artık kullanılamaz olduğunu açıkça belirtir.
Örneğin, bir web sitesi yöneticisi, bir sayfayı silerse, artık mevcut olmayan bir URL’ye yapılan istekler 410 Gone durum koduyla yanıtlanır. Bu durum kodu, istemcinin artık kaynağa erişemeyeceği konusunda açık bir uyarı niteliğindedir.
411 Length Required:
411 Length Required durum kodu, sunucunun istek gövdesinin boyutunu belirtmek için “Content-Length” üstbilgisini gerektirdiğini belirtir. Bu durum kodu genellikle, bir POST veya PUT isteği gövdesi gönderildiğinde, ancak istekte “Content-Length” üstbilgisi belirtilmediğinde gönderilir.
Örneğin, bir web uygulaması için bir dosya yükleme sayfasında kullanıcılar, büyük dosyaları yükleyebilmek için bir POST isteği gönderirler. Ancak, istekte “Content-Length” üstbilgisi belirtilmezse, sunucu 411 Length Required durum kodunu gönderir ve isteği reddeder.
412 Precondition Failed:
412 Precondition Failed durum kodu, sunucunun bir isteğin önceden belirtilen koşullarını karşılamadığını belirtir. Bu durum kodu genellikle, “If-Match”, “If-None-Match” veya “If-Unmodified-Since” üstbilgileri gibi koşullu isteklerle ilişkilidir.
Örneğin, bir web uygulaması kullanıcısı, bir kaynağı değiştirmek istediğinde, sunucu isteği karşılamadan önce, isteğin “If-Match” üstbilgisiyle belirtilen etiketle eşleşmesi gerektiğini gerektirebilir. Eşleşme sağlanmazsa, sunucu 412 Precondition Failed durum kodunu gönderir ve işlemi reddeder.
413 Request Entity Too Large:
413 Request Entity Too Large durum kodu, sunucunun istemcinin gönderdiği isteğin boyutu nedeniyle işleyememesi durumunda gönderilir. Sunucu, isteği alır ancak işlemez ve istemciye bu hata kodunu gönderir.
Bu durum kodu genellikle, bir web formu aracılığıyla gönderilen büyük bir dosya veya resim gibi yüksek boyutlu isteklerle ilişkilidir. Sunucu, belirli bir boyuttan büyük olan istekleri kabul etmez ve 413 Request Entity Too Large durum kodunu gönderir.
İstemci, bu hatayı önlemek için, isteğin boyutunu azaltabilir veya birden fazla istek yaparak verileri küçük parçalara ayırabilir. Sunucu da bu hatayı önlemek için, isteğin boyutunu artırabilir veya sunucu yapılandırmasını güncelleyerek maksimum istek boyutunu artırabilir.
414 Request-URI Too Long:
414 Request-URI Too Long durum kodu, sunucunun bir isteğin URI’sinin (Uniform Resource Identifier) belirli bir uzunluktan daha uzun olması nedeniyle işleyememesi durumunda gönderilir.
URI, bir web sayfasının veya başka bir kaynağın adresidir. Örneğin, “http://www.example.com/index.html” bir URI’dir. URI’lerin belirli bir uzunluğu vardır ve sunucular, bu uzunluktan daha uzun olan URI’leri kabul etmezler.
414 Request-URI Too Long hatası genellikle, bir kullanıcının bir web sitesindeki bir arama kutusuna çok uzun bir sorgu yazması durumunda ortaya çıkar. Bu hatanın önlenmesi için, URI’lerin belirli bir uzunluğu geçmemesine dikkat etmek gerekir. Ayrıca, web sitelerindeki arama kutularının sorgu uzunluğunu sınırlayan bir mekanizma olması önerilir.
415 Unsupported Media Type:
415 Unsupported Media Type durum kodu, sunucunun bir isteğin gövdesindeki ortam tipinin desteklenmediği durumlarda gönderilir.
Web uygulamalarında, istekler genellikle bir gövdeye sahiptir. Bu gövde, istekteki verileri taşır. Örneğin, bir HTML formu gönderirken, form verileri isteğin gövdesinde bulunur.
415 Unsupported Media Type hatası, sunucunun istekteki gövdedeki medya türünü tanıyamadığı veya desteklemediği durumlarda oluşur. Örneğin, bir web sitesi yalnızca JPEG resim dosyalarını destekliyorsa, bir istek JPEG olmayan bir resim dosyası içeriyorsa, sunucu bu hatayı gönderecektir.
Bu hatanın çözümü, istekteki medya türünü doğru bir şekilde belirlemek ve sunucunun desteklediği medya türlerinden birini kullanmaktır. Ayrıca, web uygulamaları geliştiricilerinin desteklenmeyen medya türleri için uygun hata mesajlarını göstermeleri önerilir.
416 Requested Range Not Satisfiable:
416 Requested Range Not Satisfiable, istekte bulunulan kaynak belirtilen aralıkta bulunmuyor. Bu durumda, istekte bulunan kaynak istenilen aralıkta olmadığı için sunucu bu durumu belirtir. Örneğin, bir dosyanın belirli bir bölümünü indirmek isteyen bir istemcinin istediği aralık, kaynak dosyanın boyutundan daha büyük olabilir veya dosyanın belirli bir bölümü silinmiş olabilir.
417 Expectation Failed:
417 Expectation Failed, istek başlıklarındaki “Expect” alanı, sunucunun karşılayamayacağı bir değere sahip olduğunda sunucu tarafından gönderilir. Bu durumda sunucu, isteği yerine getiremeyeceğini belirtir. Örneğin, bir istemcinin isteğinde “Expect: 100-continue” alanı belirtilmiş olabilir ancak sunucu bu özelliği desteklemiyorsa, 417 Expectation Failed durum kodu gönderilir.
418 I’m a teapot:
418 I’m a teapot, bir şaka durum kodudur. Bu durum kodu, Hyper Text Coffee Pot Control Protocol (HTCPCP) adlı şaka bir protokole referans vermek için kullanılır. HTCPCP, internet üzerinden bir kahve makinesi kontrol etme protokolüdür. 418 I’m a teapot durum kodu, bir sunucunun HTCPCP protokolüne uymadığını ve bu nedenle bir istemci tarafından bir kahve makinesi olarak algılanamayacağını belirtmek için kullanılır. Bu durum kodu, aslında gerçek bir HTTP durum kodu değildir, ancak bazı sunucular bu durum kodunu destekleyebilirler.
5xx (Sunucu Hatası) Durum Kodu
5xx (Sunucu Hatası) Durum Kodları, sunucunun isteği işleme sırasında bir hata aldığını belirtmek için kullanılır. Bu durum kodları, sunucu tarafında bir sorun olduğunu ve istemcinin bir şey yapamayacağını belirtir.
Aşağıda, bazı örnekler ve açıklamalar verilmiştir:
500 Internal Server Error:
500 Internal Server Error, sunucuda bir hata oluştuğunu ve isteğin işlenemediğini belirtir. Bu durum genellikle sunucu tarafındaki bir yazılım hatası veya yapılandırma sorunundan kaynaklanır.
501 Not Implemented:
501 Not Implemented, sunucunun istenen isteği yerine getiremediğini, istenen işlevselliğin henüz sunucuda uygulanmadığını veya desteklenmediğini belirtir. Bu durumda sunucu, istek yapıldığında doğru yanıtı veremiyor.
502 Bad Gateway:
502 Bad Gateway, sunucunun başka bir sunucuyla iletişim kurduğu sırada beklenmedik bir yanıt aldığını belirtir. Bu durum, bir proxy sunucusunun arkasındaki bir sunucunun çöktüğü veya erişilemez olduğu durumlarda sıkça görülür.
503 Service Unavailable, sunucunun isteklere yanıt verememesini belirtir. Bu durum, sunucunun bakım için geçici olarak kapalı olması, çok sayıda isteğin aynı anda yapıldığı zamanlarda sunucunun aşırı yüklenmesi veya sunucunun çöktüğü durumlarda görülebilir.
504 Gateway Timeout:
504 Gateway Timeout, sunucunun bir isteği karşılamak için beklerken zaman aşımına uğraması durumunda oluşur. Bu durum, sunucunun aynı zamanda bir ağ geçidi veya proxy sunucusu olması durumunda daha yaygın olarak ortaya çıkar. Ağdaki bir hata nedeniyle isteğin hedef sunucuya ulaşamaması, sunucunun yavaş yanıt vermesi veya sunucunun çok yüksek yük altında olması gibi nedenlerle oluşabilir.
505 HTTP Version Not Supported:
505 HTTP Version Not Supported durum kodu, istekte belirtilen HTTP protokol sürümünün sunucu tarafından desteklenmediğini ifade eder. Yani, sunucu, isteği işleyemiyor veya yanıtlayamıyor çünkü kullanılan HTTP sürümü uyumsuz. Bu durumda, istemcinin HTTP protokol sürümünü güncellemesi gerekebilir.