Οι κωδικοί κατάστασης HTTP εξηγημένοι, από το 200 έως το 503
Κάθε φορά που το πρόγραμμα περιήγησής σας ζητά κάτι από έναν web server, ο server απαντά με έναν τριψήφιο αριθμό πριν στείλει πίσω οποιαδήποτε HTML, εικόνα, ή JSON. Αυτός ο αριθμός είναι ο κωδικός κατάστασης HTTP, και είναι ο σύντομος τρόπος του server να πει τι συνέβη: η σελίδα είναι εδώ, μετακινήθηκε, δεν επιτρέπεται η είσοδος, ή κάτι χάλασε στη δική του πλευρά. Τις περισσότερες φορές δεν βλέπετε ποτέ αυτούς τους κωδικούς γιατί όλα λειτουργούν και η σελίδα απλώς φορτώνει. Αλλά τη στιγμή που μια ιστοσελίδα δεν συμπεριφέρεται σωστά, ο κωδικός κατάστασης είναι το πρώτο στοιχείο που αξίζει να διαβάσετε.
Οι αριθμοί δεν είναι τυχαίοι. Το πρώτο ψηφίο ταξινομεί κάθε απόκριση σε μία από πέντε οικογένειες, οπότε ακόμη κι ένας άγνωστος κωδικός σας λέει περίπου τι πήγε στραβά μόνο από το αρχικό του ψηφίο. Μάθετε τις πέντε οικογένειες και μπορείτε να διαβάσετε σχεδόν κάθε απόκριση με μια ματιά.

