Sec-WebSocket-Key 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-Key request header được sử dụng trong bắt tay mở WebSocket để cho phép máy khách (tác nhân người dùng) xác nhận rằng nó "thực sự muốn" yêu cầu rằng máy khách HTTP được nâng cấp thành WebSocket.
Giá trị của key được tính toán bằng thuật toán được định nghĩa trong đặc tả WebSocket, vì vậy điều này không cung cấp bảo mật. Thay vào đó, nó giúp ngăn các máy khách không phải WebSocket vô tình, hoặc thông qua việc lạm dụng, yêu cầu kết nối WebSocket.
Tiêu đề này được tác nhân người dùng tự động thêm khi script mở WebSocket; không thể thêm bằng cách sử dụng phương thức fetch() hoặc XMLHttpRequest.setRequestHeader().
Tiêu đề phản hồi Sec-WebSocket-Accept của máy chủ nên bao gồm giá trị được tính toán dựa trên giá trị key được chỉ định.
Tác nhân người dùng sau đó có thể xác thực điều này trước khi xác nhận kết nối.
| Loại tiêu đề | Request header |
|---|---|
| Forbidden request header | Có (tiền tố Sec-) |
Cú pháp
Sec-WebSocket-Key: <key>
Chỉ thị
Ví dụ
>Bắt tay mở WebSocket
Máy khách sẽ khởi tạo bắt tay WebSocket với yêu cầu như sau.
Lưu ý rằng điều này bắt đầu như yêu cầu HTTP GET (HTTP/1.1 trở lên), ngoài Sec-WebSocket-Key, yêu cầu bao gồm tiêu đề Upgrade, cho biết ý định nâng cấp từ HTTP lên kết nối WebSocket.
GET /chat HTTP/1.1
Host: example.com:8000
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
Phản hồi từ máy chủ nên bao gồm tiêu đề Sec-WebSocket-Accept với giá trị được tính từ tiêu đề Sec-WebSocket-Key trong yêu cầu, và xác nhận ý định nâng cấp kết nối lên kết nối WebSocket:
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Đặc tả
| Specification |
|---|
| The WebSocket Protocol> # section-11.3.1> |
Tương thích trình duyệt
Xem thêm
Sec-WebSocket-AcceptSec-WebSocket-VersionSec-WebSocket-ProtocolSec-WebSocket-Extensions- Bắt tay WebSocket trong Viết WebSocket servers
- Cơ chế nâng cấp giao thức HTTP