Το HTTP/3.0 έλαβε την προτεινόμενη τυπική κατάσταση

Η IETF (Internet Engineering Task Force), η οποία είναι υπεύθυνη για την ανάπτυξη πρωτοκόλλων και αρχιτεκτονικής Διαδικτύου, ολοκλήρωσε τη δημιουργία ενός RFC για το πρωτόκολλο HTTP/3.0 και δημοσίευσε σχετικές προδιαγραφές με τα αναγνωριστικά RFC 9114 (πρωτόκολλο) και RFC 9204 ( Τεχνολογία συμπίεσης κεφαλίδας QPACK για HTTP/3) . Η προδιαγραφή HTTP/3.0 έχει λάβει την κατάσταση ενός "Προτεινόμενου Προτύπου", μετά από το οποίο θα αρχίσουν οι εργασίες για να δοθεί στο RFC η κατάσταση ενός σχεδίου προτύπου (Draft Standard), που στην πραγματικότητα σημαίνει πλήρη σταθεροποίηση του πρωτοκόλλου και λαμβάνοντας υπόψη όλα τα τα σχόλια που έγιναν. Ταυτόχρονα, δημοσιεύθηκαν ενημερωμένες εκδόσεις των προδιαγραφών για τα πρωτόκολλα HTTP/1.1 (RFC 9112) και HTTP/2.0 (RFC 9113), καθώς και έγγραφα που καθορίζουν τη σημασιολογία των αιτημάτων HTTP (RFC 9110) και κεφαλίδες ελέγχου προσωρινής αποθήκευσης HTTP (RFC 9111).

Το πρωτόκολλο HTTP/3 ορίζει τη χρήση του πρωτοκόλλου QUIC (Quick UDP Internet Connections) ως μεταφορά για το HTTP/2. Το QUIC είναι μια επέκταση του πρωτοκόλλου UDP που υποστηρίζει πολυπλεξία πολλαπλών συνδέσεων και παρέχει μεθόδους κρυπτογράφησης ισοδύναμες με TLS/SSL. Το πρωτόκολλο δημιουργήθηκε το 2013 από την Google ως εναλλακτική λύση του συνδυασμού TCP+TLS για τον Ιστό, επιλύοντας προβλήματα με μεγάλες ρυθμίσεις σύνδεσης και χρόνους διαπραγμάτευσης στο TCP και εξαλείφοντας τις καθυστερήσεις όταν χάνονται πακέτα κατά τη μεταφορά δεδομένων.

Το HTTP/3.0 έλαβε την προτεινόμενη τυπική κατάσταση

Επί του παρόντος, η υποστήριξη QUIC και HTTP/3.0 εφαρμόζεται ήδη σε όλα τα δημοφιλή προγράμματα περιήγησης ιστού (στο Chrome, το Firefox και το Edge, η υποστήριξη HTTP/3 είναι ενεργοποιημένη από προεπιλογή και στο Safari απαιτεί τη ρύθμιση "Advanced > Experimental Features > HTTP/3" να ενεργοποιηθεί). Από την πλευρά του διακομιστή, οι υλοποιήσεις HTTP/3 είναι διαθέσιμες για nginx (σε ξεχωριστό κλάδο και με τη μορφή ξεχωριστής ενότητας), Caddy, IIS και LiteSpeed. Η υποστήριξη HTTP/3 παρέχεται επίσης από το δίκτυο παράδοσης περιεχομένου Cloudflare.

