- 웹소켓이란
클라이언트와 서버간의 양방향 통신을 가능하게 하는 프로토콜로
한번 연결이 맺어지면 끊지 않고 지속적으로 데이터를 주고 받을 수 있다.
- 웹소켓의 특징
1. 풀 이중 통신(Full-Duplex)
클라이언트와 서버가 동시에 데이터를 주고받을 수 있다.
HTTP처럼 요청-응답 방식이 아니라 한쪽이 데이터를 보내면
바로 전달된다.
2. 연결 유지(Persistent Connection)
일반 HTTP 요청은 요청-응답 후 연결이 끊어지지만
웹소켓은 연결을 계속 유지한다.
실시간 데이터 전송이 필요한 애플리케이션에서 매우 유용하다.
3. 헤더가 가볍다
웹소켓 연결 후에는 추가적인 HTTP 헤더가 필요하지 않아서 네트워크 비용이 줄어든다.
- 웹소켓의 동작 방식
1. 웹소켓 핸드셰이크
기본적으로 HTTP 프로토콜을 사용하여 연결을 시작한다.
클라이언트가 서버로 업그레이드 요청을 보내 웹소켓 통신으로 변경할 것을 요청한다.
서버가 요청을 승인하면 이후부터는 웹소켓 프레임을 사용하여 데이터를 주고받는다.
2. 연결 유지
핸드 셰이크가 오나료되면 클라이언트와 서버간의 연결이 지속적으로 유지된다.
이제는 추가적인 요청 없이도 클라이언트와 서버가 서로 데이터를 주고 받을 수 있다.
3. 데이터 송수신
웹소켓 연결이 유지되면 양방향 데이터 전송이 가능하다.
이때 웹소켓은 프레임 단위로 데이터를 주고받는다.
4. 연결 종료
웹소켓 연결을 종료할 때는 Close Fame(연결 종료 프레임)을 사용한다.
클라이언트 또는 서버가 연결 종료 요청을 보내면 상대방이 응답하고 연결이 닫힌다.
'개발학습기' 카테고리의 다른 글
| STOMP(Simple Text Oriented Messaging Protocol) (0) | 2025.02.11 |
|---|---|
| 벌크 인서트(Bulk Insert) (0) | 2025.02.02 |
| 쿠키(Cookie) (1) | 2024.12.29 |
| 세션(Session) (0) | 2024.12.29 |
| FTP(File Transfer Protocol) (0) | 2024.12.29 |