Αναζητήστε οποιονδήποτε κωδικό κατάστασης HTTP: τι σημαίνει, πότε τον στέλνουν οι διακομιστές και ποια προδιαγραφή τον ορίζει. Αναζητήστε με αριθμό ή λέξη-κλειδί, φιλτράρετε ανά κλάση και αποκτήστε απευθείας σύνδεσμο προς έναν κωδικό.
Ο διακομιστής έλαβε τις κεφαλίδες αιτήματος και ο πελάτης μπορεί να στείλει το σώμα. Εμφανίζεται όταν ένας πελάτης στέλνει «Expect: 100-continue» πριν ανεβάσει μεγάλο σώμα.
Ο διακομιστής αποδέχθηκε ένα αίτημα WebDAV αλλά δεν το έχει ολοκληρώσει ακόμα. Αφαιρέθηκε από μεταγενέστερες προδιαγραφές WebDAV και σπάνια χρησιμοποιείται σήμερα.
Αποστέλλεται πριν από την τελική απόκριση, ώστε το πρόγραμμα περιήγησης να ξεκινήσει την προφόρτωση πόρων που αναφέρονται στις κεφαλίδες Link. Χρησιμοποιείται από CDN και διακομιστές για ταχύτερη φόρτωση σελίδων.
Το αίτημα πέτυχε και δημιούργησε έναν νέο πόρο, που συνήθως προσδιορίζεται από την κεφαλίδα Location. Συνηθίζεται μετά από ένα επιτυχημένο POST που δημιουργεί μια εγγραφή.
Το αίτημα έγινε αποδεκτό για επεξεργασία αλλά δεν έχει ολοκληρωθεί. Χρησιμοποιείται από API που βάζουν εργασίες σε ουρά, όπως εξαγωγές ή μαζικές εργασίες.
Το αίτημα πέτυχε και δεν υπάρχει περιεχόμενο για επιστροφή. Συνηθίζεται σε αιτήματα DELETE και κατά την αποθήκευση δεδομένων όταν ο πελάτης δεν χρειάζεται σώμα απόκρισης.
Ο διακομιστής επιστρέφει μόνο το εύρος byte που ζήτησε ο πελάτης. Εμφανίζεται όταν γίνεται ροή βίντεο, συνεχίζονται λήψεις ή ένας πελάτης στέλνει κεφαλίδα Range.
Ο πόρος έχει μετακινηθεί μόνιμα στη διεύθυνση URL στην κεφαλίδα Location. Τα προγράμματα περιήγησης και οι μηχανές αναζήτησης ενημερώνουν τους συνδέσμους τους· ορισμένοι πελάτες αλλάζουν το POST σε GET όταν την ακολουθούν.
Ο πόρος βρίσκεται προσωρινά σε άλλη διεύθυνση URL που δίνεται στην κεφαλίδα Location. Συχνό μετά από συνδέσεις και για βραχυπρόθεσμες ανακατευθύνσεις· τα προγράμματα περιήγησης συνήθως ακολουθούν με GET.
Ο πελάτης πρέπει να λάβει το αποτέλεσμα από άλλη διεύθυνση URL με GET. Χρησιμοποιείται μετά από POST φόρμας για ανακατεύθυνση σε σελίδα επιβεβαίωσης (το μοτίβο Post/Redirect/Get).
Το αντίγραφο στην κρυφή μνήμη εξακολουθεί να ισχύει, οπότε ο διακομιστής δεν στέλνει σώμα. Εμφανίζεται όταν ένα πρόγραμμα περιήγησης επικυρώνει εκ νέου ένα αποθηκευμένο αρχείο με If-None-Match ή If-Modified-Since.
Ζητούσε από τον πελάτη να χρησιμοποιήσει έναν διακομιστή μεσολάβησης που δίνεται στην κεφαλίδα Location. Είναι παρωχημένο για λόγους ασφαλείας και τα προγράμματα περιήγησης το αγνοούν.
Ο πόρος βρίσκεται προσωρινά σε άλλη διεύθυνση URL και ο πελάτης πρέπει να επαναλάβει το αίτημα με την ίδια μέθοδο και σώμα. Χρησιμοποιείται επίσης από τα προγράμματα περιήγησης για εσωτερικές ανακατευθύνσεις HSTS σε HTTPS.
Ο πόρος έχει μετακινηθεί μόνιμα και ο πελάτης πρέπει να χρησιμοποιήσει την ίδια μέθοδο και σώμα στη νέα διεύθυνση URL. Το μόνιμο αντίστοιχο του 307, ασφαλές για ανακατεύθυνση αιτημάτων POST.
Ο διακομιστής δεν μπορεί να επεξεργαστεί το αίτημα επειδή είναι κακοσχηματισμένο, για παράδειγμα μη έγκυρο JSON, κακή παράμετρος ερωτήματος ή κατεστραμμένο cookie.
Το αίτημα δεν έχει έγκυρα διαπιστευτήρια ελέγχου ταυτότητας. Παρά το όνομα, σημαίνει «μη πιστοποιημένος»· ο διακομιστής στέλνει μια κεφαλίδα WWW-Authenticate που περιγράφει πώς να συνδεθείτε.
Ο διακομιστής κατάλαβε το αίτημα αλλά το απορρίπτει, και η εκ νέου σύνδεση δεν θα βοηθήσει. Εμφανίζεται όταν λείπουν δικαιώματα, η λίστα καταλόγου είναι απενεργοποιημένη ή ένα τείχος προστασίας αποκλείει τον πελάτη.
Ο διακομιστής δεν μπορεί να βρει τον ζητούμενο πόρο. Συνήθως ένας λανθασμένα πληκτρολογημένος ή παρωχημένος σύνδεσμος, μια διαγραμμένη σελίδα ή μια λάθος διαδρομή API.
Ο πόρος υπάρχει αλλά δεν υποστηρίζει τη χρησιμοποιούμενη μέθοδο HTTP, όπως POST σε διεύθυνση URL μόνο για ανάγνωση. Η απόκριση απαριθμεί τις επιτρεπόμενες μεθόδους στην κεφαλίδα Allow.
Όπως το 401, αλλά ο πελάτης πρέπει πρώτα να πιστοποιηθεί σε έναν διακομιστή μεσολάβησης. Εμφανίζεται σε εταιρικά δίκτυα με διακομιστή μεσολάβησης που απαιτεί πιστοποίηση.
Δεν πληρούνταν μια συνθήκη στις κεφαλίδες του αιτήματος, όπως το If-Match. Χρησιμοποιείται για να αποτρέψει την αντικατάσταση ενός πόρου που άλλαξε από τότε που τον διάβασε ο πελάτης.
Το σώμα του αιτήματος είναι μεγαλύτερο από ό,τι δέχεται ο διακομιστής. Εμφανίζεται όταν ανεβάζετε αρχείο πάνω από ένα όριο, όπως το client_max_body_size του nginx.
Το URL είναι μεγαλύτερο από ό,τι μπορεί να επεξεργαστεί ο διακομιστής. Συνήθως προκαλείται από μια φόρμα που στέλνει πάρα πολλά δεδομένα με GET ή από έναν βρόχο ανακατεύθυνσης που συνεχώς προσθέτει παραμέτρους.
Ένα πρωταπριλιάτικο αστείο από το Hyper Text Coffee Pot Control Protocol του 1998: μια τσαγιέρα που αρνείται να φτιάξει καφέ. Το HTTP κρατά τον κωδικό ως μη χρησιμοποιούμενο, αλλά ορισμένοι διακομιστές τον επιστρέφουν ως Easter egg ή για να απορρίψουν ανεπιθύμητα bots.
Το αίτημα έφτασε σε διακομιστή που δεν μπορεί να παράγει απάντηση για αυτόν τον κεντρικό υπολογιστή, για παράδειγμα όταν μια σύνδεση HTTP/2 επαναχρησιμοποιείται για διαφορετικό τομέα.
Το αίτημα είναι καλά σχηματισμένο αλλά το περιεχόμενό του δεν είναι έγκυρο, όπως μια φόρμα με αποτυχημένους κανόνες επικύρωσης. Χρησιμοποιείται ευρέως από API για σφάλματα επικύρωσης.
Ο πελάτης έχει στείλει πάρα πολλά αιτήματα σε δεδομένο χρόνο. Τα API τον χρησιμοποιούν για περιορισμό ρυθμού και συχνά περιλαμβάνουν κεφαλίδα Retry-After που λέει πότε να δοκιμάσετε ξανά.
Οι κεφαλίδες του αιτήματος είναι πολύ μεγάλες, συχνά λόγω υπερβολικά πολλών ή μεγάλων cookies. Συνήθως διορθώνεται με εκκαθάριση των cookies του ιστότοπου.
Δεν είναι πρότυπος κωδικός. Το nginx τον χρησιμοποιεί εσωτερικά για να κλείσει τη σύνδεση χωρίς να στείλει απόκριση, συχνά για να απορρίψει ανεπιθύμητη κίνηση· οι πελάτες δεν τον λαμβάνουν ποτέ στην πραγματικότητα.
Δεν είναι πρότυπος κωδικός. Πρόκειται για παραλλαγή του 431 από το nginx, η οποία καταγράφεται όταν οι κεφαλίδες αιτήματος υπερβαίνουν τα όρια του buffer του.
Δεν είναι πρότυπος κωδικός. Το nginx τον καταγράφει όταν ο πελάτης έκλεισε τη σύνδεση πριν απαντήσει ο διακομιστής, για παράδειγμα όταν ένας χρήστης ακυρώνει μια αργή σελίδα ή λόγω λήξης χρόνου στην πλευρά του πελάτη.
Ο διακομιστής αντιμετώπισε απρόσμενο σφάλμα και δεν μπόρεσε να ολοκληρώσει το αίτημα. Γενικό σφάλμα από bug, κατάρρευση ή εσφαλμένη ρύθμιση· τα αρχεία καταγραφής του διακομιστή περιέχουν λεπτομέρειες.
Μια πύλη ή ένας διακομιστής μεσολάβησης έλαβε μη έγκυρη απόκριση από τον ανάντη διακομιστή. Συχνό όταν η εφαρμογή πίσω από τον nginx ή έναν εξισορροπητή φορτίου έχει καταρρεύσει ή επανεκκινείται.
Ο διακομιστής δεν μπορεί προσωρινά να εξυπηρετήσει το αίτημα επειδή είναι υπερφορτωμένος ή εκτός λειτουργίας για συντήρηση. Η κεφαλίδα Retry-After μπορεί να υποδεικνύει πότε να δοκιμάσετε ξανά.
Μια πύλη ή ένας διακομιστής μεσολάβησης δεν έλαβε έγκαιρα απόκριση από τον ανάντη διακομιστή. Εμφανίζεται όταν ένα αίτημα προς το backend είναι πολύ αργό, όπως ένα χρονοβόρο ερώτημα βάσης δεδομένων.
Ο διακομιστής δεν μπορεί να αποθηκεύσει ό,τι απαιτείται για την ολοκλήρωση του αιτήματος, για παράδειγμα όταν ο δίσκος ενός διακομιστή WebDAV είναι γεμάτος.
Δεν είναι πρότυπος κωδικός. Χρησιμοποιείται από ορισμένες ρυθμίσεις κοινόχρηστης φιλοξενίας (modules Apache, cPanel) όταν ένας ιστότοπος υπερβαίνει το όριο εύρους ζώνης του.
Ο πελάτης πρέπει να πραγματοποιήσει έλεγχο ταυτότητας για να αποκτήσει πρόσβαση στο δίκτυο. Αποστέλλεται από captive portals σε Wi-Fi ξενοδοχείων, αεροδρομίων ή καφέ πριν συνδεθείτε.
Δεν είναι τυπικός κωδικός. Η Cloudflare τον επιστρέφει όταν ο διακομιστής προέλευσης αρνήθηκε τη σύνδεση, συνήθως επειδή ο διακομιστής ιστού είναι εκτός λειτουργίας ή αποκλείει τις διευθύνσεις IP της Cloudflare.
Δεν είναι τυπικός κωδικός. Η Cloudflare τον επιστρέφει όταν δεν μπορεί να επικοινωνήσει με τον διακομιστή προέλευσης, για παράδειγμα λόγω προβλήματος DNS ή δρομολόγησης.
Δεν είναι τυπικός κωδικός. Η Cloudflare τον επιστρέφει όταν συνδέθηκε με τον διακομιστή προέλευσης αλλά δεν έλαβε απόκριση HTTP εντός του χρονικού ορίου της (100 δευτερόλεπτα από προεπιλογή).
Δεν είναι τυπικός κωδικός. Η Cloudflare τον επιστρέφει όταν το πιστοποιητικό SSL του διακομιστή προέλευσης δεν είναι έγκυρο και είναι ενεργοποιημένη η λειτουργία SSL Full (strict).
Ορίζεται στο Cloudflare
Πώς να το χρησιμοποιήσετε
Πληκτρολογήστε έναν αριθμό κωδικού (π.χ. 404 ή απλώς 5 για όλα τα σφάλματα διακομιστή) ή μια λέξη-κλειδί όπως «redirect» ή «timeout».
Περιορίστε τη λίστα με το φίλτρο κλάσης: ενημερωτικό, επιτυχία, ανακατεύθυνση, σφάλμα πελάτη ή σφάλμα διακομιστή.
Χρησιμοποιήστε την επιλογή «Αντιγραφή συνδέσμου» σε οποιονδήποτε κωδικό για να μοιραστείτε έναν απευθείας σύνδεσμο προς αυτόν, για παράδειγμα σε μια αναφορά σφάλματος.
Πώς λειτουργεί
Κάθε απόκριση HTTP ξεκινά με έναν τριψήφιο κωδικό κατάστασης. Το πρώτο ψηφίο ορίζει την κατηγορία: 1xx πληροφοριακές αποκρίσεις, 2xx επιτυχία, 3xx ανακατεύθυνση, 4xx σφάλματα που προκαλούνται από το αίτημα και 5xx σφάλματα στην πλευρά του διακομιστή. Οι πελάτες που δεν αναγνωρίζουν έναν συγκεκριμένο κωδικό τον αντιμετωπίζουν όπως τον κωδικό x00 της κατηγορίας του, επομένως ένας άγνωστος κωδικός 4xx αντιμετωπίζεται όπως το 400.
Οι βασικοί κωδικοί ορίζονται στο RFC 9110 (HTTP Semantics, 2022), το οποίο αντικατέστησε το παλαιότερο RFC 7231. Άλλοι προέρχονται από επεκτάσεις: WebDAV (RFC 4918), RFC 6585 για τα 428, 429, 431 και 511, RFC 7725 για το 451 και RFC 8470 για το 425. Το RFC 9110 μετονόμασε επίσης δύο κωδικούς: το 413 είναι πλέον «Content Too Large» και το 422 «Unprocessable Content», τα οποία μπορεί να δείτε ακόμη με τις παλιές ονομασίες «Payload Too Large» και «Unprocessable Entity».
Κάποιοι κωδικοί που συναντάτε στα αρχεία καταγραφής δεν είναι καθόλου πρότυποι. Ο nginx χρησιμοποιεί εσωτερικά τα 444 και 494–499 (το 499 δείχνει πελάτη που σταμάτησε να περιμένει) και το Cloudflare επιστρέφει 520–526 όταν δεν μπορεί να λάβει σωστή απάντηση από τον διακομιστή προέλευσης. Αυτοί επισημαίνονται ως «Μη τυποποιημένοι» στη λίστα. Οι φράσεις αιτιολογίας (όπως «Not Found») εμφανίζονται στα αγγλικά όπως είναι γραμμένες στις προδιαγραφές· το HTTP/2 και το HTTP/3 στέλνουν μόνο τον αριθμό.
Παραδείγματα
301 ή 308 κατά τη μετακίνηση ενός ιστότοπου
Και τα δύο είναι μόνιμα. Χρησιμοποιήστε το 301 για συνηθισμένες μετακινήσεις σελίδων· χρησιμοποιήστε το 308 όταν οι πελάτες πρέπει να επαναλάβουν αιτήματα POST ή PUT στη νέα διεύθυνση URL, επειδή ορισμένοι πελάτες αλλάζουν το POST σε GET μετά από ένα 301.
401 έναντι 403
Ένα API επιστρέφει 401 όταν δεν αποστέλλεται token ή το token έχει λήξει, οπότε ο πελάτης πρέπει να συνδεθεί. Επιστρέφει 403 όταν το token είναι έγκυρο αλλά ο χρήστης δεν έχει δικαίωμα πρόσβασης, οπότε η εκ νέου σύνδεση δεν θα βοηθήσει.
Διάγνωση ενός 502 πίσω από τον nginx
Ένα 502 Bad Gateway από τον nginx σημαίνει ότι η εφαρμογή πίσω από αυτόν δεν απάντησε σωστά. Ελέγξτε αν εκτελείται η διεργασία της εφαρμογής και τι κατέγραψε· το 504 σημαίνει ότι απάντησε πολύ αργά.
Συχνές ερωτήσεις
Ποια είναι η διαφορά μεταξύ 404 και 410;
Το 404 σημαίνει ότι ο διακομιστής δεν μπορεί να βρει τον πόρο και δεν λέει τίποτα για το μέλλον. Το 410 λέει ότι ο πόρος αφαιρέθηκε σκόπιμα και δεν θα επιστρέψει, κάτι που βοηθά τις μηχανές αναζήτησης να καταργήσουν τη διεύθυνση URL νωρίτερα.
Πρέπει ένα σφάλμα επικύρωσης να επιστρέφει 400 ή 422;
Χρησιμοποιούνται και τα δύο. Το 400 ταιριάζει σε αιτήματα που ο διακομιστής δεν μπορεί να αναλύσει, όπως κακοσχηματισμένο JSON. Το 422 ταιριάζει σε αιτήματα που αναλύονται σωστά αλλά περιέχουν μη έγκυρες τιμές, όπως ένα πεδίο email χωρίς @.
Είναι ο κωδικός 418 I'm a teapot πραγματικός κωδικός κατάστασης;
Προέρχεται από ένα πρωταπριλιάτικο RFC του 1998. Το RFC 9110 δεσμεύει το 418 ως μη χρησιμοποιούμενο, ώστε να μην αποδίδεται σε κάτι άλλο, και μερικοί διακομιστές τον επιστρέφουν ως αστείο, αλλά δεν έχει τυπική σημασία.
Από πού προέρχεται ο κωδικός 499;
Το 499 αφορά ειδικά τον nginx. Εμφανίζεται στα αρχεία καταγραφής του nginx όταν ο πελάτης κλείσει τη σύνδεση πριν ο διακομιστής στείλει απάντηση. Ο πελάτης δεν λαμβάνει ποτέ 499· συνήθως υποδεικνύει αργές αποκρίσεις ή χρονικά όρια από την πλευρά του πελάτη.
Αντιμετωπίζουν οι μηχανές αναζήτησης το 302 όπως το 301;
Το 302 υποδηλώνει προσωρινή μετακίνηση, επομένως οι μηχανές αναζήτησης συνήθως διατηρούν αρχικά ευρετηριασμένο το αρχικό URL. Αν ένα 302 παραμείνει για μεγάλο διάστημα, η Google μπορεί να το αντιμετωπίσει ως μόνιμη ανακατεύθυνση. Χρησιμοποιήστε 301 ή 308 για μόνιμες μετακινήσεις.
Απόρρητο
Η λίστα αποτελεί μέρος της σελίδας. Η αναζήτηση και το φιλτράρισμα γίνονται στο πρόγραμμα περιήγησής σας· οι όροι αναζήτησής σας δεν αποστέλλονται πουθενά ούτε περιλαμβάνονται σε στατιστικά στοιχεία.