클라이언트와 서버 사이의 양방향 통신이 필요한 웹 어플리케이션을 만들기 위해 사용됨

WebSocket은 HTTP을 사용하여 기존의 양방향 통신 기술을 대체

프로토콜에는 **핸드셰이크(opening, closing)와 데이터 전송 (Data Transfer)**가 있다.

클라이언트와 서버의 핸드셰이크 이후 성공적으로 이루어지면 데이터 전송이 이루어짐

message 단위 데이터를 전송

opening handshake

서버의 핸드셰이크는 SHA-1 해싱과 base64-encoded 값을 반환해준다.

HTTP 상태 코드가 101이면 웹소켓으로 전환한다는 의

Closing Handshake

XMLHttpRequest와 같은 HTML 및 JavaScript API만을 사용하여 웹 브라우저에서 Sec-로 시작하는 필드를 공격잡가 설정할 수 없다.