07/09/2018, 10:32

Giao Thức HTTP/2 Có Gì Mới

Giao thức HTTP hay Hyper Text Transfer Protocol là giao thức dùng để quy định cách thức giao tiếp giữa máy chủ và máy khách. Phiên bản đầu được ra đời năm 1999 và bây giờ phiên bản HTTP/2 đã được ra đời. HTTP/2 được đánh giá sẽ giúp cải tiến đáng kể quy trình giao tiếp giữa máy chủ và máy khách qua ...

Giao thức HTTP hay Hyper Text Transfer Protocol là giao thức dùng để quy định cách thức giao tiếp giữa máy chủ và máy khách. Phiên bản đầu được ra đời năm 1999 và bây giờ phiên bản HTTP/2 đã được ra đời. HTTP/2 được đánh giá sẽ giúp cải tiến đáng kể quy trình giao tiếp giữa máy chủ và máy khách qua đó tăng tốc độ duyệt web của người dùng. Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu xem giao thức HTTP/2 có những tính năng nào mới so với phiên bản trước nó HTTP/1.1.

Tóm Tắt Lịch Sử Ra Đời Của Giao Thức HTTP

Giao thức HTTP được lần đầu cho ra mắt vào năm 1991 và phiên bản tiếp theo HTTP/1.1 được ra mắt vào năm 1999 với nhiều cải tiến đáng kể. Từ đó tới nay có vô số website đã được ra đời và độ lớn về dữ liệu cũng như tính phức tạp trong cấu trúc của các website này cũng tăng dần theo thời gian. Với các website hiện nay thì trung bình trình duyệt sẽ cần tải về khối lượng dữ liệu là 1.9 Mb riêng cho trang chủ và ngoài ra còn có hơn 100 số lượng các tài nguyên khác được tham chiếu trong trang chủ. Tài nguyên ở đây bao gồm các tập tin CSS và Javascript.

Phiên bản HTTP 1.1 hiện nay không còn có thể đáp ứng được sự phát triển nhanh chóng của các website hiện nay và đo đó đòi hỏi cần có một sự nâng cấp cho nó. Nhưng trước tiên nói về HTTP/2 chúng ta không thể nhắc tới một dự án được đóng góp bởi công sức của các nhân viên của Google đó là SPDY.

Dự Án SPDY

Dự án được bắt đầu từ năm 2009 bởi 2 kỹ sư máy tính làm việc cho Google. Trong dự án này có nêu ra những nhược điểm của HTTP/1.1 và đề xuất ra các giải pháp như sau:

  • Cho phép gửi nhiều yêu cầu tới máy máy chủ qua một kết nối TCP (Tranfer Control Protocal) duy nhất hay còn gọi là mutiplexing.
  • Cho phép trình duyệt có thể sắp xếp thứ tự ưu tiên tải về cho các tài nguyên nào quan trọng dùng để hiển thị trang.
  • Cho phép nén và giảm thiểu các HTTP header.
  • Bổ sung tính năng server push: Máy chủ sẽ gửi về các tài nguyên quan trọng cho trình duyệt trước khi trình duyệt phải gửi yêu cầu tới máy chủ cho các tài nguyên này.

Thêm vào đó SPDY cũng yêu cầu sử dụng giao thức HTTPS cho việc kết nối giữa máy chủ và máy khách.

SPDY được tạo ra không phải là để thay thế cho HTTP/1.1. Thay vào đó nó sửa đổi và bổ sung thêm các tính năng mới cho giao thức HTTP/1.1. SPDY yêu cầu sự hỗ trợ của cả máy chủ và của trình duyệt. Với máy chủ thì hiện nay Nginx đã hỗ trợ SPDY khá tốt còn Apache cũng đã được Google thêm vào các gói phần mềm giúp hỗ trợ những tính năng mới này. Về phía trình duyệt thì hiện nay tất cả các trình duyệt phổ biến cũng đều đã hỗ trợ SPDY.

Hỗ trợ SPDY của các trình duyệt

HTTP/2

Giao thức HTTP/2 được ra đời dựa trên những nền tảng chủ yếu được đề cập trong dự án SPDY ở trên. Do đó phần lớn các vấn đề được nhắc tới trong SPDY đều được thực hiện trong phiên bản HTTP/2. Tuy nhiên, phần lớn các nhà sản xuất trình duyệt web lại không yêu cầu việc bắt buộc phải sử dụng giao thức HTTPS. Điều này có nghĩa là giao thức HTTP/2 chỉ được thực hiện với các kết nối bảo mật sử dụng SSL. Như vậy, dù bạn vẫn có thể không sử dụng SSL trong giao tiếp giữa trình duyệt và máy chủ nhưng chỉ khi nào sử dụng SSL thì bạn mới có thể nghĩ tới việc nâng cấp nên phiên bản HTTP/2.

Các tiêu chuẩn trong phiên bản HTTP/2 được chính thức hoàn thành vào tháng 2 năm 2015, và chỉ 1 năm sau đó tất cả các trình duyệt đều đã chấp nhận thông qua các tính năng có trong phiên bản này. Và có thể nói sự đồng thuận này là khá nhanh nếu nói về thời gian ra đời chỉ có 1 năm của HTTP/2 so với các tiêu chuẩn khác.

0