Kiểm tra HTTP/3 và QUIC: đọc kết quả đúng cách và bật giao thức này ở đâu
Công cụ gửi một yêu cầu thử tới địa chỉ bạn nhập rồi đọc thông tin đo hiệu năng của chính trình duyệt để cho biết kết nối vừa rồi chạy trên HTTP/3, HTTP/2 hay HTTP/1.1. Kết quả hiển thị thành ba thẻ riêng kèm tên giao thức thật mà trình duyệt ghi nhận, phù hợp để kiểm tra nhanh khi bạn vừa bật QUIC trên máy chủ hoặc trên mạng phân phối nội dung.
Tính năng nổi bật
- Nhập tên miền không cần gõ phần giao thức, công cụ tự thêm https vào đầu
- Gửi một yêu cầu nhẹ chỉ lấy phần tiêu đề thay vì tải toàn bộ trang
- Đọc thẳng thông tin giao thức chặng kế tiếp từ số liệu đo hiệu năng của trình duyệt
- Ba thẻ kết quả riêng cho HTTP/3, HTTP/2 và HTTP/1.1, thẻ đang hoạt động được tô viền khác
- Hiển thị nguyên văn tên giao thức mà trình duyệt ghi nhận, ví dụ chuỗi bắt đầu bằng h3 hoặc h2
- Nhấn Enter ở ô nhập là chạy ngay, tiện khi cần thử liên tiếp nhiều tên miền
- Bỏ qua bộ nhớ đệm khi gửi yêu cầu nên kết quả phản ánh kết nối vừa thiết lập
- Chạy hoàn toàn trong trình duyệt, không gửi tên miền bạn nhập tới máy chủ trung gian nào
HTTP/3 giải quyết vấn đề gì mà HTTP/2 không giải quyết được
HTTP/2 đã cho phép nhiều yêu cầu chạy song song trên một kết nối, nhưng nó vẫn nằm trên nền TCP, và TCP có một đặc tính khó chịu: dữ liệu phải được giao đúng thứ tự. Khi một gói tin thất lạc, mọi luồng dữ liệu đi chung kết nối đó đều phải dừng chờ gói được gửi lại, kể cả những luồng chẳng liên quan gì. Trên đường truyền cáp quang ổn định thì hiếm khi thấy, nhưng trên mạng di động lúc đi đường hoặc mạng công cộng đông người, tỷ lệ mất gói đủ cao để hiện tượng này làm trang giật rõ. HTTP/3 chuyển sang nền QUIC, một giao thức chạy trên UDP và tự quản lý từng luồng độc lập, nên mất gói ở luồng này không chặn luồng kia. Ngoài ra QUIC gộp bước bắt tay bảo mật vào chung bước bắt tay kết nối, tiết kiệm được một vòng đi về so với cách TCP kết hợp TLS, điều rất đáng kể khi máy chủ ở xa. Nó cũng giữ được kết nối khi thiết bị đổi mạng, nhờ vậy chuyển từ Wi-Fi sang mạng di động không làm đứt phiên đang tải.
Lợi ích khi sử dụng
- Xác nhận nhanh sau khi vừa bật QUIC trên máy chủ hay trên mạng phân phối nội dung
- Không phải cài công cụ dòng lệnh chỉ để kiểm tra một tên miền
- Thấy được tên giao thức nguyên văn chứ không chỉ một chữ có hay không
- Kiểm tra được cả tên miền của người khác khi khảo sát đối thủ
- Chạy tại chỗ trong trình duyệt, không phụ thuộc dịch vụ kiểm tra bên ngoài
Cách kiểm tra một tên miền
- 1Gõ tên miền vào ô nhập, không cần thêm phần giao thức vì công cụ tự gắn https vào đầu nếu bạn bỏ trống.
- 2Nhấn Enter hoặc bấm nút tìm kiếm, công cụ gửi một yêu cầu nhẹ rồi đọc số liệu đo của trình duyệt.
- 3Xem ba thẻ kết quả, thẻ nào được đánh dấu là giao thức mà kết nối vừa rồi thực sự dùng.
- 4Đọc dòng ghi tên giao thức nguyên văn, chuỗi bắt đầu bằng h3 nghĩa là HTTP/3, bắt đầu bằng h2 nghĩa là HTTP/2.
- 5Nếu kết quả trống hoặc báo lỗi, hãy đối chiếu lại bằng tab Network trong công cụ dành cho nhà phát triển vì công cụ này chỉ đọc được số liệu khi máy chủ cho phép chia sẻ thông tin đo.
Vì sao kết quả có thể trống dù máy chủ thật sự bật HTTP/3
Đây là giới hạn quan trọng nhất và bạn cần nắm trước khi tin vào một kết quả âm tính. Trình duyệt chỉ tiết lộ thông tin giao thức của một tài nguyên khác tên miền khi máy chủ đích trả về tiêu đề cho phép chia sẻ số liệu đo. Phần lớn tên miền không đặt tiêu đề này, nên trường ghi giao thức sẽ rỗng và công cụ đành báo là không xác định, kéo theo cả ba thẻ đều tắt. Trong trường hợp đó, kết quả không nói gì về việc máy chủ có hỗ trợ HTTP/3 hay không, nó chỉ nói rằng trình duyệt không cho phép trang này đọc thông tin. Giới hạn thứ hai nằm ở chính cách HTTP/3 được phát hiện: trình duyệt thường mở kết nối đầu tiên bằng HTTP/2, rồi mới thấy tiêu đề quảng bá dịch vụ thay thế trong phản hồi và chuyển sang HTTP/3 ở những lần kết nối sau. Nghĩa là ngay cả khi đọc được số liệu, lần kiểm tra đầu tiên vẫn có thể trả về HTTP/2. Nếu bạn thử lại sau vài giây và kết quả đổi sang HTTP/3, đó là dấu hiệu tốt chứ không phải công cụ chạy sai.
Ba cách kiểm tra chắc chắn hơn khi cần kết luận dứt khoát
Cách thứ nhất là dùng chính công cụ dành cho nhà phát triển của trình duyệt. Mở tab Network, bấm chuột phải vào hàng tiêu đề của bảng rồi bật cột giao thức, tải lại trang và đọc trực tiếp giá trị ở từng dòng. Cách này cho biết chính xác trình duyệt của bạn đang nói chuyện bằng gì với từng tài nguyên. Cách thứ hai là kiểm tra tiêu đề quảng bá dịch vụ thay thế trong phản hồi HTTP. Chạy lệnh curl kèm tham số I rồi tìm dòng bắt đầu bằng alt-svc, nếu thấy giá trị h3 kèm số cổng thì máy chủ đang thông báo rằng nó chấp nhận HTTP/3. Đây là cách đọc đúng ý định của máy chủ, độc lập với việc trình duyệt của bạn có kết nối được hay không. Cách thứ ba là dùng bản curl được biên dịch kèm hỗ trợ HTTP/3 và gọi với tham số buộc dùng giao thức đó; nếu lệnh chạy trót lọt thì kết nối QUIC thật sự thiết lập được từ máy bạn. Ba cách này bổ trợ nhau và nên dùng cùng lúc khi đang gỡ rối.
Bật HTTP/3 ở đâu và cần mở cổng nào
Con đường nhanh nhất cho phần lớn trang web là bật ở tầng mạng phân phối nội dung đứng trước máy chủ. Các dịch vụ lớn đều có một công tắc bật HTTP/3 trong bảng điều khiển, và khi bật thì máy chủ gốc của bạn không cần đổi gì vì phần nói chuyện với người dùng do họ đảm nhiệm. Nếu bạn tự vận hành máy chủ, nginx hỗ trợ QUIC từ nhánh phát triển phiên bản 1.25 trở đi và cần biên dịch kèm thư viện có hỗ trợ giao thức này, còn Caddy thì bật sẵn theo mặc định. Điểm hay bị quên là tường lửa: QUIC chạy trên UDP chứ không phải TCP, nên bạn phải mở cổng 443 cho UDP bên cạnh cổng 443 cho TCP vốn đã mở sẵn. Thiếu bước này, máy chủ vẫn quảng bá dịch vụ thay thế nhưng mọi kết nối QUIC đều thất bại và trình duyệt lặng lẽ quay về HTTP/2. Cũng lưu ý rằng nhiều mạng doanh nghiệp chặn UDP ra ngoài, nên người dùng ngồi trong văn phòng có thể không bao giờ chạm được HTTP/3 dù bạn đã cấu hình đúng.
HTTP/3 cải thiện được bao nhiêu trong thực tế
Cần đặt kỳ vọng đúng để khỏi thất vọng. Lợi ích của HTTP/3 tỷ lệ thuận với độ tệ của đường truyền. Trên mạng cáp quang ổn định, độ trễ thấp và gần như không mất gói, khác biệt so với HTTP/2 thường chỉ vài chục mili giây và người dùng không cảm nhận được. Trên mạng di động lúc di chuyển, mạng Wi-Fi công cộng đông người, hoặc khi máy chủ đặt ở châu lục khác, phần tiết kiệm một vòng đi về ở bước bắt tay cộng với việc không bị nghẽn theo thứ tự có thể rút ngắn thời gian tới byte đầu tiên một cách thấy rõ. Vì vậy nếu lượng truy cập của bạn chủ yếu từ điện thoại và từ nhiều tỉnh thành xa máy chủ, bật HTTP/3 là việc đáng làm. Điều không nên trông đợi là HTTP/3 sẽ cứu một trang nặng: nó chỉ tối ưu khâu vận chuyển, không làm ảnh bớt nặng, không làm mã JavaScript chạy nhanh hơn và không thay được việc nén nội dung. Thứ tự ưu tiên hợp lý vẫn là giảm dung lượng tài nguyên trước, rồi mới tới tinh chỉnh giao thức.
Đọc tên giao thức và các giá trị bạn sẽ gặp
Trình duyệt ghi lại tên giao thức của chặng kế tiếp theo đúng nhãn dùng trong quá trình thương lượng ở tầng bảo mật. Giá trị h3 nghĩa là HTTP/3 chạy trên QUIC theo bản chuẩn chính thức. Bạn có thể còn gặp các nhãn cũ dạng h3 kèm một hậu tố số ở những hệ thống chưa cập nhật, đó là các bản nháp trước khi chuẩn hóa và ngày nay hầu như không còn. Giá trị h2 là HTTP/2. Giá trị bắt đầu bằng http slash 1 là HTTP/1.1, thường gặp ở máy chủ cũ hoặc ở kết nối không dùng mã hóa. Một giá trị đáng chú ý khác là chuỗi rỗng, và như đã nói ở trên, chuỗi rỗng chỉ có nghĩa là bạn không được phép đọc chứ không có nghĩa là kết nối kém. Cuối cùng, nếu bạn thấy HTTP/1.1 trên một tên miền lớn, hãy kiểm tra xem địa chỉ có bị chuyển hướng sang một tên miền khác không, vì số liệu được đối chiếu theo tên máy chủ và một lần chuyển hướng có thể khiến công cụ đọc nhầm mục.
Câu hỏi thường gặp (FAQ)
Vì sao công cụ báo không xác định được giao thức?
Vì trình duyệt chỉ tiết lộ thông tin giao thức của tài nguyên khác tên miền khi máy chủ đích trả về tiêu đề cho phép chia sẻ số liệu đo, và phần lớn tên miền không đặt tiêu đề này. Kết quả trống trong trường hợp đó không nói gì về khả năng của máy chủ, bạn nên đối chiếu bằng tab Network của trình duyệt hoặc bằng lệnh curl.
Kết quả báo HTTP/2 nhưng tôi biết máy chủ đã bật HTTP/3, sai ở đâu?
Không sai. Trình duyệt thường mở kết nối đầu tiên bằng HTTP/2 rồi mới đọc tiêu đề quảng bá dịch vụ thay thế và chuyển sang HTTP/3 ở lần kết nối sau. Hãy thử lại lần thứ hai sau vài giây, nếu kết quả đổi sang h3 thì cấu hình của bạn đang hoạt động đúng như thiết kế.
Kiểm tra HTTP/3 bằng dòng lệnh thế nào?
Cách nhanh nhất là chạy curl kèm tham số I rồi tìm dòng bắt đầu bằng alt-svc trong phần tiêu đề trả về; nếu thấy giá trị h3 kèm số cổng thì máy chủ đang thông báo nó chấp nhận HTTP/3. Muốn thử kết nối thật thì cần bản curl được biên dịch kèm hỗ trợ HTTP/3 và gọi với tham số buộc dùng giao thức đó.
HTTP/3 khác HTTP/2 ở điểm cốt lõi nào?
HTTP/2 chạy trên TCP nên khi một gói tin thất lạc thì mọi luồng dữ liệu đi chung kết nối đều phải dừng chờ. HTTP/3 chạy trên QUIC nền UDP với các luồng độc lập nhau, mất gói ở luồng này không chặn luồng kia. Ngoài ra QUIC gộp bắt tay bảo mật vào bắt tay kết nối nên tiết kiệm được một vòng đi về.
Bật HTTP/3 có cần mở thêm cổng không?
Có, và đây là bước hay bị quên nhất. QUIC chạy trên UDP nên bạn phải mở cổng 443 cho UDP bên cạnh cổng 443 cho TCP vốn đã mở. Thiếu bước này thì máy chủ vẫn quảng bá dịch vụ thay thế nhưng mọi kết nối QUIC đều thất bại và trình duyệt lặng lẽ quay về dùng HTTP/2.
Bật HTTP/3 làm trang nhanh lên bao nhiêu?
Tùy chất lượng đường truyền của người dùng. Trên cáp quang ổn định thì khác biệt thường chỉ vài chục mili giây và khó cảm nhận. Trên mạng di động lúc di chuyển hoặc khi máy chủ đặt ở châu lục khác, phần tiết kiệm ở bước bắt tay cộng với việc không bị nghẽn theo thứ tự có thể rút ngắn thời gian tới byte đầu tiên rõ rệt.
Máy chủ của tôi bật HTTP/3 rồi mà nhân viên trong công ty vẫn thấy HTTP/2?
Nhiều mạng doanh nghiệp chặn lưu lượng UDP đi ra ngoài vì lý do an ninh, khiến kết nối QUIC không thiết lập được và trình duyệt tự động quay về HTTP/2. Đây là hành vi dự phòng có chủ đích của giao thức nên người dùng không thấy lỗi gì. Hãy thử lại bằng mạng di động để xác nhận cấu hình phía máy chủ vẫn đúng.
HTTP/3 có ảnh hưởng tới thứ hạng tìm kiếm không?
Không có tín hiệu xếp hạng riêng cho giao thức. Ảnh hưởng nếu có là gián tiếp qua tốc độ tải trang, vốn là một yếu tố được tính tới. Nhưng phần cải thiện từ giao thức thường nhỏ so với phần bạn thu được khi giảm dung lượng ảnh, gộp bớt tài nguyên chặn hiển thị và tối ưu phản hồi từ máy chủ.
Có cần tắt HTTP/2 khi đã bật HTTP/3 không?
Không nên và cũng không được. HTTP/3 được phát hiện thông qua một kết nối trước đó, thường là HTTP/2, nên tắt HTTP/2 sẽ phá vỡ cơ chế này. Ngoài ra vẫn còn thiết bị cũ và mạng chặn UDP cần đường lui. Cấu hình đúng là bật đồng thời cả ba mức và để trình duyệt tự chọn cái tốt nhất mà nó dùng được.
Tên miền tôi nhập có bị gửi đi đâu không?
Công cụ gửi yêu cầu thẳng từ trình duyệt của bạn tới chính tên miền đó, không đi qua máy chủ trung gian nào của trang này. Nghĩa là chính máy chủ đích sẽ thấy một lượt truy cập từ địa chỉ mạng của bạn, điều này bình thường với tên miền công khai nhưng cần cân nhắc nếu bạn đang thử một địa chỉ nội bộ.
Vì sao thẻ HTTP/1.1 lại sáng với một trang web lớn?
Hãy kiểm tra xem địa chỉ bạn nhập có bị chuyển hướng sang tên miền khác không, vì số liệu được đối chiếu theo tên máy chủ và một lần chuyển hướng có thể khiến công cụ đọc nhầm mục đo. Ngoài ra một số tài nguyên phụ trợ vẫn phục vụ qua HTTP/1.1 dù trang chính đã lên HTTP/2 hoặc HTTP/3.
Trình duyệt nào hỗ trợ HTTP/3?
Các trình duyệt phổ biến hiện nay đều hỗ trợ và bật sẵn, gồm Chrome, Edge, Firefox và Safari ở các phiên bản gần đây. Vì vậy nếu bạn kiểm tra bằng một trình duyệt cập nhật mà vẫn không thấy HTTP/3, nguyên nhân thường nằm ở phía máy chủ hoặc ở mạng bạn đang dùng chứ không phải ở trình duyệt.
Từ khóa liên quan
- kiểm tra http/3
- http3 checker
- quic là gì
- http/3 là gì
- http2 và http3 khác nhau
- bật http3 nginx
- http3 cloudflare
- alt-svc header
- kiểm tra giao thức website
- tăng tốc website
- head of line blocking
- tls 1.3 bắt tay
- udp cổng 443
- thời gian tới byte đầu tiên
- tối ưu tốc độ tải trang
- kiểm tra http/2
- giao thức mạng cho web
- cấu hình máy chủ web
- seo kỹ thuật tốc độ
- kiểm tra website bằng devtools