HTTP / 2 είναι ένας νέος τρόπος καθιστώντας τον ιστότοπό σας πολύ πιο γρήγορο εξαλείφοντας πολλές αναποτελεσματικότητες που σχετίζονται με την τρέχουσα έκδοση του HTTP. Το μεγαλύτερο πράγμα γι 'αυτό; Δεν χρειάζεται να καταβάλλετε πολλές προσπάθειες για να το ξεκινήσετε.

Ή μήπως;

Τι είναι το HTTP / 2;

Όταν αναπτύχθηκαν αρχικά HTTP1 και HTTP1.1, ο ιστός ήταν πολύ διαφορετικός από αυτόν που είναι σήμερα. Οι ιστότοποι είχαν λιγότερους πόρους (αρχεία JavaScript, αρχεία CSS, εικόνες) από σήμερα. Οι συνδέσεις στο διαδίκτυο δεν ήταν πολύ γρήγορες και οι χρήστες δεν ήταν πολύ επιλεκτικοί με την ταχύτητα φόρτωσης του ιστότοπου.

Οι χρήστες αρχίζουν να παίρνουν κνησμώδη δάχτυλα όταν ένας ιστότοπος διαρκεί περισσότερο από 3 δευτερόλεπτα για να δείξει μια απάντηση.

Ήταν χαρούμενος που ένας ιστότοπος φόρτωσε την πλήρη στάση. Μπορεί να έχετε παραπλανηθεί κρυφά ότι η φόρτωση ήταν αργή. Αλλά δεν θα μπορούσατε πραγματικά να κάνετε πολλά γι 'αυτό. Αυτό οφείλεται στο γεγονός ότι ο αργός χρόνος φόρτωσης προέρχεται συνήθως από παράγοντες ανεξάρτητους από τον εξυπηρετητή ιστού και την τεχνολογία που χρησιμοποιούσατε. Κατά κύριο λόγο ήταν η πραγματική σύνδεση στο διαδίκτυο που αποτελούσε τον βασικό περιοριστικό παράγοντα.

Γρήγορη κίνηση προς τα εμπρός μέχρι σήμερα. Μεγάλη ώρα φόρτωσης ιστότοπων μετράται σε χιλιοστά του δευτερολέπτου αντί για δευτερόλεπτα. Οι χρήστες αρχίζουν να παίρνουν κνησμώδη δάχτυλα όταν ένας ιστότοπος διαρκεί περισσότερο από 3 δευτερόλεπτα για να δείξει μια απάντηση. Σε μια τέτοια κατάσταση, οι αναποτελεσματικότητες που υπολογίζονται σε χιλιοστά του δευτερολέπτου που σχετίζονται με τις αρχικές εκδόσεις του HTTP αρχίζουν να κάνουν μια πραγματική διαφορά. Γι 'αυτό έχετε συζητήσει πολλά άρθρα πώς να κάνετε τον ιστοχώρο σας γρηγορότερο . Επειδή τα χιλιοστά του δευτερολέπτου έχουν σημασία.

Η νέα έκδοση του HTTP, γνωστή ως HTTP / 2 αντιμετωπίζει συγκεκριμένα γνωστά προβλήματα του HTTP. Σκοπός του είναι να αντιμετωπίσει μια σειρά προβλημάτων που έχουν γίνει πιο έντονα, καθώς ο ιστός έχει εξελιχθεί σε μεγαλύτερους και μεγαλύτερους ιστότοπους με πολλά ακόμη CSS, JS και αρχεία εικόνας από ό, τι είχε αρχικά προβλεφθεί.

Αλλά τι είναι λάθος με το HTTP1.x και γιατί ξοδεύουμε τόσο μεγάλη προσπάθεια ώστε να γίνει πιο γρήγορος;

Τα προβλήματα του HTTP1.x

