HTTP durum kodu 409'ün belirtimi
409 Conflict durum kodu, hedef kaynağın geçerli durumuyla bir çakışma nedeniyle isteğin tamamlanamadığını gösterir. Bu kod, kullanıcının çakışmayı çözebileceği ve isteği yeniden gönderebileceği durumlarda kullanılır. Sunucu, kullanıcının çakışmanın kaynağını tanıması için yeterli bilgi içeren bir yük oluşturmalıdır.
Çatışmalar büyük olasılıkla bir PUT isteğine yanıt olarak ortaya çıkar. Örneğin, sürüm oluşturma kullanılıyorsa ve PUT edilen temsil bir kaynakta daha önceki (üçüncü taraf) bir istek tarafından yapılanlarla çakışan değişiklikler içeriyorsa, kaynak sunucu isteği tamamlayamayacağını belirtmek için bir 409 Conflict yanıtı kullanabilir. Bu durumda, yanıt gösterimi muhtemelen revizyon geçmişine dayalı olarak farklılıkları birleştirmek için yararlı bilgiler içerecektir.
Kaynak / Alıntı: 409 Conflict HTTP durum kodu RFC7231 bölümünün 6.5.8 kısmında belirtilmiştir.
HTTP protokolü
PHP ile 409 durum kodu nasıl atılır?
Bir web sayfasında HTTP durum kodu 409'ü atmak için PHP işlevi http_response_code kullanılabilir. Sözdizimi aşağıdaki gibidir: http_response_code(409) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
409 HTTP Durum Kodunu Test Etme
HTTP durum kodunu (bu durumda 409 Conflict) ve istemci tarafındaki diğer bilgileri görüntüleyebilmek için geliştirme konsolu F12 ile açılmalıdır. Ardından "Ağ" sekmesine gidin. Artık sayfa açılabilir, web sitesi (örnek index.php) ağ sekmesinde görünür olmalıdır. Bu seçilmeli ve ardından Herder bölümü seçilmelidir. Kullanıcı daha sonra aşağıdaki sonucu görecektir:
URL: https://http-statuscode.com/errorCodeExample.php?code=409
Durum: 409 Conflict
Şunlar: Network
IP adresi: XX.XX.XX.XX
409 durum koduyla ilgili sorunu nasıl çözebilirim?
409 Conflict Çakışma Durum Kodu, istemci tarafından gönderilen isteğin hedef kaynağın mevcut durumuyla çakıştığını gösterir. Bu, örneğin iki istemci aynı kaynağı aynı anda güncellemeye çalıştığında meydana gelebilir.
409 Conflict Çakışma Durum Kodunun Nedenleri
- Eşzamanlı Güncellemeler: Daha önce de belirtildiği gibi, 409 Conflict durum kodunun yaygın bir nedeni, birden fazla istemcinin aynı anda bir kaynağı değiştirmeye çalışmasıdır.
- Tutarsız Veri: Bir istemci sunucunun beklenen biçimlendirme veya doğrulama kurallarına uymayan veriler gönderirse, 409 Conflict durum kodu döndürülebilir.
- Mantıksal çakışmalar: Veriler doğru biçimlendirilmiş olsa bile, mantıksal çakışmalar meydana gelebilir. İki kişinin aynı anda aynı koltuk için rezervasyon yapmaya çalıştığı bir rezervasyon sistemi buna örnek olarak verilebilir.
409 Conflict Çakışma durum kodunu çözmek için atılacak adımlar:
- Veri doğrulama: İstemci tarafından gönderilen verilerin doğru biçimlendirildiğinden ve tutarlı olduğundan emin olun. Sunucu tarafından sağlanan doğrulama kurallarını kontrol edin ve isteğinizi buna göre ayarlayın.
- Kilitleme mekanizmaları uygulayın: Eşzamanlı güncelleme olasılığı olan sistemler için bir kilitleme mekanizması yararlı olabilir. Bu, birden fazla kullanıcının aynı anda bir kaynak üzerinde değişiklik yapmasını önler.
- Sürüm kontrolleri uygulamak: Bir kaynağın her durumunu bir sürümle işaretleyerek, istemciler her zaman en son sürümle çalıştıklarından emin olabilirler.
- Kullanıcıya geri bildirim: Bir 409 Conflict çakışması meydana geldiğinde, istemci açık ve anlaşılır bir hata mesajı ile bilgilendirilmelidir, böylece nasıl devam edeceğini bilir.
- Sunucu günlüklerini inceleyin: Genellikle sunucu günlükleri çakışmanın nedeni hakkında ek bilgiler içerir. Bu günlüklerde arama yapmak sorunun tam olarak ne olduğuna ışık tutabilir.
- Yeniden gönderme mantığı: Bazı durumlarda, özellikle çakışma hızlı bir şekilde değişebilen kısa vadeli koşullardan kaynaklanıyorsa, isteği otomatik olarak yeniden göndermek yararlı olabilir.
Durum kodu 409 için kendi hata sayfanızı nasıl oluşturursunuz?
Apache Webserver
"Apache" web sunucusu internetteki en yaygın web sunucularından biridir. "Apache" de kendi 409 Conflict hata sayfanızı oluşturmak için aşağıdaki dosyada aşağıdaki değişiklik yapılmalıdır.
NGINX Webserver
"Apache" web sunucusuna benzer şekilde "NGINX" de internette yaygın olarak kullanılmaktadır. "NGINX" de kendi 409 Conflict hata sayfanızı oluşturmak için aşağıdaki dosyada aşağıdaki değişiklik yapılmalıdır.
location = /409.html {
root /usr/share/nginx/html;
internal;
}
409 durum kodunun tarayıcı uyumluluğu
Chrome | no data |
Edge | no data |
Firefox | no data |
Opera | no data |
Safari | no data |
Chrome Android | no data |
Firefox for Android | no data |
Opera Android | no data |
Safari on iOS | no data |
Internet | no data |
WebView Android | no data |
Programlama dillerinde sabitler
HttpStatusCode.Conflict
http.StatusConflict
Response::HTTP_CONFLICT
httplib.CONFLICT
http.client.CONFLICT
http.HTTPStatus.CONFLICT
:conflict