본문 바로가기

WebSocket

웹소켓 프레임 구조 WebSocket Data Frame Format FIN : 현재 패킷이 마지막 조각임을 나타냅니다. RSV1 ~ 3 : 특별히 지정되지 않은 경우 기본적으로 항상 0이어야 합니다. 0이 아닌 값을 지정할 경우 에러를 발생합니다. (발생시켜야 합니다.)OPCODE : 패킷의 타입입니다.MASK : PayloadData가 마스킹되었는지 여부를 나타냅니다. 클라이언트가 서버로 보내는 패킷은 항상 1이어야 합니다. 서버가 클라이언트로 보내는 패킷은 항상 0이어야 합니다.PAYLOAD_LEN : PayloadData의 길이입니다. 이 값이 125이하일경우 이 필드 자체가 PayloadData의 실제 길이를 나타내며 126/127일 경우 뒤따라올 EXTENDED_PAYLOAD_LEN의 길이를 나타내는 플래그 역할.. 더보기
[HTTP] 웹소켓 핸드쉐이킹 먼저 클라이언트에서 웹소켓 오픈 시, 서버로 아래와 같은 요청이 온다.(일반적인 HTTP 요청의 형태에 몇몇 추가적인 헤더를 담아서 보내는 방식이다.) HTTP/1.1 / GET Connection:Upgrade Sec-WebSocket-Key:alyAT1R7MR+KBq8VjSX0ug== Sec-WebSocket-Version:13 Upgrade:websocket 여기서 살펴보야아 할 값은 Sec-WebSocket-Key인데, 이 값은 서버가 웹소켓 프로토콜을 제대로 이해하고 있는지를 구별하는 역할을 한다. 이제 서버에서는 프로토콜 업그레이드에 대한 응답을 보내주어야 한다.상태 코드는 101번이고, 반드시 Sec-WebSocket-Accept 헤더에 알맞은 값을 채워서 보내야한다. 클라이언트로부터 받은 .. 더보기