Το HTTP1.x έχει πολλά εγγενή προβλήματα. Στην πραγματικότητα, ας αποφύγουμε να τους αποκαλούμε προβλήματα. Το HTTP1.x έχει πολλούς τρόπους με τους οποίους μπορεί να είναι αποτελεσματικότερο.

  1. Το HTTP 1.x βασίζεται στο κείμενο: αρχικά η ιδέα ήταν ότι το HTTP1.x θα πρέπει να είναι αναγνώσιμο από άνθρωπο, ώστε να βασίζεται πλήρως στο κείμενο. Εξ ορισμού, όλα τα πρωτόκολλα που βασίζονται σε κείμενο έχουν σχετικές αναποτελεσματικότητες, όπως το κενό διάστημα, τα διαλείμματα συνδέσεων, η χρήση κεφαλαίων κ.λπ.
  2. Μόνο ένα αρχείο βρίσκεται σε μεταφορά ανά πάσα στιγμή: αυτό είναι ένα από τα μεγαλύτερα προβλήματα με τις εκδόσεις 1.x του HTTP. Απλώς φανταστείτε ότι είστε παραδότης ο οποίος μπορεί να παραδώσει μόνο ένα πακέτο τη φορά. Πρέπει να επιστρέψουν στη βάση κάθε φορά που χρειάζονται για να παραδώσουν την επόμενη συσκευασία.
  3. Απαιτούνται εκατοντάδες αιτημάτων για τους σημερινούς ιστοτόπους: τα πιο εξελιγμένα θέματα σημαίνουν ότι το μέγεθος των ιστότοπων και ο αριθμός των πόρων αυξάνεται. Και ο χρόνος που χρειάζεται για να φορτώσετε κάθε πόρο. Θυμηθείτε ότι ο "παραλήπτης" μας πρέπει να επιστρέφει στη βάση κάθε φορά, δεν είναι σε θέση να μεταφέρει περισσότερα από ένα αρχεία κάθε φορά.
  4. Κάθε σύνδεση είναι μια βαριά τεχνική λειτουργία: Δεδομένου ότι απαιτούνται εκατοντάδες συνδέσεις, αρχίζει να συσσωρεύεται σοβαρή επιβάρυνση. Με τον χρόνο φόρτωσης που μετράται σε χιλιοστά του δευτερολέπτου, ο συνδυασμένος χρόνος που απαιτείται για τη δημιουργία σύνδεσης για εκατοντάδες πόρους αρχίζει να γίνεται πολύ σημαντικός.

Πολλές φορές σχεδιαστές ιστοσελίδων έπρεπε να εφαρμόσουν συγκεκριμένα μέτρα για τη μείωση αυτών των αναποτελεσματικών. Οι εναλλακτικές λύσεις όπως τα CSS sprites, minification και ο συνδυασμός αρχείων αποσκοπούν στην αντιμετώπιση προβλημάτων με τη φόρτωση ιστότοπων.

Αυτές είναι - κατ 'ουσίαν - λύσεις και όχι διορθώσεις.

Πώς HTTP / 2 λύνει τα προβλήματα του HTTP1.x

HTTP / 2 έχει σχεδιαστεί και εξελίχθηκε από SPDY , ένα πρωτόκολλο σχεδιασμένο σε Google με στόχο την ταχύτερη δημιουργία του ιστού. Απευθύνει προβλήματα HTTP με τον ακόλουθο τρόπο

  1. Το HTTP / 2 προορίζεται για κατανάλωση από μηχανές (το πρόγραμμα περιήγησης ιστού και τον διακομιστή ιστού του ιστότοπού σας) και όχι από τον άνθρωπο. Είναι δυαδικό και όχι βασισμένο σε κείμενο, καθιστώντας το εγγενώς πιο αποτελεσματικό. Η μεταφορά και η ανάλυση των δεδομένων είναι ταχύτερη με τη χρήση δυαδικών πρωτοκόλλων.
  2. Πολλά αρχεία μπορούν να μεταφερθούν ταυτόχρονα στην ίδια σύνδεση . Οι διορθώσεις εφαρμόστηκαν έτσι ώστε να μπορείτε να διοχετεύσετε πόρους στην ίδια σύνδεση. Αντί να χρειάζεται να ανοίγουμε μια νέα σύνδεση κάθε φορά (ο προμηθευτής μας επιστρέφει στη βάση), όλοι οι πόροι μπορούν να μεταφερθούν στην ίδια σύνδεση (ο προμηθευτής μας βάζει τα πάντα σε ένα φορτηγό και παίρνει τα πάντα σε ένα ταξίδι).
  3. Ο διακομιστής σπρώχνει για να στείλει αρχεία που θα απαιτούνται από το πρόγραμμα περιήγησης. Στο HTTP1.x είναι το πρόγραμμα περιήγησης στο Web που ζητάει από τον διακομιστή web για τους πόρους που απαιτεί. Το HTTP Server Push (που εφαρμόζεται ως μέρος του HTTP / 2) επιτρέπει στον διακομιστή να ξεκινήσει την αποστολή πόρων που γνωρίζει ότι το πρόγραμμα περιήγησης θα χρειαστεί. Για παράδειγμα, μπορείτε να δώσετε εντολή στον διακομιστή να μην περιμένει το πρόγραμμα περιήγησης να ζητά τα αρχεία CSS, JS και άλλα αρχεία που το πρόγραμμα περιήγησης θα χρειαστεί ούτως ή άλλως.
  4. HTTP πακέτο Header και άλλες βελτιστοποιήσεις - πρόκειται για τεχνικές βελτιώσεις που έχουν σχεδιαστεί για να βελτιώσουν την πραγματική απόδοση των μεταφορών

Τι απαιτείται για να ενεργοποιήσετε το HTTP2;

Μη υποστηρίζοντας το HTTP / 2 μέσω μη κρυπτογραφημένων συνδέσεων, οι ιδιοκτήτες ιστότοπων είναι ισχυρά οπλισμένοι να εφαρμόζουν HTTP για την ιστοσελίδα τους.

