Published on

Lí do tại sao mình chưa nâng cấp lên HTTP/3

Authors

Như các bạn đã biết thì mình đã có vài bài viết nói về HTTP/3 nhưng câu hỏi là tại sao datuan.dev vẫn chưa nâng cấp lên chuẩn mới này. Có vấn đề gì từ chuẩn HTTP/3 hay sao?


Chính xác là vậy.

Vấn đề thứ nhất mà mình gặp phải là webserver hỗ trợ HTTP/3 chưa nhiều. Hiện tại chỉ có một số webserver hỗ trợ HTTP/3 như Litespeed, OpenLitespeed, Caddy, Cloudflare, Nginx build with Quiche,... Tuy nhiên vẫn còn rất nhiều điểm bất cập.

Cloudflare 🔗 hay Nginx build with Quiche 🔗 thì rất đơn giản để sử dụng và quen thuộc. Tuy nhiên đây chỉ mới là bản beta và yêu cầu trình duyệt ở các nhánh như Nightly (Firefox) hoặc Canary (Chrome) để sử dụng. Từ đó dẫn tới việc phần trăm user được "hưởng" công nghệ này là gần như 0%.

Caddy 🔗 mình đã từng dùng qua, hỗ trợ HTTP/3 và QUIC ngay từ đầu và hỗ trợ luôn các trình duyệt chính thức. Tuy nhiên, mình đã từng thử qua và hiệu năng của Caddy không thực sự cao, cộng đồng người dùng ít và hơn hết là mình chưa đủ thân thuộc với việc cấu hình Caddy.

Litespeed 🔗OpenLitespeed 🔗 là một sự lựa chọn rất an toàn: cộng đồng sử dụng rất đông đảo, hỗ trợ HTTP/3 mà không cần trình duyệt đặc biệt và hiệu năng cao bậc nhất. Mình đã có setup thử một môi trường dev để thử HTTP/3 trên OpenLitespeed và đã cấu hình thành công.

true

Tuy nhiên, quyết định cuối cùng của mình là đợi đến khi Nginx hỗ trợ chính thức HTTP/3 🔗 hoặc kết hợp thành công OpenLitespeed vào stack hiện tại của mình rồi mới chuẩn bị nâng cấp lên, tùy trường hợp nào đến trước. Lí do ít quan trọng, đó là mình thân thuộc với Nginx hơn so với OLS. Ngoài ra, còn một lí do quan trọng hơn nữa.


Đó là HTTP/3 chưa thể hiện được ưu thế so với HTTP/2.

Trong bài viết mới đây của Cloudflare so sánh HTTP/3 với HTTP/2 🔗, chúng ta chỉ thấy được sự khác biệt 1 - 4% và trong một số bài test với page size lớn, HTTP/3 thậm chí còn chậm hơn so với HTTP/2. Mình nghĩ HTTP/2 đã ra mắt được vài năm và đã đạt được độ "chín" về tối ưu trong khi HTTP/3 vẫn còn đang trong trạng thái draft.

Kết

Mình là một thằng rất mê công nghệ mới và sẽ tìm mọi cách có thể để áp dụng vào. Tuy nhiên, để giữ cho website ổn định và hoạt động tốt nhất có thể, mình chỉ ưu tiên các stack quen thuộc, đã dùng đủ lâu. Mình vẫn giữ lại OpenLitespeed ở máy local để tiếp tục mày mò những thứ hay của nó, biết đâu khi đã đủ thuần thục, mình sẽ chuyển qua sử dụng OLS làm stack chính luôn thì sao :)