Mỗi thế hệ HTTP giải quyết được vấn đề gì? Sơ đồ dưới đây minh họa các tính năng chính của HTTP

HTTP 1.0 từ đã được hoàn thành nhiệm vụ mình và đi vào lịch sử. Mọi yêu cầu đến cùng một máy chủ đều yêu cầu một kết nối TCP riêng.
HTTP 1.1 được xuất bản vào năm 1997. Kết nối TCP có thể được mở để sử dụng lại (kết nối liên tục), nhưng nó không giải quyết được vấn đề chặn. Khi sử dụng hết số lượng yêu cầu song song được phép trong trình duyệt, các yêu cầu tiếp theo cần phải đợi các yêu cầu trước hoàn thành.
HTTP 2.0 được xuất bản vào năm 2015. Nó giải quyết vấn đề HOL thông qua ghép kênh yêu cầu, giúp loại bỏ việc chặn HOL ở lớp ứng dụng, nhưng HOL vẫn tồn tại ở lớp vận chuyển (TCP).
Như bạn có thể thấy trong sơ đồ, HTTP 2.0 đã giới thiệu khái niệm về “luồng” HTTP: một sự trừu tượng hóa cho phép ghép kênh các trao đổi HTTP khác nhau trên cùng một kết nối TCP. Mỗi luồng không cần phải được gửi theo thứ tự.
HTTP 3.0 Phiên bản đầu tiên được xuất bản vào năm 2020. Đây là phiên bản kế thừa được đề xuất cho HTTP 2.0. Nó sử dụng QUIC thay vì TCP cho giao thức truyền tải cơ bản, do đó loại bỏ việc chặn HOL trong lớp truyền tải.
QUIC dựa trên UDP. Nó giới thiệu các luồng với tư cách là công dân hạng nhất ở lớp vận chuyển. Các luồng QUIC chia sẻ cùng một kết nối QUIC, do đó không cần bắt tay thêm và khởi động chậm để tạo luồng mới, nhưng các luồng QUIC được phân phối độc lập sao cho trong hầu hết các trường hợp, việc mất gói ảnh hưởng đến một luồng không ảnh hưởng đến các luồng khác.
Câu hỏi: Khi nào chúng ta sẽ nâng cấp lên HTTP 3.0? Bất kỳ ưu và nhược điểm nào bạn có thể nghĩ đến?