Πίσω στην αρχή του άρθρου είπαμε ότι από το τέλος σας δεν απαιτείται μεγάλη προσπάθεια για την ενεργοποίηση του HTTP / 2. Η ενεργοποίηση του HTTP / 2 είναι κάτι που πρέπει να γίνει σε επίπεδο διακομιστή ιστού. Οι περισσότεροι διακομιστές ιστού, όπως Apache, Nginx, IIS και άλλοι σημαντικοί διακομιστές ιστού, έχουν ήδη υποστήριξη για το HTTP / 2.

Αν τρέχετε τον δικό σας διακομιστή ιστού, απλά πρέπει να εγκαταστήσετε και να ενεργοποιήσετε τις βιβλιοθήκες HTTP / 2. Αν ο ιστότοπός σας φιλοξενείται με μια εταιρεία φιλοξενίας, ελέγξτε με την εταιρεία αν ο διακομιστής ιστού είναι ήδη ενεργοποιημένος για HTTP / 2.

Το πιάσιμο? Ασφαλή Πιστοποιητικά

Ίσως τα πράγματα ήταν πολύ καλά για να είναι αλήθεια. Μόλις συζητήσαμε πώς οι διακομιστές ιστού υποστηρίζουν ήδη πλήρως το HTTP / 2.

Τα περισσότερα μεγάλα προγράμματα περιήγησης ιστού υποστηρίζουν επίσης πλήρως το HTTP / 2. Ωστόσο, έχουν επιλέξει να υποστηρίζουν μόνο το HTTP / 2 σε κρυπτογραφημένη λειτουργία. Ο λόγος για αυτό είναι ότι υπήρξε μια ισχυρή κίνηση για την ενεργοποίηση του HTTPS (κρυπτογράφηση) σε όλο τον ιστό. Τέτοιες πρωτοβουλίες όπως HTTPS Παντού πιέστε έντονα την ανάγκη για HTTPS σε όλους τους ιστότοπους.

Μη υποστηρίζοντας το HTTP / 2 μέσω μη κρυπτογραφημένων συνδέσεων, οι ιδιοκτήτες ιστότοπων είναι ισχυρά οπλισμένοι να εφαρμόζουν HTTP για την ιστοσελίδα τους.

Φυσικά αυτό δεν είναι αναγκαστικά κακό. Η εφαρμογή του HTTPS έχει σημαντικά πλεονεκτήματα ασφάλειας και προστασίας της ιδιωτικής ζωής. Με εταιρείες που συναντώνται για να σχηματίσουν μια Αρχή Πιστοποίησης που καλείται Ας κρυπτογραφήσουμε για να επιτρέπονται δωρεάν πιστοποιητικά ασφαλείας, το συνολικό κόστος για την απόκτηση πιστοποιητικού και την εφαρμογή του HTTPS γίνεται πολύ φθηνότερο. Αυτό ήταν σχετικά ακριβό μέχρι πριν από λίγο καιρό.

Η εφαρμογή του HTTPS δεν είναι κάτι που πρέπει να κάνετε χωρίς να του δώσετε την απαραίτητη σωστή σκέψη. Ίσως να θέλετε να το συζητήσετε με τον αξιόπιστο προγραμματιστή ιστοτόπου σας ή με κάποιον που διαθέτει αρκετή τεχνική εμπειρία. Τις περισσότερες φορές, η εταιρεία φιλοξενίας σας θα πρέπει να μπορεί να σας καθοδηγήσει σε αυτό.

Φυσικά, συνιστάται ιδιαίτερα να εφαρμόσετε το HTTPS. Εκτός από την πρόσθετη ασφάλεια, θα έχετε την δυνατότητα να ενεργοποιήσετε το HTTP / 2 και να κάνετε τον ιστότοπό σας γρηγορότερο. Αυτό καλούμε μια κατάσταση win-win.

Είναι ακόμα απαραίτητες άλλες τεχνικές βελτιστοποίησης;

Ναι και ΟΧΙ.

Ορισμένες βελτιστοποιήσεις που αποσκοπούν στη μείωση των αιτημάτων ιστού καθίστανται περιττές. Αν ο ιστότοπός σας έχει χρόνο υπολογισμού για να "συνδυάσει" το JS, το CSS και άλλα αρχεία, αυτό έχει πράγματι γίνει ένα γενικό κόστος. Οποιαδήποτε στιγμή «σπαταλάται» η αντιμετώπιση των παραπάνω αναποτελεσματικών δεν είναι πλέον απαραίτητη.

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

Το μεγάλο πράγμα για το HTTP / 2 είναι ότι όχι μόνο καθιστά το δικτυακό σας τόπο φορτίο γρηγορότερα, αλλά και σας πιέζει για να κάνετε τον ιστότοπό σας πιο ασφαλή. Δεν υπάρχει το επιχείρημα ότι υπάρχουν πλεονεκτήματα και για τα δύο. Το HTTP / 2 είναι το επόμενο βήμα για την ταχύτερη δημιουργία ολόκληρου του ιστού. Ας είναι όλοι μέρος του και να το κάνει να συμβεί.