반응형
웹 소켓은 두 프로그램 간의 메시지 교환을 위한 통신 방법 중 하나
- 현재 인터넷 환경(HTML5)에서 많이 사용된다.
- 웹 소켓을 지원하는 브라우저의 경우 웹 소켓 프로토콜을 지원
- W3C와 IETF에 의해 자리잡은 표준 프로토콜 중 하나
웹 소켓의 특징
웹 소켓이 나온 이유는 특징과 연관이 된다
- 양방향 통신(Full-Duplex)
- 데이터 송수신을 동시에 처리할 수 있는 통신 방법
- 클라이언트와 서버가 서로에게 원할 때 데이터를 주고 받을 수 있다
- 통상적인 Http 통신은 Client가 요청을 보내는 경우에만 Server가 응답을 하는 단방향 통신
- 실시간 네트워킹(Real Time-Networking)
- 웹 환경에서 연속된 데이터를 빠르게 노출
- ex) 채팅, 주식, 비디오 데이터
웹 소켓 동작 방법
웹 소켓도 핸드 쉐이킹이 필요하고, Socket프로토콜이 아닌 HTTP 또는 HTTPS 프로토콜을 통해 이루어 진다
웹 소켓 요청
- HTTP 버전은 1.1이상
- 반드시 GET메서드를 사용해야 한다
- Upgrade정보는 서버, 전송, 프로토콜 연결에서 다른 프로토콜로 업그레이드 또는 변경하기 위한 규칙이다
- Sec-Websocket-Key는 클라이언트가 요청하는 여러 서브 프로토콜을 의미한다
웹 소켓 응답
101 Switching Protocols가 Response로 오면 웹소켓이 연결 된 것이다
- Sec-Websocket-Accept는 요청에서의 Key값을 계산한 값으로 신원 인증에 필요한 헤더이다
위와같이 핸드 쉐이크가 완료되면 프로토콜이 ws로 변경된다
또는 wss와 같이 데이터 보안을 위해 SSL을 적용한 프로토콜로 변경된다
Message : 여러 frame이 모여서 구성하는 하나의 논리적 메시지 단위
Frame : communication에서 가장 작은 단위의 데이터, 작은 헤더 + payload로 구성
웹소켓 통신에 사용되는 데이터 : UTF8 인코딩
0x00 - 보내고 싶은 데이터 - 0xff 의 구성으로 데이터가 오간다
웹 소켓 프로토콜 특징
- 최초 접속시에만 http프로토콜 위에서 handshaking을 하기 때문에 http header를 사용한다
- 웹소켓을 위한 별도의 포트는 없고, 기존 포트를 사용한다
- 프레임으로 구성된 메시지라는 논리적 단위로 송수신 한다
- 메시지에 포함될 수 있는 교환 가능한 메시지는 텍스트와 바이너리 뿐이다
반응형
'IT지식' 카테고리의 다른 글
[Ionic]하이브 프레임워크 Ionic 이란? (0) | 2023.10.10 |
---|---|
[git]merge/commit/checkout 사용법 (0) | 2023.08.24 |
[Git]revert 한 branch 다시 merge 하는 법 (0) | 2023.08.23 |
DNS란 무엇일까? -Softeasy (2) | 2023.06.04 |
IFrame 이란? -softeasy- (0) | 2023.05.17 |
댓글