10월, 2013의 게시물 표시

웹소켓 프레임 설명 ( frezi )

발췌( http://prezi.com/h3gk0t0bs3sy/websocket/# )

[HTML5] WebSocket 서버의 handshake

이미지
발췌 [HTML5] WebSocket 서버 순서도 blocking socket을 기준으로 함. 발췌 [HTML5] WebSocket 서버의 handshake WebSocket protocol 문서중 서버의 handshake에 필요한 내용을 발로 번역함. 원문:  http://www.whatwg.org/specs/web-socket-protocol/ 아래 내용은 클라이언트에서 최초 접속 후 open status 로 가기 위한 handshake 과정이다. handshake가 완료되고 open된 상태 이후에 나머지 law data 송수신은 IRC 프로토콜을 차용하든 직접 규약을 정하든, 서비스별 WebSocket 서버와 클라이언트가 정의한 subprotocol에 의한 통신을 하면 됨. 6.1 Reading the client's opening handshake 앞으로 문서에서 예제로 사용할 클라이언트 handshake 데이터는 아래 블록에 있는 데이터를 기준으로 한다. GET /echo HTTP/1.1 Upgrade: WebSocket Connection: Upgrade Host: localhost:8888 Origin: http://example.com Sec-WebSocket-Key1: 3e6b263  4 17 80 Sec-WebSocket-Key2: 17  9 G`ZD9   2 2b 7X 3 /r90 WjN}|M(6 Line 1   - 첫번째 라인은 항상 'GET' + 공백문자(U+0020) 로 시작해야 하며 모든 데이터는 UTF-8 인코딩이어야 한다.   - 공백문자(U+0020)를 기준으로 토큰을 나눈다고 가정했을 때,     - 두번째 토큰인 /echo 는 resource이다. 시작은 항상 슬래쉬(/ = U+002F)이며 resource에 포함될 수 있는 문자의 범위는 U+0021 ~ U+007E 이다.     - 세번째 토큰인 HTTP/1.1 은 무시해도 좋다.     - 라인의 끝은 항상 C