506 durum kodunun genel açıklaması
HTTP durum kodu 506 Variant Also Negotiates, sunucu şeffaf içerik anlaşması olarak adlandırılan bir yapılandırmada konuşlandırıldığında ortaya çıkan sunucu içindeki belirli bir sorunun göstergesidir. Bu tür içerik anlaşması, talep eden istemcinin gereksinimlerine (örneğin farklı diller, dosya biçimleri veya kodlamalar) bağlı olarak teslim edilebilecek bir kaynağın farklı sürümlerini yönetmek için kullanılır.
Özünde, 506 Variant Also Negotiates durum kodu, sunucuda sonsuz bir anlaşma döngüsüne yol açan bir yanlış yapılandırma olduğu anlamına gelir. Sunucu, istemcinin tercihlerine göre istenen kaynağın belirli bir sürümünü seçmek yerine, seçimin kendisi başka bir müzakereye atıfta bulunur. Sonuç, hiçbir varyantın teslim edilmemesidir, çünkü sunucu bir varyantın diğerine, onun da diğerine atıfta bulunduğu bir referans döngüsüne yakalanır ve bu böyle devam eder.
Basit bir örnek: Bir istemci belirli bir dilde bir web sayfası istiyor. Sunucu web sitesinin farklı dil sürümlerine sahiptir ve en uygun sürümü seçmeye çalışır. Ancak, sunucunun yapılandırması yanlışsa, en uygun sürümü seçmesi gereken süreç, kesin bir seçim yapmak yerine başka bir müzakere turuna başvurabilir. 506 Variant Also Negotiates durum kodu, istemciye sunucunun bu iç çatışmalar veya yanlış yapılandırmalar nedeniyle kaynağın uygun bir sürümünü sunamadığını bildirir.
Uygulamada, bu durum kodu nadiren görülür çünkü çok özel bir sunucu yapılandırması ve hata durumu varsayar. Sorunun çözülmesi, içerik anlaşmasının sonsuz bir döngüye girmeden doğru bir şekilde gerçekleştirilebilmesini sağlamak için sunucu yapılandırmasının gözden geçirilmesini ve düzeltilmesini gerektirir.
HTTP durum kodu 506'ün belirtimi
Kaynak / Alıntı: 506 Variant Also Negotiates HTTP durum kodu RFC2295 bölümünün 8.1 kısmında belirtilmiştir.
HTTP protokolü
PHP ile 506 durum kodu nasıl atılır?
Bir web sayfasında HTTP durum kodu 506'ü atmak için PHP işlevi http_response_code kullanılabilir. Sözdizimi aşağıdaki gibidir: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
506 HTTP Durum Kodunu Test Etme
HTTP durum kodunu (bu durumda 506 Variant Also Negotiates) 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=506
Durum: 506 Variant Also Negotiates
Şunlar: Network
IP adresi: XX.XX.XX.XX
Durum kodu 506 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 506 Variant Also Negotiates 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 506 Variant Also Negotiates hata sayfanızı oluşturmak için aşağıdaki dosyada aşağıdaki değişiklik yapılmalıdır.
location = /506.html {
root /usr/share/nginx/html;
internal;
}
506 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
http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates