웹 소켓을 알기전에 간단하게 소켓에 대해 알아보면 네트워크 통신에서 컴퓨터 간 데이터를 주고받을 수 있게 해주는 인터페이스를 의미한다. 즉, 네트워크를 통해 두 프로그램이 서로 대화 할 수 있도록 연결해주는 다리 같은 역할을 한다고 볼 수 있다.
소켓은 운영체제에서 제공하는 기능으로, 주로 TCP/IP 같은 네트워크 프로토콜 위에서 동작한다.
예를 들어, 우리가 편지를 주고받을 때 우체통이 필요하듯이, 네트워크에서는 소켓이 그 역할을 하게된다. 소켓은 IP 주소와 포트 번호로 식별되며, 이를 통해 특정 기기와 특정 애플리케이션을 연결한다.
웹 소켓(WebSocket)은 양방향 실시간 통신을 제공하며, 주로 채팅, 알림, 실시간 업데이트 같은 기능에 사용된다. HTTP를 기반으로 초기 연결을 설정하지만, 이후 별도의 지속적인 연결로 전환되게 된다.
1. 사용자가 WebSocket을 사용하는 웹 페이지를 연다.
2. 브라우저는 먼저 HTTP로 HTML을 요청하고, 페이지에 포함된 JavaScript가 WebSocket 연결을 시작
3. JavaScript에서 WebSocket 객체를 생성하고 서버에 연결을 요청한다.
4 브라우저는 TCP 소켓을 열고, HTTP 요청을 통해 WebSocket 핸드셰이크를 시작한다.
5. websocket 헤더는 HTTP에서 WebSocket으로 전환을 요청합니다.
6. 서버가 WebSocket 연결을 수락하면 다음과 같은 응답을 보내게 되면, TCP 소켓이 WebSocket 프로토콜로 전환이된다.
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
'🖥️ Back-end' 카테고리의 다른 글
Exception에 대해서 알아보자 (0) | 2025.04.02 |
---|---|
데이터베이스 락(Lock) 이란? (0) | 2025.03.31 |
자바의 Record 란? (1) | 2025.03.27 |
DDD (Domain Driven Design) : 도메인 주도 설계 도전 1일차 (1) | 2025.03.13 |
웹 사이트의 동작 원리 (0) | 2025.03.11 |