2011-12-11 30 views

Trả lời

29

HTTP Upgrade được sử dụng để chỉ một sở thích hoặc yêu cầu chuyển sang một phiên bản khác của HTTP hoặc giao thức khác, nếu có thể:

Các Upgrade chung-header cho phép khách hàng để xác định giao thức truyền thông thêm gì nó hỗ trợ và muốn sử dụng nếu máy chủ tìm thấy nó thích hợp để chuyển giao thức. Máy chủ PHẢI sử dụng trường Tiêu đề nâng cấp trong vòng 101 (Chuyển giao thức) phản hồi để cho biết (các) giao thức nào đang được chuyển.

Upgrade  = "Upgrade" ":" 1#product 

Ví dụ,

Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 

Các lĩnh vực tiêu đề nâng cấp được thiết kế để cung cấp một cơ chế đơn giản cho chuyển đổi từ HTTP/1.1 với một số khác, giao thức không tương thích.

Theo IANA register, chỉ có 3 đề cập đã đăng ký của nó (bao gồm cả một đề cập đến trong đặc tả HTTP).

Hai khác cho:

  • Upgrading to TLS Within HTTP/1.1 (gần như không bao giờ được sử dụng, không nên nhầm lẫn với HTTP over TLS, trong đó xác định HTTPS như được sử dụng rộng rãi). Nâng cấp này cho phép for a similar mechanism to STARTTLS in other protocols (ví dụ: LDAP, SMTP, ...) để có thể chuyển sang TLS trên cùng một cổng với kết nối đơn giản, sau khi trao đổi một số thông báo giao thức ứng dụng, trái ngược với việc trao đổi toàn bộ HTTP đầu SSL/TLS mà không cần biết nó nằm trên đầu trang của TLS (cách HTTPS hoạt động).

  • Upgrading to WebSockets (vẫn là bản nháp).

+0

Chà, rất kỹ lưỡng. Cảm ơn nhiều! – Randomblue

+0

@Bruno, Giao thức nâng cấp tùy chỉnh hoạt động như thế nào? Ví dụ. nếu máy chủ của chúng tôi muốn hỗ trợ ['Upgrade: firepresence'] (http://lucumr.pocoo.org/2012/9/24/websockets-101/) một giao thức tùy chỉnh, làm cách nào chúng tôi có thể yêu cầu trình duyệt gửi yêu cầu Nâng cấp ? – Pacerier

+0

@Pacerier Tôi không chắc chắn. Tôi đoán bạn cần phải thay đổi chính bản thân trình duyệt (hoặc viết một plugin/mở rộng cho nó nếu có thể), một chút giống như những gì đã được thực hiện cho các websockets. – Bruno

Các vấn đề liên quan