자 봐라


HTTP 문서는 그래. 제일 쉬운 아파치를 예로 들면

니들이 URL로 어떤 파일(물론 여기에 변수를 실을 수도 있겠지만)을 요청한다


GET 방식 REQUEST가 서버로 흘러들어간다 (패킷형태임)

그러면 아파치가 "음 이 파일이 좋겠구만" 하고 Respond를 한다 (역시 패킷임)


그게 끝임

하나의 문서에는 HTML 및 이미지, 외부 스크립트등 무수히 많은 요소들이 결합되어있는데

그런 개개개개개별의 모든 요청이 패킷형태로 서버로 날아가고

서버는 이에 응답하고를 반복한다구.


근데 생각해보자.

꼭 브라우저가 서버에 요청할 때에만 어떤 값이 와야하는거냐?


좀 짜증나잖아.

아니 서버가 지 할일 끝나면, 혹은 어떤 이벤트가 발생되었을 때

지가 먼저 브라우저한테 값 던져줘도 되잖아? 

돼? 안돼?


돼! 해서 웹소켓이 나온거다.


웹소켓은 서버와 최초 핸드셰이크 이후에는 지속적인 연결상태를 유지한다.

그리고 필요에 따라서 데이터를 수신하고, 지 필요할 때 거꾸로 브라우저에 던지는 것이 가능해진단 말야.


게다가 패킷을 만드는데 소모되는 불필요한 트래픽이 방지되고

또 리소스도 절약될 수 있겠지?


여러모로 쓸모있는 웹소켓이야 ^^