ERR_HTTP2_PROTOCOL_ERROR: Τι Σημαίνει και Πώς Διορθώνεται
Η σύνδεση HTTP/2 κόπηκε στη μέση: σφάλμα ή timeout της εφαρμογής, γεμάτος δίσκος, μη έγκυρα headers, CDN/proxy. Πώς το εντοπίζεις, και τι είναι το ERR_QUIC_PROTOCOL_ERROR (HTTP/3).
Σε αυτή τη σελίδα
ERR_HTTP2_PROTOCOL_ERROR: Τι σημαίνει
Το HTTP/2 είναι ο σύγχρονος τρόπος με τον οποίο browser και server ανταλλάσσουν σελίδες μέσω https: πολλά αρχεία ταξιδεύουν μαζί, το καθένα στο δικό του «κανάλι» (stream), μέσα στην ίδια σύνδεση. Οι κανόνες του είναι αυστηροί. Αν ένα κανάλι κλείσει απότομα πριν τελειώσει η απάντηση ή φτάσει κάτι που οι κανόνες δεν επιτρέπουν, ο Chrome σταματά με ERR_
Σκέψου ένα δέμα που φτάνει μισό ή με λάθος ετικέτα: ο browser δεν το δέχεται. Το σφάλμα μπορεί να αφορά ολόκληρη τη σελίδα ή μόνο ένα αρχείο της. Στη δεύτερη περίπτωση η σελίδα ανοίγει «μισή» (χωρίς εικόνες, εμφάνιση ή κάποια λειτουργία) και ο κωδικός net::ERR_ φαίνεται μόνο στην κονσόλα του browser (F12).
Πώς εμφανίζεται σε Chrome, Edge, Firefox και Safari
| Browser | Τι γράφει η σελίδα | Κωδικός |
|---|---|---|
| Chrome | Αν χαλάσει όλη η σελίδα: «Δεν είναι δυνατή η πρόσβαση σε αυτόν τον ιστότοπο» με το γενικό μήνυμα «Η ιστοσελίδα στη διεύθυνση X μπορεί να βρίσκεται προσωρινά εκτός λειτουργίας ή ίσως έχει μεταφερθεί μόνιμα σε νέα διεύθυνση ιστού.» Αν χαλάσει ένα αρχείο: μισή σελίδα, με τον κωδικό στην κονσόλα (F12). | ERR_ (HTTP/2) ή ERR_ (HTTP/3) |
| Edge | Ίδιοι κωδικοί με τον Chrome (το Edge βασίζεται στο Chromium), με δική του διατύπωση στη σελίδα | ERR_ |
| Firefox | Δεν έχει ακριβές αντίστοιχο. Συνήθως βλέπεις «Σφάλμα πρωτοκόλλου δικτύου», «Η σύνδεση διακόπηκε» ή απλώς μισοφορτωμένη σελίδα. | — |
| Safari | Δεν δείχνει αντίστοιχο κωδικό· συνήθως η σελίδα δεν ανοίγει ή ανοίγει μισή. | — |
Αν είσαι επισκέπτης
- Ανανέωσε τη σελίδα, και με Ctrl+F5 (Cmd+Shift+R σε Mac) για να παρακάμψεις την cache. Αν ήταν στιγμιαίο πρόβλημα του server, μπορεί να περάσει.
- Δοκίμασε ιδιωτικό παράθυρο. Αν εκεί ανοίγει, φταίει μια επέκταση (ad blocker, επέκταση VPN) ή παλιά cache και cookies. Απενεργοποίησε τις επεκτάσεις μία μία και καθάρισε cache και cookies για το site.
- Απενεργοποίησε προσωρινά τη «σάρωση HTTPS» του antivirus. Ορισμένα antivirus «ανοίγουν» την κίνηση https για έλεγχο και μπορεί να χαλάσουν τη σύνδεση HTTP/2.
- Δοκίμασε άλλο browser ή άλλο δίκτυο (π.χ. δεδομένα κινητού). Αν βγαίνει παντού, φταίει το site: στείλε στον ιδιοκτήτη τη διεύθυνση της σελίδας και την ώρα που το είδες.
Αν είσαι ο ιδιοκτήτης: οι συνηθισμένες αιτίες
- Η εφαρμογή «σκάει» ή αργεί στη μέση της απάντησης. Ένα fatal error της PHP, το όριο χρόνου (
max_execution_time) ή εξάντληση μνήμης, αφού έχουν ήδη σταλεί τα πρώτα bytes, κόβει την απάντηση. Στο HTTP/1.1 αυτό συχνά περνά ως απλώς μισή σελίδα· στο HTTP/2 ο Chrome το δείχνει ως σφάλμα. - Γεμάτος δίσκος ή φάκελος προσωρινών αρχείων. Ο web server ή ο proxy γράφει μεγάλες απαντήσεις προσωρινά στον δίσκο· αν δεν χωρούν, η απάντηση κόβεται. Έλεγξε τον ελεύθερο χώρο και τα inodes.
- Όρια buffer ή timeouts σε proxy ή CDN. Ένας reverse proxy ή CDN μπροστά από τον server μπορεί να κόβει απαντήσεις που αργούν ή είναι πολύ μεγάλες. Σύγκρινε τα όριά του με τον χρόνο και το μέγεθος της σελίδας.
- Headers που το HTTP/2 δεν δέχεται. Headers που αφορούν μόνο το HTTP/1.1, όπως
Connection,UpgradeήTransfer-Encoding, δεν επιτρέπονται στο HTTP/2. Το ίδιο ισχύει για υπερβολικά μεγάλα headers ή cookies και για τιμές με μη έγκυρους χαρακτήρες (π.χ. αλλαγή γραμμής). Συνήθως τα προσθέτει η εφαρμογή ή κάποιο plugin. - Λάθος Content-Length ή διπλή συμπίεση. Αν η εφαρμογή δηλώνει
Content-Lengthπου δεν ταιριάζει με όσα στέλνει (συχνά όταν συμπιέζουν και η εφαρμογή και ο server), ο browser απορρίπτει την απάντηση. Κράτα τη συμπίεση σε ένα μόνο σημείο. - WAF ή ModSecurity που διακόπτει την απάντηση. Ένα firewall εφαρμογών μπορεί να κόψει τη σύνδεση στη μέση αντί να στείλει καθαρή σελίδα σφάλματος. Δες τα logs του για την ίδια ώρα.
Πώς το εντοπίζεις
- Κοίτα τα logs την ακριβή ώρα. Σημείωσε τη διεύθυνση και την ώρα του σφάλματος και άνοιξε το error log του server και της εφαρμογής για εκείνο το λεπτό.
- Σύγκρινε HTTP/2 με HTTP/1.1. Από τερματικό τρέξε
curl -sv --http2 -o /dev/null https://etairia.gr/και μετάcurl -sv --http1.1 -o /dev/null https://etairia.gr/, με τη διεύθυνση της σελίδας που χαλάει (στα Windows γράψεNULαντί για/dev/null). Αν το HTTP/2 αποτυγχάνει (π.χ. «HTTP/2 stream 1 was not closed cleanly») ενώ το HTTP/1.1 ολοκληρώνεται, ψάξε σε headers, proxy και όρια μεγέθους. Αν κόβονται και τα δύο, το πρόβλημα είναι στην εφαρμογή. - Παράκαμψε το CDN. Αν υπάρχει CDN, δοκίμασε προσωρινά απευθείας τον server για να δεις αν το σφάλμα έρχεται από εκεί.
ERR_QUIC_PROTOCOL_ERROR: το ίδιο στο HTTP/3
Το HTTP/3 είναι η νεότερη έκδοση: αντί για TCP χρησιμοποιεί το QUIC, πάνω από UDP στη θύρα 443. Ένα site το «διαφημίζει» με το header Alt-Svc ή με εγγραφή DNS τύπου HTTPS, και ο browser το δοκιμάζει. Κανονικά, αν το UDP είναι κλειστό, ο browser γυρίζει μόνος του στο HTTP/2. Το ERR_
- Επισκέπτης: δοκίμασε άλλο δίκτυο. Αν βγαίνει μόνο στο δίκτυο της δουλειάς, ενημέρωσε τον διαχειριστή του. Ως προσωρινή λύση στον Chrome, άνοιξε
chrome://flags/#enable-quic, βάλε το «Experimental QUIC protocol» σε Disabled και κάνε επανεκκίνηση του browser· θα χρησιμοποιεί HTTP/2. - Ιδιοκτήτης: αν διαφημίζεις HTTP/3, βεβαιώσου ότι η θύρα UDP 443 είναι ανοιχτή στο firewall του server. Αν δεν μπορείς να το υποστηρίξεις σωστά, σταμάτα να το διαφημίζεις (αφαίρεσε το Alt-Svc και το h3 από την εγγραφή DNS HTTPS ή κλείσε την επιλογή HTTP/3 στο CDN). Το site θα λειτουργεί κανονικά με HTTP/2.
Δες ποια «στρώματα» έχει μπροστά το site σου
Το Έλεγχος Security Headers δείχνει ποια έκδοση HTTP διαπραγματεύεται ο server (π.χ. HTTP/2), αν διαφημίζει HTTP/3 (μέσω Alt-Svc ή εγγραφής DNS HTTPS), ποια CDN, proxy ή cache βρίσκονται μπροστά του (Cloudflare, LiteSpeed, Varnish κ.ά.) και όλα τα headers της απάντησης, ώστε να βρεις ποιο στρώμα ευθύνεται. Το Έλεγχος Uptime δείχνει αν η διεύθυνση απαντά από έξω και με ποιον κωδικό.
→ Έλεγχος Security Headers → Έλεγχος UptimeΠερισσότερα: σφάλματα 5xx, ERR_
Συνηθισμένα λάθη
- Να κλείνεις το HTTP/2 στον server ως «λύση»: συνήθως κρύβει το πραγματικό πρόβλημα (κομμένη απάντηση), που θα συνεχίσει να χαλάει σελίδες.
- Να ψάχνεις μόνο στον browser σου, ενώ το σφάλμα βγαίνει σε όλους τους επισκέπτες.
- Να μην κοιτάς τα logs την ακριβή ώρα του σφάλματος.
- Να ξεχνάς ότι υπάρχει CDN ή proxy στη μέση: το σφάλμα μπορεί να προέρχεται από εκεί και όχι από τον server σου.