웹소켓

bp.chys·2020년 4월 24일
1

Network

목록 보기
9/11

브라우저에서 양방향 통신을 하는 웹소켓(WebSocket)

  • 웹브라우저와 웹서버를 위한 양방향 통신 규격이다.
  • 한번 접속하면 그 뒤로는 서버든 클라이언트든 자유롭게 데이터를 주고받을 수 있다.
  • 초기연결은 HTTP 방식으로 연결하고 요청에 Connection: Upgrade, Upgrade: websocket을 추가해서 보내면된다.
  • Ajax 비동기 통신은 웹 브라우징을 고속화하지만 HTTP라는 프로토콜을 사용하고 있는 이상, 병목현상을 완전히 해결할 수는 없다.

서버 푸시 기능

서버는 클라이언트의 리퀘스트를 기다리지 않고 데이터를 보낼 수 있다. 양방향 송신이 가능함을 뜻한다.

통신량의 삭감

HTTP에 비해 자주 접속하는 오버헤드가 적어지고, 헤더의 사이즈도 작기 때문에 통신량을 줄일 수 있다. 하지만 이렇게 HTTP에 접속을 한번은 확립해야하기 때문에 한번은 핸드쉐이크 절차를 밟을 필요가 있다.

그럼에도 불구하고 왜 HTTP는 이렇게 까지 많이 사용되고 있는가?

많은 이유 중 하나는 기업이나 조직이 설정한 방화벽과 관련이 있다. 방확벽의 기본 기능 중에 지정된 프로토콜이나 포트 번호 이외의 패킷은 통과 시키지 않는다는 기능이 있어 이로 인해 새로운 프로토콜이나 포트 번호를 이용하는 경우에는 설정을 변경할 필요가 생긴다.

HTTP는 많은 회사나 조직에서 허가된 통신 환경인 경우가 많기 때문에 방화벽의 설정을 변경할 필요가 없고 HTTP라면 도입이 늘어나고 있는 것이 이유의 하나다.

다른 이유로는 HTTP 클라이언트인 브라우저가 보급되어 있는 것이나 HTTP 서버가 많이 보급되고 있는 것 등의 이유도 있을 수 있다.


참고자료
그림으로 배우는 HTTP와 네트워크

profile
하루에 한걸음씩, 꾸준히

0개의 댓글