9. 확장 - WebSocket 프로토콜 번역
3173 단어 websocket
9.1.협상 확장
클라이언트는 | Sec-WebSocket-Extensions| 헤더 필드를 포함하여 확장을 요청하여 정상적인 HTTP 헤더 규칙([RFC2616], 4.2절 참조)에 따라 헤더 필드의 값을 다음 ABNF에 따라 정의합니다 [RFC2616].이 장에서 사용하는 ABNF 구문/규칙은 [RFC2616]에서 유래한 것으로 암시적 *LWS 규범을 포함합니다.클라이언트나 서버가 협상 단계에서 수신한 값이 아래의 ABNF와 일치하지 않으면 기형적인 데이터의 수신자는 즉시 _WebSocket 접속 실패 _.
Sec-WebSocket-Extensions = extension-list
extension-list = 1#extension
extension = extension-token *( ";" extension-param )
extension-token = registered-token
registered-token = token
extension-param = token [ "=" (token | quoted-string) ]
; ,
; ’token’ABNF
다른 HTTP 헤더 필드와 마찬가지로 이 헤더 필드는 여러 줄에 걸쳐 분할되거나 조합될 수 있으므로 다음과 같습니다.
Sec-WebSocket-Extensions: foo
Sec-WebSocket-Extensions: bar; baz=2
완전히
Sec-WebSocket-Extensions: foo, bar; baz=2
모든 extension-token은 egistered token이어야 합니다. (11.4절 참조)확장에 제공된 모든 매개 변수는 확장으로 정의되어야 합니다.클라이언트는 서버가 확장을 사용하고 싶다고 표시하지 않으면 모든 확장을 사용해야 합니다.
확장 순서가 중요합니다.여러 확장 간의 상호작용은 확장을 정의한 문서에 정의할 수 있다.이러한 정의가 없는 상황에서 이 요청의 클라이언트가 열거한 헤더 필드는 사용하고 싶은 헤더 필드의 선호도를 나타낸다. 첫 번째 옵션이 가장 좋다.서버에서 응답에 열거한 확장은 연결에 실제로 사용되고 있는 확장을 나타냅니다.확장은 데이터와/또는 그룹 프레임을 수정해야 하며, 데이터의 조작 순서는 열린 단계에서 악수하는 동안 서버 응답에 열거된 확장 순서와 같다고 가정해야 한다.
예를 들어 두 개의 확장 "foo"와 "bar"가 있고 서버가 보내는 헤더 필드 | Sec-WebSocket-Extensions | 값 "foo", "bar"가 있으면 데이터의 동작은 bar (foo (data) 로 바뀌며, 데이터 자체를 변경하거나 압축 (stack) 할 수 있는 그룹 프레임을 변경합니다.
허용 가능한 확장 헤더 필드 (참고: 가독성을 위해 긴 줄이 축소됨) 의 비규범화 예:
Sec-WebSocket-Extensions: deflate-stream
Sec-WebSocket-Extensions: mux; max-channels=4; flow-control,
deflate-stream
Sec-WebSocket-Extensions: private-extension
서버는 하나 이상의 확장 클라이언트가 요청한 |Sec-WebSocket-Extensions|헤더 필드를 포함하여 하나 이상의 확장을 수락합니다.모든 확장 파라미터의 해석과 고객이 요청한 파라미터 집합에 유효한 서버 응답을 구성하는 것은 각각의 확장에 의해 정의됩니다.
9.2.알려진 확장
확장은 선택적 가입을 위한 추가 프로토콜 특성을 실현하는 메커니즘을 제공했다.이 문서는 어떠한 확장도 정의하지 않았지만, 단독으로 정의된 확장을 사용할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
iPad에서 WebSocket + Authorization이 연결되지 않음발단은 iPad에서의 개발 환경을 정비하려고 했기 때문이었습니다. VPS에 개발 환경을 넣을 수 있으면 편리하다고 생각해, 를 인스톨 해, 그대로는 누구라도 사용할 수 버리므로, Apache를 리버스 프록시로 해, ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.