Οι πέντε κατηγορίες
1xx πληροφοριακά. Ο server έλαβε το αίτημά σας και ακόμη εργάζεται πάνω σε αυτό. Αυτά είναι σπάνια στην καθημερινή περιήγηση και συνήθως χειρίζονται σιωπηλά ανάμεσα στο πρόγραμμα περιήγησης και τον server. Το 100 Continue είναι το κλασικό παράδειγμα, που λέει σε έναν client ότι είναι εντάξει να στείλει το υπόλοιπο ενός μεγάλου σώματος αιτήματος.
2xx επιτυχία. Το αίτημα δούλεψε. Το 200 OK είναι αυτό που θέλετε να βλέπετε όλη μέρα, σημαίνοντας ότι ο πόρος βρέθηκε και είναι καθ' οδόν πίσω. Το 201 Created εμφανίζεται αφού υποβάλετε μια φόρμα ή κλήση API που δημιουργεί κάτι νέο, και το 204 No Content σημαίνει ότι η ενέργεια πέτυχε αλλά δεν υπάρχει τίποτα να εμφανιστεί.
3xx ανακατεύθυνση. Αυτό που ζητήσατε βρίσκεται κάπου αλλού, και το πρόγραμμα περιήγησης συνήθως το ακολουθεί αυτόματα. Οι ανακατευθύνσεις κρατούν ζωντανούς παλιούς συνδέσμους και έχουν μεγάλη σημασία για την κατάταξη στις μηχανές αναζήτησης.
4xx σφάλμα client. Κάτι με το αίτημα ήταν λάθος στη δική σας πλευρά: ένα κακό URL, απουσία σύνδεσης, ή ένας πόρος που δεν υπάρχει. Ο server είναι υγιής· απλώς δεν μπορεί να δεχτεί αυτό που στείλατε.
5xx σφάλμα server. Το αίτημά σας ήταν εντάξει, αλλά ο server σκόνταψε καθώς το χειριζόταν. Αυτά δείχνουν στην υποδομή της ιστοσελίδας, όχι σε εσάς.
Οι συγκεκριμένοι κωδικοί που ψάχνει πραγματικά ο κόσμος
Το 200 OK είναι απλή επιτυχία. Η σελίδα ή τα δεδομένα φορτώθηκαν όπως αναμενόταν.
Το 301 Moved Permanently λέει στα προγράμματα περιήγησης και τις μηχανές αναζήτησης ότι μια σελίδα έχει ένα νέο μόνιμο σπίτι. Αυτή είναι η φιλική προς το SEO ανακατεύθυνση, γιατί περνάει σήματα κατάταξης από το παλιό URL στο νέο. Χρησιμοποιήστε το όταν αλλάζετε ένα URL για πάντα.
Το 302 Found είναι μια προσωρινή ανακατεύθυνση. Το αρχικό URL εξακολουθεί να είναι το πραγματικό, οπότε οι μηχανές αναζήτησης συνεχίζουν να το ευρετηριάζουν αντί για τον προορισμό. Καταφύγετε στο 302 μόνο όταν η μετακίνηση είναι πραγματικά βραχύβια, όπως η δρομολόγηση χρηστών σε μια εποχιακή σελίδα προορισμού.
Το 304 Not Modified είναι ένας ήσυχος ήρωας της γρήγορης περιήγησης. Λέει στο πρόγραμμα περιήγησης ότι το αντίγραφο που κάθεται ήδη στην cache του εξακολουθεί να είναι επίκαιρο, οπότε ο server παραλείπει την επανάληψη αποστολής του αρχείου. Λιγότερα δεδομένα, γρηγορότερες σελίδες.
Το 400 Bad Request σημαίνει ότι ο server δεν μπόρεσε καν να καταλάβει το αίτημα, συχνά λόγω κακοσχηματισμένης σύνταξης ή μη έγκυρης παραμέτρου.
Το 401 Unauthorized μεταφράζεται περίπου σε «δεν ξέρω ποιος είσαι, παρακαλώ πιστοποιήσου». Σας λείπουν έγκυρα διαπιστευτήρια.
Το 403 Forbidden είναι διαφορετικό: ο server ξέρει ποιος είστε και και πάλι αρνείται. Σας λείπει άδεια, και το να συνδεθείτε ξανά δεν θα βοηθήσει.
Το 404 Not Found είναι ο πιο διάσημος κωδικός απ' όλους. Ο server είναι ζωντανός και σας απάντησε, αλλά δεν υπάρχει τίποτα σε εκείνη τη διεύθυνση. Συνήθως προέρχεται από έναν λανθασμένα πληκτρολογημένο σύνδεσμο ή μια σελίδα που διαγράφηκε ή μετακινήθηκε χωρίς ανακατεύθυνση.
Το 429 Too Many Requests σημαίνει ότι έχετε περιοριστεί σε ρυθμό (rate-limited). Στείλατε πάρα πολλά αιτήματα σε πολύ σύντομο χρονικό διάστημα, και ο server σας ζητάει να επιβραδύνετε. Τα APIs χρησιμοποιούν αυτό συνεχώς.
Το 500 Internal Server Error είναι η γενική απόκριση «κάτι χάλασε». Ο server συνάντησε μια απρόσμενη συνθήκη και τα παράτησε, αλλά δεν λέει τι. Ελέγξτε τα logs του server.
Το 502 Bad Gateway εμφανίζεται όταν ένας server, που δρα ως πύλη ή proxy, παίρνει μια μη έγκυρη απάντηση από έναν upstream server πίσω του. Συχνά σημάδι ότι μια backend εφαρμογή κατέρρευσε ή είναι απρόσιτη.
Το 503 Service Unavailable σημαίνει ότι ο server είναι προσωρινά υπερφορτωμένος ή εκτός λειτουργίας για συντήρηση. Σε αντίθεση με το 500, υπονοεί ότι το πρόβλημα είναι βραχυπρόθεσμο και η ιστοσελίδα θα πρέπει να επιστρέψει σύντομα.

