Τι είναι οι κεφαλίδες HTTP

0
Τι είναι οι κεφαλίδες HTTP

Του Μάθιου Έντγκαρ · Τελευταία ενημέρωση: 16 Δεκεμβρίου 2022

Όταν μια διεύθυνση URL πληκτρολογείται σε ένα πρόγραμμα περιήγησης (ή όταν ένα ρομπότ μηχανής αναζήτησης ανιχνεύει μια διεύθυνση URL), υποβάλλεται ένα αίτημα σε έναν διακομιστή ιστότοπου. Ως μέρος αυτού του αιτήματος, το πρόγραμμα περιήγησης ή το ρομπότ στέλνει πρόσθετες πληροφορίες στον διακομιστή σχετικά με το αίτημα σε ένα πεδίο κειμένου. Στη συνέχεια, ο διακομιστής στέλνει πίσω ένα αρχείο, όπως μια ιστοσελίδα ή μια εικόνα, ως απάντηση σε αυτό το αίτημα. Μαζί με την αποστολή του αρχείου περιεχομένου πίσω, ο διακομιστής στέλνει επίσης πρόσθετες πληροφορίες σχετικά με το αρχείο που ζητήθηκε σε ένα πεδίο κειμένου. Τα πεδία κειμένου που αποστέλλονται και λαμβάνονται από το πρόγραμμα περιήγησης, το ρομπότ και τον διακομιστή αναφέρονται ως κεφαλίδες HTTP.

Υπάρχουν δύο κύριοι τύποι κεφαλίδων HTTP: αίτημα και απάντηση.

  • Κεφαλίδες αιτήματος αποστέλλονται από το πρόγραμμα περιήγησης ή το ρομπότ στον διακομιστή (ως μέρος της αίτησης για ένα αρχείο). Αυτό περιλαμβάνει την αποστολή πληροφοριών σχετικά με τον παράγοντα χρήστη (στην κεφαλίδα User-Agent) ή την αποστολή πληροφοριών ελέγχου ταυτότητας (στην κεφαλίδα Έλεγχος ταυτότητας).
  • Κεφαλίδες απόκρισης αποστέλλονται από τον διακομιστή στο πρόγραμμα περιήγησης ή στο ρομπότ (ως μέρος της απάντησης στο αίτημα). Οι κεφαλίδες απόκρισης περιλαμβάνουν περισσότερες πληροφορίες σχετικά με το αρχείο που επιστράφηκε, συμπεριλαμβανομένων πληροφοριών σχετικά με τον κωδικό κατάστασης του αρχείου ή την ημερομηνία τελευταίας τροποποίησης του αρχείου (στην κεφαλίδα Τελευταία τροποποίηση). Ορισμένες κεφαλίδες απαντήσεων μπορούν να ταξινομηθούν ως κεφαλίδες αναπαράστασης εάν ο σκοπός της κεφαλίδας είναι να παρέχει μεταδεδομένα για το αρχείο, όπως η κωδικοποίηση του αρχείου.

Προτρέχω

Προβολή κεφαλίδων HTTP στα Εργαλεία προγραμματιστών του Chrome
Προβολή κεφαλίδων HTTP στα Εργαλεία προγραμματιστών του Chrome

Οι κεφαλίδες HTTP μπορούν να προβληθούν στα Εργαλεία προγραμματιστών του Chrome. Αφού φορτώσετε μια σελίδα στο Chrome, κάντε δεξί κλικ και επιλέξτε «Επιθεώρηση». Στον πίνακα Εργαλεία προγραμματιστή, μεταβείτε στην καρτέλα Δίκτυο και βεβαιωθείτε ότι λέει „Εγγραφή δραστηριότητας δικτύου“. Με ανοιχτή την καρτέλα Δίκτυο, ανανεώστε τη σελίδα στο Chrome. Η καρτέλα Δίκτυο θα γεμίσει τώρα με όλους τους πόρους που απαιτούνται για τη φόρτωση αυτής της σελίδας.

Κάντε κλικ στο πρώτο στοιχείο που αναφέρεται, το οποίο θα είναι το URL της σελίδας που βλέπετε. Αυτό θα φορτώσει ένα νέο πλαίσιο με πληροφορίες σχετικά με τη σελίδα, συμπεριλαμβανομένης μιας καρτέλας σε αυτό το πλαίσιο που περιέχει τις κεφαλίδες HTTP της σελίδας. Τα Εργαλεία προγραμματιστών του Chrome θα εμφανίζουν και τις κεφαλίδες Αίτημα και Απάντηση, οι οποίες μπορούν να είναι χρήσιμες για τον εντοπισμό σφαλμάτων τυχόν προβλημάτων που ενδέχεται να υπάρχουν στη σελίδα.