Βασικά χαρακτηριστικά του QUIC:

  • Υψηλή ασφάλεια παρόμοια με το TLS (ουσιαστικά το QUIC παρέχει τη δυνατότητα χρήσης TLS μέσω UDP).
  • Έλεγχος ακεραιότητας ροής, αποτροπή απώλειας πακέτων.
  • Δυνατότητα άμεσης δημιουργίας σύνδεσης (0-RTT, περίπου στο 75% των περιπτώσεων τα δεδομένα μπορούν να μεταδοθούν αμέσως μετά την αποστολή του πακέτου ρύθμισης σύνδεσης) και να παρέχει ελάχιστες καθυστερήσεις μεταξύ της αποστολής ενός αιτήματος και της λήψης απάντησης (RTT, Round Trip Time).
    Το HTTP/3.0 έλαβε την προτεινόμενη τυπική κατάσταση
  • Χρήση διαφορετικού αριθμού σειράς κατά την αναμετάδοση ενός πακέτου, που αποφεύγει την ασάφεια στον εντοπισμό των ληφθέντων πακέτων και απαλλαγεί από τα χρονικά όρια.
  • Η απώλεια ενός πακέτου επηρεάζει μόνο την παράδοση της ροής που σχετίζεται με αυτό και δεν σταματά την παράδοση δεδομένων σε παράλληλες ροές που μεταδίδονται μέσω της τρέχουσας σύνδεσης.
  • Λειτουργίες διόρθωσης σφαλμάτων που ελαχιστοποιούν τις καθυστερήσεις λόγω αναμετάδοσης χαμένων πακέτων. Χρήση ειδικών κωδικών διόρθωσης σφαλμάτων σε επίπεδο πακέτου για τη μείωση καταστάσεων που απαιτούν αναμετάδοση χαμένων δεδομένων πακέτων.
  • Τα κρυπτογραφικά όρια μπλοκ ευθυγραμμίζονται με τα όρια πακέτων QUIC, γεγονός που μειώνει τον αντίκτυπο των απωλειών πακέτων στην αποκωδικοποίηση των περιεχομένων των επόμενων πακέτων.
  • Κανένα πρόβλημα με τον αποκλεισμό ουράς TCP.
  • Υποστήριξη για το αναγνωριστικό σύνδεσης, το οποίο μειώνει τον χρόνο που απαιτείται για τη δημιουργία μιας επανασύνδεσης για πελάτες κινητής τηλεφωνίας.
  • Δυνατότητα σύνδεσης προηγμένων μηχανισμών ελέγχου συμφόρησης σύνδεσης.
  • Χρησιμοποιεί τεχνικές πρόβλεψης απόδοσης ανά κατεύθυνση για να διασφαλίσει ότι τα πακέτα αποστέλλονται με βέλτιστους ρυθμούς, αποτρέποντας τη συμφόρηση και την απώλεια πακέτων.
  • Σημαντική αύξηση απόδοσης και απόδοσης σε σύγκριση με το TCP. Για υπηρεσίες βίντεο όπως το YouTube, έχει αποδειχθεί ότι το QUIC μειώνει τις λειτουργίες επαναφοράς στην προσωρινή μνήμη κατά την παρακολούθηση βίντεο κατά 30%.

Μεταξύ των αλλαγών στην προδιαγραφή HTTP/1.1, μπορεί κανείς να σημειώσει την απαγόρευση της μεμονωμένης χρήσης του χαρακτήρα επιστροφής μεταφοράς (CR) εκτός του αμαξώματος με περιεχόμενο, π.χ. Στα στοιχεία πρωτοκόλλου, ο χαρακτήρας CR μπορεί να χρησιμοποιηθεί μόνο σε συνδυασμό με τον χαρακτήρα τροφοδοσίας γραμμής (CRLF). Ο αλγόριθμος διάταξης τμηματικών αιτημάτων έχει βελτιωθεί για να απλοποιήσει τον διαχωρισμό των συνημμένων πεδίων και τμημάτων με κεφαλίδες. Προστέθηκαν συστάσεις για το χειρισμό διφορούμενου περιεχομένου για τον αποκλεισμό επιθέσεων "HTTP Request Smuggling", οι οποίες μας επιτρέπουν να εμβαθύνουμε στο περιεχόμενο των αιτημάτων άλλων χρηστών στη ροή μεταξύ του frontend και του backend.

Η ενημέρωση προδιαγραφών HTTP/2.0 ορίζει ρητά την υποστήριξη για το TLS 1.3. Καταργήθηκε ο συνδυασμός προτεραιοτήτων και τα σχετικά πεδία κεφαλίδας. Ο μη χρησιμοποιημένος μηχανισμός για την ενημέρωση της σύνδεσης με HTTP/1.1 έχει κηρυχθεί απαρχαιωμένος. Μειωμένες απαιτήσεις για έλεγχο ονομάτων και τιμών πεδίων. Προτείνονται για χρήση ορισμένοι τύποι πλαισίων και παράμετροι που είχαν δεσμευτεί προηγουμένως. Τα απαγορευμένα πεδία κεφαλίδας που σχετίζονται με τη σύνδεση ορίζονται με μεγαλύτερη ακρίβεια.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο