웹 소켓 초기 인식
웹 소켓 은 웹 브 라 우 저 와 서버 간 의 전 양 방향 통신 프로 토 콜 로 웹 소켓 프로 토 콜 은 IETF 포 지 셔 닝 기준 이 고 웹 소켓 API 는 W3C 포 지 셔 닝 기준 이다.웹 클 라 이언 트 가 서버 와 연결 되면 모든 데이터 통신 은 이 연결 을 통 해 이 루어 집 니 다.통신 과정 에서 JSON, XML, HTML 또는 이미지 등 임의의 형식의 데 이 터 를 보 내 는 것 을 지원 합 니 다.
WS (WebSocket) 는 HTTP 프로 토 콜 에 비해
공통점 은 주로 다음 과 같다.
악수 협의
웹 소켓 은 TCP 기반 의 응용 프로 토 콜 입 니 다. HTTP 프로 토 콜 과 관련 된 점 은 웹 소켓 의 악수 데이터 가 HTTP 서버 에 의 해 HTTP 패키지 로 처리 되 고 주로 update request HTTP 패 키 지 를 통 해 연결 되 며 이후 통신 은 모두 웹 소켓 자체 프로 토 콜 을 사용 합 니 다.
요청: TCP 연결 이 완료 되면 클 라 이언 트 가 웹 소켓 의 악수 요청 을 보 냅 니 다. 메시지 의 머리 는 다음 과 같 습 니 다.
GET /chat HTTP/1.1
Host: server.example.com
**Upgrade: websocket**
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: https://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
응답: 서버 가 요청 을 받 은 후 상태 코드 101 Switching Protocols 의 응답 을 되 돌려 줍 니 다.
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Sec-WebSocket-Protocol: chat
악수 에 성공 하면 통신 은 HTTP 프로 토 콜 을 사용 하지 않 고 웹 소켓 의 독립 된 데이터 프레임 을 사용 합 니 다.
웹 소켓 연결 닫 기 상태 메타
상태 코드
명칭.
묘사 하 다.
0-999
보존 세그먼트, 미사 용
1000
CLOSE_NORMAL
정상 폐쇄
1001
CLOSE_GOING_AWAY
터미널 이 떠 나 는 것 은 서버 오류 때 문 일 수도 있 고, 브 라 우 저 가 카드 로 연 결 된 페이지 에서 뛰 어 나 가 고 있 기 때 문 일 수도 있 습 니 다.
1002
CLOSE_PROTOCOL_ERROR
프로 토 콜 오류 로 연결 이 끊 겼 습 니 다.
1003
CLOSE_SUPPORTED
허용 되 지 않 는 데 이 터 를 받 아 연결 을 끊 었 습 니 다 (예 를 들 어 텍스트 데이터 만 받 는 터미널 에서 바 이 너 리 데 이 터 를 받 았 습 니 다)
1004
보류 하 다.
1005
CLOSE_NO_STATUS
. 예상 한 상태 코드 를 받 지 못 했다 는 뜻 입 니 다.1006
CLOSE_ABNORMAL
. 상태 코드 를 받 기 를 기대 할 때 연결 이 비정상적 으로 닫 힙 니 다 (즉, 닫 힌 프레임 을 보 내지 않 았 습 니 다).1007
Unsupported Data
형식 이 맞지 않 는 데 이 터 를 받 아 연결 이 끊 겼 습 니 다.
1008
Policy Violation
약속 에 맞지 않 는 데 이 터 를 받 아 연결 이 끊 겼 습 니 다.
1009
CLOSE_TOO_LARGE
너무 큰 데이터 프레임 을 받 아서 연결 이 끊 겼 습 니 다.
1010
Missing Extension
클 라 이언 트 는 서버 가 하나 이상 의 확장 을 상 정 하 기 를 기대 하지만 서버 가 처리 되 지 않 아 클 라 이언 트 가 연결 을 끊 었 습 니 다.
1011
Internal Error
클 라 이언 트 가 예상 치 못 한 상황 에 부 딪 혀 요청 을 막 았 기 때문에 서버 에서 연결 을 끊 었 습 니 다.
1012
Service Restart
서비스 재 부팅 으로 연결 이 끊 겼 습 니 다.
1013
Try Again Later
서버 가 임시 적 인 이유 로 연결 을 끊 었 습 니 다.
1015
TLS Handshake
보류. 연결 이 TLS 악 수 를 완료 하지 못 해 종료 되 었 음 을 표시 합 니 다 (예 를 들 어 서버 인증 서 를 검증 할 수 없 음).
자세 한 내용 은:https://wdd.js.org/websocket-close-reasons.html
부록
부록 1: 듀 플 렉 스 VS 싱글
부록 2: Python Websockets Module has no attribute
오류 보고:
AttributeError: module 'websocket' has no attribute 'WebSocket'
ws = websocket.WebSocket()
원인: 모듈 을 잘못 설 치 했 습 니 다. websocket 을 설치 해 야 합 니 다.client, websocket 이 아 닙 니 다.
참고:https://stackoverflow.com/questions/40212252/python-websockets-module-has-no-attribute
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.