웹소켓

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

웹소켓(WebSocket)은 하나의 TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜이다. 웹소켓 프로토콜은 2011년 IETF에 의해 RFC 6455로 표준화되었으며 웹 IDL의 웹소켓 APIW3C에 의해 표준화되고 있다.

역사[편집]

웹소켓은 TCP 기반 소켓 API를 대체할 목적으로 HTML5 사양에서 TCPConnection으로 처음 참조되었다.[1] 2008년 6월, 일련의 토론이 마이클 카터(Michael Carter)에 의해 주도되었으며, 웹소켓으로 알려진 최초 버전의 프로토콜이 탄생되었다.[2]

브라우저 구현체[편집]

구현체 상태
프로토콜 초안일 인터넷 익스플로러 파이어폭스[3] (PC) 파이어폭스 (안드로이드) 크롬 (PC, 모바일) 사파리 (맥, iOS) 오페라 (PC, 모바일) 안드로이드 브라우저
hixie-75 2010년 2월 4일 4 5.0.0
hixie-76
hybi-00
2010년 5월 6일
2010년 5월 23일
4.0 (비활성화) 6 5.0.1 11.00 (비활성화)
7 hybi-07 2011년 4월 22일 6[4][a]
8 hybi-10 2011년 7월 11일 7[6][a] 7 14[7]
13 RFC 6455 2011년 12월 10[8] 11 11 16[9] 6 12.10[10] 4.4

프로토콜 핸드셰이크[편집]

웹소켓을 연결하기 위해 클라이언트는 웹소켓 핸드셰이크 요청을 보내며, 이렇게 하면 서버는 웹소켓 핸드셰이크 응답을 아래의 예에서 보는 바와 같이 반환한다.[11]

클라이언트 요청:

GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
Origin: http://example.com

서버 응답:

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Sec-WebSocket-Protocol: chat

같이 보기[편집]

각주[편집]

내용주
  1. Gecko-based browsers versions 6–10 implement the WebSocket object as "MozWebSocket",[5] requiring extra code to integrate with existing WebSocket-enabled code.
참조주
  1. “HTML 5”. 《www.w3.org》. 2016년 4월 17일에 확인함. 
  2. “[whatwg] TCPConnection feedback from Michael Carter on 2008-06-18 (whatwg.org from June 2008)”. 《lists.w3.org》. 2016년 4월 17일에 확인함. 
  3. “WebSockets (support in Firefox)”. 《developer.mozilla.org》. Mozilla Foundation. 2011년 9월 30일. 2011년 12월 10일에 확인함. 
  4. “Bug 640003 - WebSockets - upgrade to ietf-06”. Mozilla Foundation. 2011년 3월 8일. 2011년 12월 10일에 확인함. 
  5. “WebSockets - MDN”. 《developer.mozilla.org》. Mozilla Foundation. 2011년 9월 30일. 2011년 12월 10일에 확인함. 
  6. “Bug 640003 - WebSockets - upgrade to ietf-07(comment 91)”. Mozilla Foundation. 2011년 7월 22일. 
  7. “Chromium bug 64470”. 《code.google.com》. Google. 2010년 11월 25일. 2011년 12월 10일에 확인함. 
  8. “WebSockets in Windows Consumer Preview”. 《IE Engineering Team》. Microsoft. 2012년 3월 19일. 2012년 7월 23일에 확인함. 
  9. “WebKit Changeset 97247: WebSocket: Update WebSocket protocol to hybi-17”. 《trac.webkit.org》. 2011년 12월 10일에 확인함. 
  10. “A hot Opera 12.50 summer-time snapshot”. Opera Developer News. 2012년 8월 3일. 2012년 8월 5일에 원본 문서에서 보존된 문서. 2012년 8월 3일에 확인함. 
  11. Ian Fette; Alexey Melnikov (December 2011). "Protocol Overview". RFC 6455 The WebSocket Protocol. IETF. sec. 1.2. RFC 6455. https://tools.ietf.org/html/rfc6455#section-1.2. 

외부 링크[편집]