Trong 20 năm qua, World Wide Web đã phát triển vượt bậc. Tất cả các công nghệ web được cải tiến yêu cầu các giải pháp và giao thức tốt hơn và nhanh hơn để giao tiếp và truyền tệp tin hơn so với các công nghệ hiện tại (HTTP) đang đạt đến giới hạn công nghệ của chúng.
HTTP / 2 là gì?
HTTP / 2 là phiên bản Siêu văn bản mới nhất Giao thức truyền tải (HTTP) - giao thức cơ bản được World Wide Web sử dụng . Ban đầu nó được phê duyệt vào tháng 2 năm 2015. Tức là gần 20 năm sau HTTP ban đầu. HTTP / 2 giảm thời gian tải và mang lại những cải tiến lớn trong giao tiếp giữa máy chủ và trình duyệt. Đa số các trình duyệt đã thêm HTTP / 2 và nó không thay đổi nhiều thứ theo quan điểm của người dùng. Đó là lý do chính khiến nhiều người trong chúng ta chưa đọc hoặc chưa nghe về nó.
HTTP / 2 có tác dụng gì?
Là người kế thừa của HTTP, HTTP / 2 tập trung vào việc cải thiện tất cả các đặc điểm của HTTP . Để duy trì khả năng tương thích ngược với giao thức cũ, nó giữ hầu hết các chức năng của HTTP. Tuy nhiên, nó giới thiệu một số cải tiến mạnh mẽ.
Cả HTTP hoặc HTTP / 2 đều xác định:
- Những hành động mà trình duyệt web và máy chủ cần thực hiện để đáp ứng các lệnh khác nhau.
- Cách mọi bit thông tin được truyền từ máy tính này sang máy tính khác thông qua web.
- Cách tạo, định dạng và truyền thông điệp.
Nói cách khác, HTTP và HTTP / 2 thiết lập các tiêu chuẩn về cách nội dung web được phân phối đến máy tính của bạn, với sự khác biệt là HTTP / 2 là làm cho tất cả mọi thứ nhanh hơn so với người tiền nhiệm của nó. Tại đây, bạn có thể xem chi tiết HTTP / 2 làm gì.
Luồng đa kênh
Chuỗi khung định dạng văn bản hai chiều được gửi qua giao thức HTTP / 2 giữa một máy chủ và máy khách được gọi là “luồng”. HTTP chỉ có thể truyền một trong những “luồng” này tại một thời điểm. Sau khi luồng được gửi, có một khoảng thời gian trễ giữa lần truyền luồng tiếp theo.
HTTP / 2 thiết lập một lớp khung nhị phân mới giải quyết trực tiếp vấn đề với việc truyền từng “luồng” một. Nó cho phép các máy khách và máy chủ phân rã tải trọng HTTP / 2 thành các chuỗi khung xen kẽ nhỏ, độc lập và dễ quản lý. Tất cả thông tin này được tập hợp lại sau khi nhận được ở đầu bên kia. Giao thức này cho phép trao đổi nhiều chuỗi, mở đồng thời và độc lập hai chiều mà không có độ trễ giữa các luồng kế tiếp.
Lợi ích:
- Các yêu cầu và phản hồi được ghép song song không chặn nhau.
- Một kết nối TCP duy nhất có thể đảm bảo sử dụng tài nguyên mạng hiệu quả ngay cả khi truyền nhiều luồng dữ liệu.
- Hiệu suất web nhanh hơn, giảm độ trễ và kết quả công cụ tìm kiếm tốt hơn.
- Giảm CapEx và OpEx trong mạng đang chạy và tài nguyên CNTT.
HTTP / 2 Server Push và Cache Push
Cái này là khả năng cho phép máy chủ gửi thêm thông tin có thể lưu vào bộ nhớ cache cho máy khách . Thông tin đó không được yêu cầu nhưng được dự đoán cho các yêu cầu trong tương lai. Nếu máy khách yêu cầu một tài nguyên A và biết rằng một tài nguyên B khác được tham chiếu với tài nguyên được yêu cầu, máy chủ có thể đẩy B cùng với A thay vì chờ một yêu cầu khác của máy khách. Sau đó, máy khách lưu tài nguyên được đẩy B vào bộ nhớ cache để sử dụng trong tương lai. Tính năng này giúp tiết kiệm toàn bộ quy trình phản hồi yêu cầu và giảm độ trễ của mạng. Ban đầu, Google đã giới thiệu Server Push trong giao thức SPDY.
Một cải tiến khác trong HTTP / 2 là Cache Push. Điều này chủ động cập nhật hoặc làm mất hiệu lực bộ nhớ cache của khách hàng. Điều này cho phép máy chủ xác định các tài nguyên có khả năng đẩy mà máy khách thực sự không muốn.
Lợi ích:
- Khách hàng có thể từ chối tài nguyên được đẩy để duy trì một kho tài nguyên được lưu trong bộ nhớ cache hiệu quả (hoặc thậm chí tắt hoàn toàn Server Push).
- Khách hàng có thể giới hạn số lượng luồng được đẩy được ghép đồng thời.
- Máy chủ có thể ưu tiên các tài nguyên được đẩy. Đây là điểm mấu chốt tạo nên sự khác biệt về hiệu suất giữa HTTP / 2 và HTTP.
- Máy chủ có thể ghép các tài nguyên được đẩy cùng với thông tin được yêu cầu của khách hàng trong cùng một kết nối TCP.
- Khách hàng có thể sử dụng các tài nguyên đã lưu trong bộ nhớ cache trên các trang khác nhau.
- Khách hàng lưu tài nguyên được đẩy vào bộ nhớ đệm.
Giao thức nhị phân
HTTP / 2 đã cải thiện đáng kể khả năng khi chuyển đổi giao thức văn bản sang giao thức nhị phân . Trong khi HTTP được sử dụng để xử lý các lệnh văn bản để thực hiện các chu kỳ yêu cầu-phản hồi, thì HTTP / 2 dựa trên các lệnh nhị phân. Điều đó rút ngắn thời gian (còn 1s và 0s) để thực hiện các tác vụ giống nhau.
Các trình duyệt có hỗ trợ HTTP / 2 sẽ chuyển đổi các lệnh văn bản thành mã nhị phân trước khi truyền nó qua mạng. Tuy nhiên, lớp khung nhị phân không tương thích ngược với máy chủ và máy khách HTTP.
Lợi ích:
- Ngăn chặn các mối lo ngại về bảo mật liên quan đến bản chất văn bản của HTTP (ví dụ:tấn công phân tách phản hồi).
- Cho phép các khả năng HTTP / 2 như nén, ưu tiên, ghép kênh, xử lý TLS hiệu quả và kiểm soát luồng.
- Trình bày các lệnh nhỏ gọn cho phép thực hiện và xử lý dễ dàng hơn.
- Xử lý dữ liệu mạnh mẽ và hiệu quả giữa máy khách và máy chủ.
- Cải thiện thông lượng và giảm độ trễ mạng.
- Ít cơ hội xảy ra lỗi hơn khi so sánh với HTTP.
- Sử dụng tài nguyên mạng hiệu quả cao.
- Chi phí thấp khi phân tích cú pháp dữ liệu.
- Dấu chân mạng nhỏ hơn.
Ưu tiên phát trực tiếp
HTTP / 2 cho phép khách hàng cung cấp tùy chọn cho các luồng dữ liệu cụ thể. Máy chủ không bị ràng buộc phải tuân theo các hướng dẫn của máy khách này, nhưng cơ chế này cho phép máy chủ tối ưu hóa việc phân bổ tài nguyên mạng dựa trên yêu cầu của người dùng .
Mức độ ưu tiên của luồng hoạt động với Trọng lượng và Mức độ phụ thuộc được chỉ định cho mỗi luồng. Mặc dù thực tế là tất cả các luồng vốn dĩ phụ thuộc vào nhau ngoại trừ, chúng có trọng số được ấn định từ 1 đến 256. Cơ chế ưu tiên luồng vẫn còn là một chủ đề tranh luận. Tuy nhiên, khi Ưu tiên luồng được kết hợp với khả năng HTTP / 2 xử lý nhiều luồng dữ liệu trong một kết nối TCP, có thể dẫn đến sự xuất hiện đồng thời của các yêu cầu máy chủ có mức ưu tiên khác nhau.
Lợi ích:
- Giảm tác động tiêu cực của mối quan tâm về độ trễ của mạng.
- Cải thiện trải nghiệm người dùng và tốc độ tải trang.
- Tối ưu hóa giao tiếp dữ liệu giữa máy chủ và máy khách.
- Sử dụng tài nguyên mạng hiệu quả cao.
- Giảm thời gian phân phối cho các yêu cầu nội dung chính.
Nén tiêu đề trạng thái
Khi người dùng duyệt các trang web đa phương tiện, sử dụng HTTP, các ứng dụng khách sẽ đẩy nhiều khung tiêu đề gần giống nhau. Trường hợp này xảy ra vì mỗi yêu cầu của máy khách phải bao gồm nhiều thông tin mà máy chủ yêu cầu để thực hiện hoạt động được yêu cầu. Quá trình này dẫn đến độ trễ và tiêu tốn tài nguyên không cần thiết.
HTTP / 2 bao gồm khả năng nén một số lượng lớn các khung tiêu đề dự phòng. Nó dựa trên đặc điểm kỹ thuật HPACK như một cách tiếp cận an toàn và đơn giản để nén tiêu đề . Máy khách và máy chủ duy trì danh sách các tiêu đề được sử dụng trong các yêu cầu máy chủ-máy khách trước đó. Điều này giải quyết trực tiếp các mối quan tâm với các khung tiêu đề dư thừa.
Lợi ích:
- Mã hóa các tiêu đề thường được sử dụng và tiêu đề lớn. Điều đó loại bỏ sự cần thiết phải gửi toàn bộ khung tiêu đề. Kích thước cá nhân của mỗi luồng thu nhỏ đáng kể.
- Ngăn chặn các cuộc tấn công bảo mật chẳng hạn như CRIME khám phá luồng dữ liệu bằng tiêu đề nén.
- Sử dụng hiệu quả các cơ chế ghép kênh.
- Ưu tiên luồng hiệu quả.
- Giảm tổng chi phí tài nguyên.
Lợi ích trong thế giới thực của HTTP / 2
HTTP / 2 tập trung vào việc tối đa hóa tiềm năng của công nghệ , để đáp ứng nhu cầu và mong đợi trong tương lai. Dưới đây là những lợi ích trong thế giới thực của việc sử dụng HTTP / 2.
Tốc độ thực hiện web và Hiệu suất web di động - HTTP / 2 có khả năng gửi và nhận nhiều dữ liệu hơn trong một chu kỳ giao tiếp máy khách-máy chủ. Nó hoạt động tốt để giảm độ trễ khi truy cập các dịch vụ internet trên mạng dữ liệu di động và mạng có băng thông hạn chế cho mỗi người dùng.
Internet tốc độ cao rẻ hơn - HTTP / 2 làm tăng hiệu quả của giao tiếp dữ liệu. Điều đó cho phép các nhà cung cấp internet giảm chi phí tổng thể trong khi vẫn duy trì các tiêu chuẩn của internet tốc độ cao.
Bảo mật - HTTP / 2 không dễ bị tấn công bởi các mối đe dọa nhắm vào các giao thức lớp ứng dụng dựa trên văn bản. Hơn nữa, nó sử dụng phương pháp tiếp cận “Bảo mật bằng cách che khuất” để bảo vệ việc truyền dữ liệu nhạy cảm giữa máy khách và máy chủ.
Phạm vi tiếp cận mở rộng - Ưu điểm của HTTP / 2 làm giảm kết quả internet cho các nhà cung cấp. Điều đó sẽ dẫn đến phạm vi phủ sóng internet rộng hơn trên toàn thế giới.
Trải nghiệm web đa phương tiện - Các tính năng và lợi thế công nghệ mà HTTP / 2 mang lại cho World Wide Web cung cấp một cơ sở hạ tầng có khả năng cung cấp nội dung đa phương tiện với tốc độ tải trang nhanh hơn.
Kết thúc
HTTP / 2 là giao thức tương đối mới, nhưng sự hỗ trợ cho nó liên tục phát triển. Ngày nay, hầu hết các trình duyệt internet đều hỗ trợ HTTP / 2 (Microsoft Edge, Google Chrome, Safari, Firefox, Chrome cho Android). Nhiều máy chủ web bao gồm hỗ trợ gốc HTTP / 2 (Apache HTTP Server, Tomcat, NGINX). Không nghi ngờ gì nữa, HTTP / 2 là giao thức WWW của tương lai.