Skip to main content

Command Palette

Search for a command to run...

HTTP 1.1 và HTTP 2, liệu bạn có biết được điểm khác nhau?

Updated
5 min read
HTTP 1.1 và HTTP 2, liệu bạn có biết được điểm khác nhau?

Mở đầu

Trong một báo cáo của McKinsey, có đến 87% số người được hỏi trả lời rằng họ sẽ không làm việc với công ty mà họ có vấn đề liên quan đến an toàn bảo mật. Nếu bạn là người quan tâm đến các vấn đề bảo mật và danh tiếng của công ty thì vấn đề quyền riêng tư không thể coi nhẹ được.

Và để truyền dữ liệu thông qua Internet hiệu quả thì một trong những công nghệ cốt lõi được sử dụng là Hyper Text Transfer Protocol - Giao thức truyền siêu văn bản(HTTP). Tuy nhiên trong giao thức HTTP lại có nhiều biến thể khác nhau. Trong bài viết này sẽ nói đến HTTP 1.1 và HTTP 2, chúng là gì, khác nhau chỗ nào và ưu nhược điểm là gì?

HTTP 1.1 là gì?

Khi nhắc tới HTTP, một trong những phiên bản được nói tới rất nhiều là 1.1, được phát triển vào năm 1997. Đây là phiên bản HTTP đang được sử dụng để trao đổi dữ liệu giữa server và client. Các tính năng nổi bật mà làm cho 1.1 nổi bật hơn các phiên bản trước đó bao gồm:

  • Ra mắt các method PUT, DELETE và OPTIONS để nâng cao tính năng. Những method này cho phép quản lý tài nguyên trên server.

  • Tính năng mã từng khối và HTTP pipelining giúp giảm độ trễ, cải thiện hiệu suất và tính linh hoạt khi xử lý các payload lớn.

  • Cải thiện tính năng caching: HTTP 1.1 sử dụng tính năng caching hiệu quả hơn. Người dùng có thể lưu trữ các phản hồi trả về, giảm thiểu truyền dữ liệu không cần thiết. Điều này cho phép giảm tải trên server và thời gian tải trang nhanh hơn.

  • Duy trì kết nối: Khác với HTTP 1.0 là sẽ tạo một kết nối mới cho mỗi yêu cầu lên server, HTTP 1.1 hỗ trợ duy trì kết nối. Điều này cho phép các yêu cầu được gửi trên cùng một kết nối, giúp giảm độ trễ và cải thiện hiệu năng.

HTTP 2 là gì?

Với việc HTTP 1.1 vẫn đang được sử dụng chủ yếu và rất tốt, nhiều người sẽ thắc mắc HTTP 2 là gì, nó có gì hơn? Với việc công nghệ phát triển hàng ngày, HTTP 2 được thiết kế để bắt kịp điều đó. Dưới đây là một số tính năng nổi bật:

  • Server PUSH: Cho phép server gửi một vài thông tin cần thiết cho một request trước khi chúng được gửi tới server, giảm thiểu các yêu cầu đi kèm.

  • Đa kênh: Cho phép nhiều yêu cầu và phản hồi được gửi cùng lúc trong cùng 1 kết nối.

  • Nén header bằng thuật toán HPACK: Nén các header đã được gửi từ các yêu cầu trước đó, chống lại phương thức tấn công CRIME, cho phép tăng tốc độ truyền tải trước đó và tăng mức độ an toàn.

    HPACK explained in detail · kaspterio

  • Binary Protocol: HTTP 2 sử dụng định dạng nhị phân thay vì bản rõ như các phiên bản trước, có nghĩa là chỉ các câu lệnh nhị phân được truyền đi. Tính năng này giúp tăng hiệu quả cho việc nén dữ liệu, phân tích và xử lý của máy tính cũng như bảo mật.

  • Ưu tiên luồng: Cho phép trao đổi giữa các luồng dữ liệu tại cùng một thời điểm, phân loại ưu tiên cho các luồng dựa trên mức độ quan trọng.

Điểm khác biệt giữa HTTP 1.1 và HTTP 2

  • Xử lý tràn bộ nhớ đệm (Buffer Overflow): HTTP 1.1 có lỗ hổng liên quan đến kích thước bộ nhớ đệm được định sẵn, trong khi đó HTTP 2 có cơ chế để quản lý việc này, giảm thiểu nguy cơ bị khai thác và gửi dữ liệu dưới các khối đã được kiểm soát.

  • Giao thức hiệu quả hơn: HTTP 1.1 gửi dữ liệu dưới dạng bản rõ, trong khi HTTP 2 gửi dữ liệu dưới dạng nhị phân, giúp tăng hiệu quả truyền tải.

  • Dự đoàn yêu cầu tài nguyên: HTTP 1.1 bị động, dựa trên yêu cầu từ client và phản hồi từ server. Trong khi đó HTTP 2 thì chủ động, cho phép server gửi gửi một vài tài nguyên trước khi client yêu cầu tài nguyên, giúp giảm thời gian tải trang.

    HTTP/2 Multiplexing: Revolutionizing Web Communication - NETWORK ...

  • Đa kênh: HTTP 1.1 tạo kết nối cho từng yêu cầu/phản hồi, trong khi đó HTTP 2 hỗ trợ truyền tải đa kênh, cho phép giảm độ trễ và tăng hiệu năng.

Tính năngHTTP 1.1HTTP 2
Năm phát triển19972015
Dữ liệu truyền điBản rõNhị phân
Đa kênhKhông
Hiệu quảKém hiệu quảHiệu quả hơn
NénTự nénSử dụng thuật toán HPACK
Bảo mậtTồn tại lỗ hổng Buffer OverflowNgăn chặn lỗ hổng Buffer Overflow, sử dụng Secure Remote Protocol 2 (SRP2)

Làm sao để thiết lập HTTP 2?

Để thiết lập HTTP 2, dưới đây là các bước thực hiện:

  • Cập nhật phần mềm web server: Đảm bảo rằng web server (như Nginx, Apache) hỗ trợ cập nhật HTTP 2 nếu cần thiết.

  • Thiết lập SSL Certificate: HTTP 2 yêu cầu mã hóa SSL, thế nên cần phải mua chứng chỉ SSL và thiết lập trên server.

  • Cập nhật code: Chỉnh sửa code trên website để sử dụng các tính năng của HTTP 2.

  • Kiểm tra mức độ tương thích: Kiểm tra website có tương thích với HTTP 2 không. Kiểm tra mức độ hỗ trợ của trình duyệt và hiệu năng.

  • Cấu hình server: Cấu hình server để sử dụng HTTP 2, chuyển hướng các yêu cầu từ HTTP 1.1 sang HTTP 2.

Tham khảo

Newsletters

Part 1 of 50

More from this blog

F

FPT IS Security

761 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.