Σχεδόν όλοι όσοι περιηγούνται στο internet θα έχουν συναντήσει κάποια στιγμή ένα HTTP status code.
Με απλά λόγια, οι HTTP κωδικοί κατάστασης (status code) είναι ουσιαστικά τυπικοί κωδικοί απόκρισης που χρησιμοποιούνται για να δείξουν τη σχέση μεταξύ όλων των πραγμάτων που συμβαίνουν στο παρασκήνιο όταν περιηγείσαι από σελίδα σε σελίδα στο web: πράγματα όπως ο user agent (όπως για παράδειγμα ο web browser σου), η ιστοσελίδα που προσπαθείς να φορτώσεις και τυχόν third-party application που μπορεί να τρέχουν.
Λόγω της πολυπλοκότητας του τρόπου με τον οποίο αλληλεπιδρούν όλα αυτά τα πράγματα, υπάρχει ένας μεγάλος κατάλογος από πιθανά HTTP status codes που μπορεί να συναντήσεις. Τα HTTP status codes μπορούν να χρησιμοποιηθούν για τον εντοπισμό και τη διάγνωση του συγκεκριμένου “εμποδίου” που εμποδίζει τη φόρτωση ενός πόρου, ή για να σου δώσουν περισσότερες πληροφορίες σχετικά με το ταξίδι που έκανες για να φορτώσεις μια σελίδα.
Τι σημαίνει το HTTP 302;
Ένα από τα πιο συνηθισμένα HTTP status codes είναι το HTTP 302. Αυτό το status εμφανίζεται όταν ένας πόρος ή μια σελίδα που προσπαθείς να φορτώσεις έχει μετακινηθεί προσωρινά σε διαφορετική τοποθεσία — μέσω ενός 302 redirect (ανακατεύθυνση)
Ο HTTP κωδικός απόκρισης “302 Found” είναι ένας κοινός τρόπος εκτέλεσης ενός url redirection (ανακατεύθυνση URL). Η προδιαγραφή HTTP/1.0 (RFC 1945) αρχικά καθόρισε την ονομασία αυτού του κωδικού, και του έδωσε την περιγραφή “Moved Temporarily” αντί για “Found”.
Μια απόκριση HTTP με αυτό τον κωδικό παρέχει ένα επιπλέον URL στο πεδίο κεφαλίδας “Location”.
Πρόκειται για μια πρόσκληση προς τον user agent (π.χ. Google Chrome ή Internet Explorer) να υποβάλει ένα δεύτερο, σχεδόν πανομοιότυπο, αίτημα προς το νέο URL που καθορίζεται στο location field. Το τελικό αποτέλεσμα είναι μια ανακατεύθυνση στη νέα διεύθυνση URL.
Τι είναι ένα redirect + παράδειγμα
Το redirect, ή αλλιώς ανακατεύθυνση, είναι ένας τρόπος για να στείλεις τους χρήστες και τις μηχανές αναζήτησης σε ένα διαφορετικό URL αντί για το αρχικό που ζητήθηκε εξαρχής. Τα τρία πιο γνωστά redirects είναι τα 301, 302 και Meta Refresh.
Παράδειγμα:
Η επίσημη σελίδα των San Francisco Giants (ομάδα Baseball) ανακατευθύνει το παλιό URL http://www.sfgiants.com/ μέσω 302 redirect, στο https://www.mlb.com/giants. Σαν αποτέλεσμα, όταν παλαιότερα αναζητούσε ένας χρήστης το “San Francisco Giants” στην Google, το www.sfgiants.com εμφανίζεται αντί του πραγματικού destination URL.
Επίσης, αρκετές πολυεθνικές ρούχων όπως το Sportsdirect, χρησιμοποιούν ανακατευθύνσης ούτως ώστε να διαμοιράζουν καλύτερα την επισκεψιμότητα στο κύριο domain τους (π.χ. www.sportsdirect.com) στα subdomains ανάλογα τη χώρα προέλευσης (οι Έλληνες χρήστες ανακατευθύνονται στο gr.sportsdirect.com).
Λόγοι για HTTP 302 error
Δεν πρέπει να χρησιμοποιείς το status code 302 εκτός αν θες να ενισχύσεις το SEO μιας συγκεκριμένης σελίδας ή να ανακατευθύνεις χρήστες από ένα url που άλλαξε, σε ένα νέο.
Ωστόσο, αυτοί είναι μερικές από τις πιο συχνές αιτίες για το 302 error:
- Χρήση του 302 redirect όταν γίνεται μεταφορά ενός domain
- Δημιουργία ενός 302 redirect όταν μετακινείς ένα online αρχείο
- Χρήση του 302 redirect κατά τη διάρκεια αλλαγής πρωτοκόλου (http σε https)
- Δημιουργία ενός 302 redirect όταν γίνεται αλλαγή αρχιτεκτονικής σε ένα site
Πώς να εξακριβώσεις ένα HTTP 302 error
Βεβαιώσου ότι οι ρυθμίσεις για τα 301 και 302 redirects είναι σωστές. Σε περίπτωση που έχεις υλοποιήσει ένα redirect, τότε θα πρέπει όταν πληκτρολογείς την παλιά διεύθυνση στον browser να σου μπορείς εύκολα να διαπιστώσεις τι συμβαίνει.
Η αλλαγή διεύθυνσης δείχνει ότι όλα λειτουργούν σωστά με την ανακατεύθυνση. Εάν η διεύθυνση παραμένει ίδια, θα πρέπει να αναζητήσεις τη πηγή του προβλήματος, αλλά πρώτα, βεβαιώσου ότι έχεις καθαρίσει την cache πριν προσπαθήσεις ξανά.
Υπάρχει άλλη μια επιλογή, να κάνεις αίτηση για τον έλεγχο του κωδικού απόκρισης του διακομιστή σε online υπηρεσίες, όπως η https://httpstatus.io/.
Εάν ρυθμίσεις σωστά το redirect, αφού εισάγεις το domain name, θα μπορείς να δεις το response code (301 ή 302). Εξαρτάται από το είδος της ανακατεύθυνσης που προγραμμάτισες να λάβεις αρχικά.
Γιατί και πότε συμβαίνει
Ο πιο συχνός λόγος για ένα HTTP 302 error είναι ότι ο διακομιστής πιστεύει ότι η διεύθυνση URL έχει ανακατευθυνθεί προσωρινά σε μια εναλλακτική διεύθυνση, και το redirect θα πρέπει να είναι αυτόματο.
Καθώς το αρχικό URL βρίσκεται προς το παρόν σε μια εναλλακτική διεύθυνση, ο χρήστης θα πρέπει να εξακολουθεί να χρησιμοποιεί την αρχική διεύθυνση και το αίτημα θα γίνεται redirected. Εναλλακτικά, ο διακομιστής θα πρέπει να εμφανίζει τη νεά διεύθυνση URL για την πρόσβαση από τον χρήστη.
Σημαντικό: Θα πρέπει να χρησιμοποιείς το HTTP 302 redirect μόνο για προσωρινές ανακατευθύνσεις, όχι για μόνιμες. Για μόνιμες ανακατευθύνσεις θα πρέπει να χρησιμοποιείς το 301 redirect.