Ngữ nghĩa chính của HTTP đã được giữ lại trong HTTP/2. Điều này có nghĩa là nó vẫn có HTTP methods
chẳng hạn như GET
, POST
, v.v. HTTP headers
và URIs
để xác định tài nguyên.
Điều gì đã thay đổi trong HTTP/2 đối với HTTP/1.1 là cách ngữ nghĩa HTTP (ví dụ: "Tôi muốn PUT
tài nguyên /foo
trên máy chủ domain.com
") được vận chuyển qua dây.
Trong ánh sáng này, các API REST được xây dựng trên HTTP/1.1 sẽ tiếp tục hoạt động một cách minh bạch như trước đây, không có thay đổi nào được thực hiện đối với các ứng dụng. Thùng chứa web chạy các ứng dụng sẽ chăm sóc dịch định dạng dây mới thành ngữ nghĩa HTTP thông thường thay mặt cho các ứng dụng và ứng dụng chỉ thấy ngữ nghĩa HTTP cấp cao hơn, cho dù nó được chuyển qua HTTP/1.1 hay HTTP/2 trên dây.
Bởi vì định dạng dây HTTP/2 hiệu quả hơn (đặc biệt là do ghép kênh và nén), các API REST ở trên cùng của HTTP/2 cũng sẽ có lợi cho việc này.
Cải tiến chính khác trong HTTP/2, HTTP/2 Push
, nhắm mục tiêu tải xuống hiệu quả các tài nguyên tương quan và có thể không hữu ích trong REST usecase.
Yêu cầu điển hình của HTTP/2 sẽ được triển khai trên TLS. Điều này yêu cầu người triển khai di chuyển từ http
đến https
và thiết lập cơ sở hạ tầng cần thiết để hỗ trợ (mua chứng chỉ từ cơ quan đáng tin cậy, gia hạn chúng, v.v.).
Vì vậy, bạn không phải thay đổi bất kỳ điều gì liên quan đến ứng dụng web/api?Chỉ cần cấu hình nó trên máy chủ (bao gồm TLS) và nó hoạt động đúng không? – greenhoorn
Chính xác. Tôi không thể nói cho tất cả các máy chủ web ra khỏi đó, nhưng đối với Jetty (tôi là một người gửi) bạn chỉ cần cấu hình Jetty với mô-đun 'http2' và bạn tốt để đi. – sbordet