Tổng quan về HTTP2

Tác giả: 30/11/2023

HTTP/2 là cuộc cách mạng Hypertext Transfer Protocol (HTTP) mới nhất tính đến thời điểm này. HTTP là giao thức mạng được sử dụng để yêu cầu và nhận page cùng dữ liệu trên môi trường World Wide Web. Công nghệ mới này sẽ dần thay thế chuẩn HTTP/1.1 đã được sử dụng rộng rãi trong hơn hai thập kỷ gần đây

Lục lại lịch sử, phiên bản gần nhất HTTP/1.1 đã được sử dụng hơn 15 năm cho hệ thống World Wide Web, từ thời điểm mà dung lượng page nhỏ, chưa có CSS cũng như JavaScript hiếm khi được sử dụng…

Tuy vậy, ngày nay các trang web không chỉ là những đoạn mã HTML đơn giản mà còn là sự kết hợp nhuần nhuyễn của CSS, JavaScript, hình ảnh, video/gif và thậm chí là cả Flash nữa.

Để truyền tải lượng dữ liệu đó, một khối lượng công việc khổng lồ được tạo ra để cả máy chủ và trình duyệt xử lý các truy vấn đó, nhằm đảm bảo đáp ứng một cách nhanh nhất và tốt nhất yêu cầu.

HTTP/2 khác HTTP/1.1 ở điểm nào?

Có lẽ HTTP/2 nên được hiểu bằng tên gốc là: HTTP/2.0. Giao thức này được dựa trên giao thức SPDY (đọc là speedy) do Google phát minh năm 2009

HTTP/2 là dữ liệu nhị phân

HTTP/1.1 dùng data dạng text, với hiệu năng nhìn chung kém hơn khi áp dụng lên môi trường mạng

HTTP/2 Headers được nén nhỏ

Thông tin được gửi đi kèm request miêu tả dữ liệu, cùng nguồn gốc, kiểu, độ dài, và thời gian được cache,… của dữ liệu đó. Khác với HTTP/1.1, tất cả thông tin này được nén trong HTTP/2

HTTP/2 Dùng Pipelining

Trong HTTP/1.1, server phải gửi phản hồi theo cùng trật tự nhận request. HTTP/2 thì bất đồng bộ, nên các phản hồi nhỏ hơn hoặc nhanh hơn có thể được xử lý sớm hơn

HTTP/2 đi theo hướng Multiplexed

Trong HTTP/1.1, ở mọi thời điểm, chỉ có một request có thể được xử lý trên một kết nối TCP. Trình duyệt thường mở giữa bốn và tám kết nối, nhưng các gói dữ liệu nặng và chậm có thể khiến quá trình download của các file khác bị delay. HTTP/2 cho phép đồng thời xử lý nhiều request và response messages trên cùng connection (duy nhất)

HTTP/2 cho phép xử lý nhiều truy vấn giữa máy chủ và trình duyệt trên một kết nối TCP duy nhất. Cụ thể, HTTP/2 giúp tạo ra kết nối liên tục giữa máy chủ và trình duyệt.

Trong khi đó, HTTP/1.1 thiết lập một kết nối mới mỗi lần trình duyệt truy vấn thông tin đồng thời chỉ xử lý 1 truy vấn duy nhất trên một kết nối TCP

HTTP/2 Implements Server Push

Server có thể gửi trước gói dữ liệu trước khi được yêu cầu. Ví dụ, bạn có thể reference một script ở cuối web page. Trong HTTP/1.1, trình duyệt sẽ tải HTML, phân tích nó, rồi load file JavaScript khi bắt gặp tag <script>. Trong khi đó, mỗi HTTP/2 server có thể push file JavaScript đến trình duyệt trước khi được yêu cầu

Có thể thấy, với hàng loạt cải tiến kỹ thuật được áp dụng, HTTP/2 thực sự nhanh hơn HTTP/1.1 rất nhiều. Kết quả so sánh có thể khác biệt với từng hệ thống.

Tổng kết

Có thể thấy, HTTP/2 đã thể hiện những ưu thế vượt trội so với HTTP/1.1 và SPDY, khẳng định mình là giao thức của tương lai.

HTTP/2 ngày càng được hỗ trợ và sử dụng nhiều hơn. Theo W3Techs, đến tháng 06/2017, 15% lượng websites toàn cầu sử dụng HTTP/2.

30/11/2023