Μαζί με την προβολή των κεφαλίδων HTTP για την κύρια σελίδα, μπορείτε να χρησιμοποιήσετε τα Εργαλεία προγραμματιστή του Chrome για να προβάλετε τις κεφαλίδες HTTP για τους άλλους πόρους που απαιτούνται για τη φόρτωση αυτής της σελίδας. Για παράδειγμα, μπορεί να είναι χρήσιμο να προβάλλετε κεφαλίδες HTTP για εικόνες, JavaScript ή αρχεία CSS για να κατανοήσετε καλύτερα πώς φορτώνονται αυτά τα αρχεία.

Προβολή κεφαλίδων HTTP στο Google Search Console
Προβολή κεφαλίδων HTTP στο Google Search Console

Μπορείτε να προβάλετε τις κεφαλίδες HTTP στο Google Search Console χρησιμοποιώντας τη δυνατότητα URL Inspect για οποιαδήποτε σελίδα με κατάσταση 200 (που είναι οποιαδήποτε κανονική σελίδα που δεν ανακατευθύνει ή επιστρέφει σφάλμα). Στον λογαριασμό σας στο Google Search Console, εισαγάγετε οποιαδήποτε διεύθυνση URL στον ιστότοπό σας στο πεδίο αναζήτησης στο επάνω μέρος της σελίδας. Αυτό θα φορτώσει τα δεδομένα που έχει η Google σχετικά με αυτήν τη διεύθυνση URL, εάν η διεύθυνση URL έχει ήδη ανιχνευθεί από την Google. Εάν δεν βρεθούν πληροφορίες για αυτήν τη διεύθυνση URL, μπορείτε να κάνετε κλικ στο Test Live URL για να ζητήσετε από την Google να ανακτήσει τη σελίδα.

Μόλις φορτωθεί η σελίδα URL Inspect, κάντε κλικ στην επιλογή „Προβολή ανιχνευμένης σελίδας“ (ή εάν έχετε εκτελέσει μια ζωντανή δοκιμή, κάντε κλικ στην επιλογή „Προβολή δοκιμασμένης σελίδας“). Στον πίνακα που αναπτύσσεται, κάντε κλικ στην καρτέλα „Περισσότερες πληροφορίες“ και, στη συνέχεια, κάντε κλικ στην „Απόκριση HTTP“. Αυτό θα εμφανίσει τις κεφαλίδες HTTP που έλαβε η Google στην πιο πρόσφατη ανίχνευση της σελίδας, τις οποίες μπορεί να είναι ενδιαφέρον να ελέγξετε σε σχέση με τις ζωντανές κεφαλίδες HTTP που εμφανίζονται στον ιστότοπο.

Μαζί με την εμφάνιση των κεφαλίδων HTTP που βρέθηκαν στην πιο πρόσφατη ανίχνευση, η Google θα προσθέσει επιπλέον πληροφορίες στις κεφαλίδες παρέχοντας λίγο περισσότερο πλαίσιο σχετικά με τον τρόπο με τον οποίο η Google ανίχνευσε τη σελίδα. Αυτό περιλαμβάνει το X-Google-Crawl-Date, το οποίο δείχνει την τελευταία ημερομηνία που η Google ανίχνευσε τη σελίδα.

Υπάρχουν επίσης κεφαλίδες HTTP ειδικά για SEO που μπορούν να χρησιμοποιηθούν για τον καθορισμό οδηγιών ρομπότ και για τον ορισμό της κανονικής ετικέτας της σελίδας. Αυτές οι κεφαλίδες μπορούν να χρησιμοποιηθούν στη θέση των ετικετών HTML και συχνά χρησιμοποιούνται σε περιεχόμενο που δεν είναι HTML, όπως αρχεία PDF. Λάβετε υπόψη ότι αυτές οι κεφαλίδες χρησιμοποιούνται μόνο από το Googlebot και το Bingbot, αλλά δεν θα χρησιμοποιηθούν από άλλα ρομπότ ή προγράμματα περιήγησης.

X-Robots-Tag

Η κεφαλίδα X-Robots-Tag λειτουργεί όπως η ετικέτα meta robots, καθορίζοντας τον τρόπο ανίχνευσης των συνδέσμων που περιέχονται στο αρχείο (ακολουθήστε ή nofollow) και εάν το αρχείο πρέπει να ευρετηριαστεί (noindex ή index). Αλλα Οι οδηγίες μπορούν επίσης να καθοριστούν στην ετικέτα X-Robotsσυμπεριλαμβανομένου του εάν η Google επιτρέπεται να δημιουργήσει ένα απόσπασμα για το αρχείο (μέσω των οδηγιών nosnippet ή max-snippet) και εάν οι εικόνες που περιέχονται σε αυτό το αρχείο μπορούν να ευρετηριαστούν (μέσω της οδηγίας noimageindex).

