506
Variant Also Negotiates
Γενική επεξήγηση του κωδικού κατάστασης 506
Ο κωδικός κατάστασης HTTP 506 Variant Also Negotiates είναι ένδειξη ενός συγκεκριμένου προβλήματος σε έναν διακομιστή που εμφανίζεται όταν ο διακομιστής αναπτύσσεται σε μια διαμόρφωση που χρησιμοποιεί τη λεγόμενη διαφανή διαπραγμάτευση περιεχομένου. Αυτός ο τύπος διαπραγμάτευσης περιεχομένου χρησιμοποιείται για τη διαχείριση διαφορετικών εκδόσεων ενός πόρου που μπορούν να παραδοθούν ανάλογα με τις απαιτήσεις του αιτούντος πελάτη (π.χ. διαφορετικές γλώσσες, μορφές αρχείων ή κωδικοποιήσεις).
Στην ουσία, ο κωδικός κατάστασης 506 Variant Also Negotiates σημαίνει ότι υπάρχει μια λανθασμένη διαμόρφωση στον διακομιστή που οδηγεί σε έναν ατέρμονα βρόχο διαπραγμάτευσης. Αντί ο διακομιστής να επιλέξει μια συγκεκριμένη έκδοση του αιτούμενου πόρου με βάση τις προτιμήσεις του πελάτη, η ίδια η επιλογή παραπέμπει σε άλλη διαπραγμάτευση. Το αποτέλεσμα είναι να μην παραδίδεται καμία από τις παραλλαγές, επειδή ο διακομιστής έχει παγιδευτεί σε έναν κύκλο αναφορών, όπου η μία παραλλαγή παραπέμπει σε μία άλλη, η οποία με τη σειρά της παραπέμπει σε μία άλλη κ.ο.κ.
Ένα απλό παράδειγμα: Ένας πελάτης θέλει μια ιστοσελίδα σε μια συγκεκριμένη γλώσσα. Ο διακομιστής διαθέτει διαφορετικές γλωσσικές εκδόσεις της ιστοσελίδας και προσπαθεί να επιλέξει την πιο κατάλληλη έκδοση. Ωστόσο, εάν η διαμόρφωση του διακομιστή είναι λανθασμένη, η διαδικασία που υποτίθεται ότι θα επέλεγε την καταλληλότερη έκδοση μπορεί αντί να κάνει μια οριστική επιλογή να παραπέμψει σε έναν άλλο γύρο διαπραγματεύσεων. Ο κωδικός κατάστασης 506 Variant Also Negotiates σηματοδοτεί στον πελάτη ότι ο διακομιστής δεν είναι σε θέση να παραδώσει μια κατάλληλη έκδοση του πόρου λόγω αυτών των εσωτερικών συγκρούσεων ή λανθασμένων ρυθμίσεων.
Στην πράξη, αυτός ο κωδικός κατάστασης εμφανίζεται σπάνια, επειδή προϋποθέτει μια πολύ συγκεκριμένη διαμόρφωση του διακομιστή και μια πολύ συγκεκριμένη κατάσταση σφάλματος. Η επίλυση του προβλήματος απαιτεί την επανεξέταση και διόρθωση της διαμόρφωσης του διακομιστή, ώστε να διασφαλιστεί ότι η διαπραγμάτευση περιεχομένου μπορεί να εκτελεστεί σωστά χωρίς να εισέλθει σε έναν ατέρμονα βρόχο.
Καθορισμός του κωδικού κατάστασης HTTP 506
Πηγή / Απόσπασμα από: Ο κωδικός κατάστασης HTTP 506 Variant Also Negotiates καθορίζεται από την ενότητα 8.1 του RFC2295.
Πρωτόκολλο HTTP
Πώς να πετάξετε έναν κωδικό κατάστασης 506 με την PHP;
Για την εμφάνιση του κωδικού κατάστασης HTTP 506 σε μια ιστοσελίδα, μπορεί να χρησιμοποιηθεί η συνάρτηση http_response_code της PHP. Η σύνταξη έχει ως εξής: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Δοκιμάστε τον κωδικό κατάστασης HTTP 506
Για να είναι δυνατή η εμφάνιση του κωδικού κατάστασης HTTP (στην προκειμένη περίπτωση 506 Variant Also Negotiates) και άλλων πληροφοριών στην πλευρά του πελάτη, η κονσόλα ανάπτυξης πρέπει να ανοίξει με το F12. Στη συνέχεια, μεταβείτε στην καρτέλα "Δίκτυο". Τώρα μπορεί να ανοίξει η σελίδα, ο ιστότοπος (παράδειγμα index.php) θα πρέπει να είναι ορατός στην καρτέλα δικτύου. Αυτή πρέπει να επιλεγεί και στη συνέχεια πρέπει να επιλεγεί το τμήμα Herder. Στη συνέχεια, ο χρήστης θα δει το ακόλουθο αποτέλεσμα:
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Κατάσταση: 506 Variant Also Negotiates
Αυτά τα: Network
Διεύθυνση IP: XX.XX.XX.XX
Πώς να δημιουργήσετε τη δική σας σελίδα σφάλματος για τον κωδικό κατάστασης 506
Apache Webserver
Ο διακομιστής ιστού "Apache" είναι ένας από τους πιο διαδεδομένους διακομιστές ιστού στο Διαδίκτυο. Για να δημιουργήσετε τη δική σας σελίδα σφάλματος 506 Variant Also Negotiates στον "Apache", πρέπει να κάνετε την ακόλουθη αλλαγή στο ακόλουθο αρχείο.
NGINX Webserver
Παρόμοια με τον διακομιστή ιστού "Apache", ο "NGINX" χρησιμοποιείται επίσης ευρέως στο Διαδίκτυο. Για να δημιουργήσετε τη δική σας σελίδα σφάλματος 506 Variant Also Negotiates στο "NGINX", πρέπει να γίνει η ακόλουθη αλλαγή στο ακόλουθο αρχείο.
location = /506.html {
root /usr/share/nginx/html;
internal;
}
Συμβατότητα του κωδικού κατάστασης 506 με το πρόγραμμα περιήγησης
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 |
Σταθερές στις γλώσσες προγραμματισμού
http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates