웹소켓 (Web Socket)

Web socket



하나의 TCP 접속에 full-duplex channel 제공하는 통신 protocol이다.


일반 소켓 통신과의 차이점으로는 bytes stream 사용하지 않고 UTF8 format message stream만을 허용 한다는 점이다.


 Web socket 연결 설정을 위해 client server간의 hand-shake 필요한데 과정은 다음과 같다.


1.    Browser key 가지고 web server web socket 사용할 있는지 확인한다.


2.    Web server browser에게 준비가 되었다는 신호와 함께 연결 하라는 신호를 보낸다.


3.    Browser Web socket 통해서 web server 데이터를 교환한다.


4.    Web browser 데이터 교환이 끝나면 web server에게 연결을 종료 한다는 신호를 보낸다.


과정이 끝나면, TCP 연결을 통하여 응용 계층 protocol HTTP에서 web socket 바뀌게 되는데 HTTP 완전하게 무시되고, web socket connection 끊일 때까지 끝점에서 web socket protocol 사용하여 data 주고받을 있다.


장점으로는 Active X 사용하지 않고 TCP/IP socket 통신을 구현할 있다는 점과, HTTP 헤더크기도 크게 압축할 있어 네트워크의 과부하를 줄이고 APP 반응성을 높일 있다는 장점이 있다.