Sec-WebSocket-Version header

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Tiêu đề HTTP Sec-WebSocket-Version requestresponse header được sử dụng trong bắt tay mở WebSocket để cho biết phiên bản giao thức WebSocket được máy khách hỗ trợ, và các phiên bản giao thức được máy chủ hỗ trợ nếu nó không hỗ trợ phiên bản được chỉ định trong yêu cầu.

Tiêu đề chỉ có thể xuất hiện một lần trong yêu cầu, và chỉ định phiên bản WebSocket mà ứng dụng web đang sử dụng. Phiên bản hiện tại của giao thức tại thời điểm viết bài là 13. Tiêu đề được tác nhân người dùng tự động thêm vào yêu cầu khi kết nối WebSocket được thiết lập.

Máy chủ sử dụng phiên bản để xác định xem nó có thể hiểu giao thức hay không. Nếu máy chủ không hỗ trợ phiên bản, hoặc bất kỳ tiêu đề nào trong bắt tay không được hiểu hoặc có giá trị không chính xác, máy chủ nên gửi phản hồi với trạng thái 400 Bad Request và đóng socket ngay lập tức. Nó cũng nên bao gồm Sec-WebSocket-Version trong phản hồi 400, liệt kê các phiên bản mà nó hỗ trợ. Các phiên bản có thể được chỉ định trong các tiêu đề riêng lẻ, hoặc dưới dạng giá trị phân cách bằng dấu phẩy trong một tiêu đề duy nhất.

Tiêu đề không nên được gửi trong phản hồi nếu máy chủ hiểu phiên bản được chỉ định bởi máy khách.

Loại tiêu đề Response header
Forbidden request header Có (tiền tố Sec-)

Cú pháp

Yêu cầu

http
Sec-WebSocket-Version: <version>

Phản hồi (chỉ khi có lỗi):

http
Sec-WebSocket-Version: <server-supported-versions>

Chỉ thị

<version>

Phiên bản giao thức WebSocket mà máy khách muốn sử dụng khi giao tiếp với máy chủ. Số này nên là phiên bản mới nhất có thể được liệt kê trong IANA WebSocket Version Number Registry. Phiên bản cuối cùng mới nhất của giao thức WebSocket là phiên bản 13.

<server-supported-versions>

Khi có lỗi, danh sách phân cách bằng dấu phẩy các phiên bản giao thức WebSocket được máy chủ hỗ trợ. Tiêu đề không được gửi trong phản hồi nếu <version> được hỗ trợ.

Ví dụ

Bắt tay mở WebSocket

Phiên bản được máy khách hỗ trợ được chỉ định trong yêu cầu bắt tay WebSocket ban đầu. Đối với giao thức hiện tại, phiên bản là "13", như được hiển thị dưới đây.

http
GET /chat HTTP/1.1
Host: example.com:8000
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13

Nếu máy chủ hỗ trợ phiên bản 13 của giao thức, thì Sec-WebSocket-Version sẽ không xuất hiện trong phản hồi.

Đặc tả

Specification
The WebSocket Protocol
# section-11.3.5

Tương thích trình duyệt

Xem thêm