Το X-Robots-Tag ορίζεται συνήθως στο αρχείο .htaccess στους διακομιστές Apache. Για παράδειγμα, αυτός ο κώδικας θα εφαρμόσει ένα noindex μέσω της κεφαλίδας X-Robots-Tag σε κάθε αρχείο PDF στον ιστότοπο:

<files *.pdf>
Header set X-Robots-Tag "noindex"
</files>

Ως άλλο παράδειγμα, αυτός ο κώδικας στο αρχείο .htaccess θα ορίσει ένα μη ευρετήριο για το αρχείο example.pdf που περιέχεται στον κατάλογο /uploads/.

<If "%{REQUEST_URI} =~ m#^/uploads/a-specific-file.pdf#">
Header set X-Robots-Tag "noindex"
</If>

Η rel = „κανονική“ κεφαλίδα HTTP λειτουργεί ακριβώς όπως η κανονική που καθορίζεται στο στοιχείο για το Googlebot. Δεν είναι σαφές εάν το Bingbot υποστηρίζει αυτήν την κεφαλίδα. Είτε καθορίζεται στην κεφαλίδα HTML είτε στην κεφαλίδα HTTP, η κανονική ετικέτα βοηθά στην επίλυση διπλότυπου περιεχομένου ορίζοντας μια κανονική ή προτιμώμενη διεύθυνση URL.

Η rel = „κανονική“ κεφαλίδα HTTP ορίζεται με την κεφαλίδα HTTP Link, η οποία απαιτεί μια διεύθυνση URL και πρόσθετες παραμέτρους (σε αυτήν την περίπτωση, η παράμετρος θα σημειώσει ότι αυτός ο σύνδεσμος περιέχει την κανονική διεύθυνση URL). Αυτό ορίζεται συνήθως στο αρχείο .htaccess στους διακομιστές Apache. Για παράδειγμα, αυτός ο κώδικας στο αρχείο .htaccess ορίζει τη σελίδα σχετικά με το Elementive ως την κανονική διεύθυνση URL αυτού του εγγράφου.

<If "%{THE_REQUEST} =~ m#about-elementive.docx#">
Header set Link '<https://www.elementive.com/about-elementive/>; rel="canonical"'
</If>

Ακολουθεί ένα παράδειγμα των κεφαλίδων για αυτό το αρχείο εγγράφου στο Google Search Console, συμπεριλαμβανομένου του συνδέσμου που περιέχει το κανονικό στις κεφαλίδες HTTP.

Κεφαλίδες HTTP στο Google Search Console, που εμφανίζουν τον σύνδεσμο rel="κανονικός"
Κεφαλίδες HTTP στο Google Search Console, που εμφανίζουν τον σύνδεσμο rel=”canonical”

Υπάρχουν πολλές κεφαλίδες HTTP (δείτε το πλήρης λίστα στο MDN), αλλά υπάρχουν μερικά που έχουν ιδιαίτερη σημασία για το SEO.