Τι σημαίνουν οι κωδικοί κατάστασης για το SEO και το debugging
Για την κατάταξη στις μηχανές αναζήτησης, η διάκριση ανάμεσα σε 301 και 302 είναι αυτή που παγιδεύει τον κόσμο. Μια μόνιμη μετακίνηση θα πρέπει πάντα να χρησιμοποιεί 301 ώστε η νέα σελίδα να κληρονομήσει την αυθεντία της παλιάς· ένα 302 στο λάθος σημείο μπορεί να αφήσει τις μηχανές αναζήτησης να ευρετηριάζουν το αρχικό URL διασπώντας τα σήματά σας. Εν τω μεταξύ, μεγάλοι αριθμοί 404 σπαταλούν το budget ανίχνευσης (crawl budget) και απογοητεύουν τους επισκέπτες, οπότε αξίζει να ανακατευθύνετε ή να διορθώνετε χαλασμένους συνδέσμους αντί να τους αφήνετε να σαπίζουν.
Για το debugging, η οικογένεια σας λέει πού να κοιτάξετε. Ένα 4xx δείχνει προς το αίτημα, οπότε ελέγξτε το URL, τις κεφαλίδες, και τα διαπιστευτήρια. Ένα 5xx δείχνει προς τον server, οπότε ελέγξτε τα logs της εφαρμογής, τις upstream υπηρεσίες, και αν μόλις πήγε στραβά ένα deploy. Ένα κύμα από 502 και 503 συχνά σημαίνει ότι ένα backend είναι εκτός λειτουργίας ή υπερφορτωμένο παρά κάποιο σφάλμα κώδικα. Μπορείτε να επιθεωρήσετε την ακριβή κατάσταση που επιστρέφει μια ιστοσελίδα με τα εργαλεία προγραμματιστών μας, και όταν ένα 5xx μοιάζει με πρόβλημα συνδεσιμότητας παρά με σφάλμα εφαρμογής, μια γρήγορη αναζήτηση DNS μπορεί να επιβεβαιώσει ότι ο τομέας εξακολουθεί να επιλύεται στη σωστή διεύθυνση.
Συχνές ερωτήσεις
Είναι κακό ένα σφάλμα 404 για την ιστοσελίδα μου;
Μερικά 404 είναι φυσιολογικά και αβλαβή. Τα προβλήματα ξεκινούν όταν δημοφιλείς σελίδες επιστρέφουν 404 ή όταν σωρεύονται χαλασμένοι εσωτερικοί σύνδεσμοι, σπαταλώντας το budget ανίχνευσης και απογοητεύοντας τους επισκέπτες. Ανακατευθύνετε τις μετακινημένες σελίδες και διορθώστε τους κακούς συνδέσμους.
Ποια είναι η διαφορά ανάμεσα σε ανακατεύθυνση 301 και 302;
Μια 301 είναι μόνιμη και περνάει σήματα κατάταξης στο νέο URL, οπότε χρησιμοποιήστε την όταν μια σελίδα μετακινείται για πάντα. Μια 302 είναι προσωρινή και κρατάει το αρχικό URL ευρετηριασμένο, οπότε χρησιμοποιήστε την μόνο για βραχύβιες μετακινήσεις.
Ποια είναι η διαφορά ανάμεσα σε 401 και 403;
Ένα 401 σημαίνει ότι δεν έχετε πιστοποιηθεί, οπότε η σύνδεση μπορεί να το διορθώσει. Ένα 403 σημαίνει ότι ο server σας αναγνωρίζει αλλά και πάλι αρνείται πρόσβαση γιατί σας λείπει άδεια, οπότε η επανασύνδεση δεν θα βοηθήσει.
Τι σημαίνει ένα σφάλμα 500 και πώς το διορθώνω;
Ένα 500 Internal Server Error σημαίνει ότι ο server συνάντησε ένα απρόσμενο σφάλμα ενώ χειριζόταν το αίτημά σας. Το μήνυμα είναι σκόπιμα γενικό, οπότε η διόρθωση συνήθως ξεκινά με την ανάγνωση των logs του server για να βρεθεί η πραγματική αιτία.
Γιατί παίρνω έναν κωδικό κατάστασης 429;
Ένα 429 Too Many Requests σημαίνει ότι έχετε περιοριστεί σε ρυθμό επειδή στέλνατε αιτήματα πολύ γρήγορα. Επιβραδύνετε, σεβαστείτε οποιαδήποτε κεφαλίδα Retry-After επιστρέφει ο server, και προσθέστε backoff σε scripts και clients API.
Τι σημαίνει το 503 Service Unavailable;
Ένα 503 σημαίνει ότι ο server είναι προσωρινά ανίκανος να χειριστεί το αίτημα, συνήθως λόγω υπερφόρτωσης ή προγραμματισμένης συντήρησης. Σηματοδοτεί ένα βραχυπρόθεσμο ζήτημα, οπότε η ιστοσελίδα θα πρέπει να ανακάμψει μόνη της σύντομα.