Η κεφαλίδα HTTP τοποθεσίας απαιτείται για οποιαδήποτε ανακατεύθυνση. Εδώ ο διακομιστής υποδεικνύει πού να ανακατευθύνει τον επισκέπτη. Για παράδειγμα, στο παρακάτω στιγμιότυπο οθόνης, η κεφαλίδα HTTP τοποθεσίας ενημερώνει τα ρομπότ και τα προγράμματα περιήγησης ότι η διεύθυνση URL που ζητήθηκε (https://www.matthewedgar.net/technical-seo/) έχει μετακινηθεί σε μια νέα διεύθυνση URL (https://www. matthewedgar.net/tech-seo/).

HTTP Headers μια ανακατεύθυνση που υποδεικνύει την τοποθεσία
HTTP Headers μια ανακατεύθυνση που υποδεικνύει την τοποθεσία

Επανάληψη-Μετά

Όταν παρουσιαστεί ένα προσωρινό σφάλμα διακομιστή, ο διακομιστής θα πρέπει να απαντήσει με έναν κωδικό απόκρισης 503. Επειδή η απόκριση 503 είναι ένα προσωρινό σφάλμα, ο διακομιστής θα πρέπει να επικοινωνεί όταν ένα πρόγραμμα περιήγησης ή ένα ρομπότ πρέπει να προσπαθήσει ξανά να αποκτήσει πρόσβαση στη σελίδα. Αυτό μπορεί να γίνει στην κεφαλίδα «Επανάληψη-Μετά την απόκριση». Το ίδιο ισχύει για έναν κωδικό απόκρισης 429, υποδεικνύοντας ότι έχουν υποβληθεί πάρα πολλά αιτήματα και το πρόγραμμα περιήγησης ή το ρομπότ που υποβάλλει αυτά τα αιτήματα πρέπει να περιμένει κάποιο χρονικό διάστημα πριν ζητήσει ξανά. Το Retry-After θα πρέπει να οριστεί σε μια ημερομηνία ή έναν αριθμό δευτερολέπτων για αναμονή.

Περιεχόμενο-Κωδικοποίηση

Ένας από τους καλύτερους τρόπους βελτίωσης της ταχύτητας ενός ιστότοπου είναι η συμπίεση των αρχείων του ιστότοπου. Ωστόσο, ένα πρόγραμμα περιήγησης ή ένα ρομπότ θα χρειαστεί να αποσυμπιέσει (ή να αποκωδικοποιήσει) αυτά τα συμπιεσμένα αρχεία για να διαβάσει σωστά το αρχείο. Ως αποτέλεσμα, ο διακομιστής πρέπει να ενημερώνει τα προγράμματα περιήγησης ή τα ρομπότ που ζητούν αρχεία πώς αυτά τα αρχεία έχουν συμπιεστεί (ή κωδικοποιηθεί). Αυτό γίνεται με την Κεφαλίδα HTTP με κωδικοποίηση περιεχομένου. Δύο από τις πιο κοινές μεθόδους κωδικοποίησης είναι το Gzip (που αντιπροσωπεύεται ως gzip ή x-gzip) και το Brotli (αντιπροσωπεύεται ως br).

Σχετική με το Content-Encoding είναι η κεφαλίδα Transfer-Encoding. Μερικές φορές θα δείτε την κεφαλίδα Transfer-Encoding στο Google Search Console. Η κεφαλίδα Transfer-Encoding υποδεικνύει επίσης ποια κωδικοποίηση έχει χρησιμοποιήσει ο διακομιστής, αλλά η Transfer-Encoding είναι hop-by-hop, που σημαίνει ότι υποδεικνύει την κωδικοποίηση που χρησιμοποιείται σε κάθε βήμα (ή μετάβαση) της σύνδεσης. Το Content-Encoding είναι από άκρο σε άκρο, που σημαίνει ότι υποδεικνύει την κωδικοποίηση που χρησιμοποιείται σε ολόκληρη τη σύνδεση.

Cache-Control (και λήγει)

Η κεφαλίδα Cache-Control καθορίζει τον τρόπο ή εάν ο πόρος πρέπει να αποθηκευτεί προσωρινά. Η προσωρινή αποθήκευση ενός αρχείου βοηθά στη μείωση του χρόνου φόρτωσης του ιστότοπου, βοηθώντας τον ιστότοπο να φορτώνει πιο γρήγορα.

Υπάρχουν με πολλούς τρόπους μπορεί να οριστεί αυτή η κεφαλίδα. Εάν ένα αρχείο δεν πρέπει να αποθηκευτεί καθόλου προσωρινά, η κεφαλίδα Cache-Control μπορεί να ρυθμιστεί σε χωρίς κατάστημα. Η κεφαλίδα Cache-Control μπορεί επίσης να ρυθμιστεί σε χωρίς κρυφή μνήμητο οποίο επιτρέπει την προσωρινή αποθήκευση, αλλά μόνο εάν το πρόγραμμα περιήγησης ελέγχει πρώτα για ενημερώσεις πριν χρησιμοποιήσει το αποθηκευμένο αρχείο.

Εάν το αρχείο είναι αποθηκευμένο στην κρυφή μνήμη, είναι σημαντικό να πείτε στο πρόγραμμα περιήγησης για πόσο χρόνο πρέπει να αποθηκευτεί ο πόρος. Αυτό γίνεται με τον ορισμό μέγιστη ηλικία στην κεφαλίδα Cache-Control. Για παράδειγμα, το αρχείο γραμματοσειράς που φαίνεται στην παρακάτω εικόνα αποθηκεύεται προσωρινά με α μέγιστη ηλικία 31.536.000 δευτερολέπτων (ένα έτος). Αυτό λέει στα προγράμματα περιήγησης ότι το αρχείο γραμματοσειράς μπορεί να διατηρηθεί στην κρυφή μνήμη και να μην ζητηθεί εκ νέου από τον διακομιστή, για έως και ένα έτος. Είναι σημαντικό ότι η Google το έχει υποδείξει Το Googlebot δεν χρησιμοποιεί αυτήν την κεφαλίδα.

Παράδειγμα κεφαλίδας HTTP Cache-Control
Παράδειγμα κεφαλίδας HTTP Cache-Control

Η κεφαλίδα Cache-Control ορίστηκε στο HTTP/1.1. Προηγουμένως, ο χρονισμός της προσωρινής μνήμης οριζόταν στην κεφαλίδα Expires. Η κεφαλίδα Expires καθόριζε την ημερομηνία μετά την οποία το πρόγραμμα περιήγησης πρέπει να θεωρήσει ότι το αρχείο έχει λήξει. Αυτό επέτρεψε στα προγράμματα περιήγησης να αποθηκεύουν προσωρινά το αρχείο μέχρι εκείνη την ημερομηνία. Στο παραπάνω στιγμιότυπο οθόνης, η κεφαλίδα Expires ορίζεται σε ένα έτος από την ημερομηνία που φορτώθηκε για πρώτη φορά ο πόρος (που αντιστοιχεί στην προδιαγραφή μέγιστης ηλικίας). Εάν έχει οριστεί μια κεφαλίδα Cache-Control, τότε η κεφαλίδα Expires θα αγνοηθεί, αλλά μπορεί να είναι χρήσιμο να καθορίσετε την κεφαλίδα Expires, καθώς τα παλαιότερα προγράμματα περιήγησης ενδέχεται να μην υποστηρίζουν πλήρως την κεφαλίδα Cache-Control.

Τύπος περιεχομένου

Η Κεφαλίδα HTTP Τύπου περιεχομένου ενημερώνει τα προγράμματα περιήγησης και τα ρομπότ ποιος τύπος αρχείου παραδίδεται. Από αυτές τις πληροφορίες τα ρομπότ και τα προγράμματα περιήγησης γνωρίζουν εάν ένα συγκεκριμένο αρχείο είναι μια εικόνα, ένα έγγραφο HTML, ένα αρχείο JavaScript, ένα αρχείο CSS ή ένα βίντεο. Το παρακάτω στιγμιότυπο οθόνης δείχνει τις κεφαλίδες HTTP για τις εικόνες λογότυπου στο MatthewEdgar.net, το οποίο χρησιμοποιεί έναν τύπο αρχείου εικόνας WebP και στο Elementive.com, που χρησιμοποιεί έναν τύπο αρχείου εικόνας PNG. Τα αρχεία CSS θα εμφανίζουν „text/css“ και το JavaScript θα εμφανίζει „application/javascript“.

Κεφαλίδες HTTP για εικόνες που δείχνουν διαφορετικούς τύπους περιεχομένου
Κεφαλίδες HTTP για δύο εικόνες που εμφανίζουν διαφορετικούς τύπους περιεχομένου (WebP και PNG)

Περιεχόμενο-Γλώσσα

Όταν ζητάτε μια σελίδα, τα προγράμματα περιήγησης ή τα ρομπότ μπορούν προαιρετικά να στείλουν μια κεφαλίδα αιτήματος Accept-Language. Οι διακομιστές μπορούν στη συνέχεια να απαντήσουν με την κεφαλίδα Content-Language που υποδεικνύει την επιλεγμένη γλώσσα. Ενώ τα περισσότερα προγράμματα περιήγησης υποστηρίζουν αυτήν την κεφαλίδα, το Googlebot δεν ανιχνεύεται με κεφαλίδες αποδοχής γλώσσας. Για λόγους SEO, θα πρέπει να προσδιορίζονται διαφορετικές γλώσσες σελίδας ετικέτες hreflang. Ωστόσο, είναι βέλτιστη πρακτική να ορίζεται η κεφαλίδα Content-Language, εάν χρησιμοποιείται, στην κατάλληλη γλώσσα για κάθε σελίδα για να αποφευχθεί οποιαδήποτε σύγχυση σχετικά με το περιεχόμενο που περιέχεται στη σελίδα.

Τελικές σκέψεις

Είναι σημαντικό να ελέγξετε ποιες κεφαλίδες HTTP επιστρέφονται στον ιστότοπό σας και να κατανοήσετε τι επικοινωνούν αυτές οι κεφαλίδες HTTP σχετικά με τις σελίδες του ιστότοπού σας σε προγράμματα περιήγησης και bots. Εάν χρειάζεστε βοήθεια για τον έλεγχο των κεφαλίδων HTTP στον ιστότοπό σας ή χρειάζεστε βοήθεια με άλλα τεχνικά ζητήματα SEO, επικοινωνήστε μαζί μου.

Schreibe einen Kommentar