소켓 개념을 네트워크 환경에서 확장한 것이 네트워크 소켓
IP 주소와 포트 번호를 조합하여 통신하는 통로
네트워크 소켓을 이용하면 인터넷이나 로컬 네트워크에서 컴퓨터 간에 데이터를 주고받을 수 있음
네트워크 소켓에는 크게 두 가지 방식이 있음
📡 통신 과정(TCP)
80번 포트에서 클라이언트 요청을 기다림https://www.example.com에 접속네트워크 소켓(TCP)은 전화 통화와 같다고 볼 수 있음
웹소켓은 웹 환경에서 실시간 양방향 통신을 가능하게 해주는 프로토콜
기존 HTTP는 요청-응답 방식이라 서버가 먼저 데이터를 보내기 어려웠음
웹소켓은 네트워크 소켓의 한 종류로, 웹 환경에서 브라우저와 서버 간의 통신을 위해 최적화된 기술
주로 채팅 서비스, 주식 거래, 실시간 알림, 게임 등 실시간 데이터 전송이 필요한 곳에서 사용
📡 통신 과정(HTTP를 이용해 연결을 맺은 뒤, 실시간으로 데이터를 주고 받음)
ws://example.com:8080 또는 wss://example.com:443101 Switching Protocols 응답)웹소켓은 카카오톡 단톡방과 같다고 볼 수 있음
| 네트워크 소켓(Network Socket) | 웹소켓(WebSocket) | |
|---|---|---|
| 정의 | 네트워크에서 IP와 포트를 이용해 통신하는 소켓 | 웹 환경에서 실시간 양방향 통신을 가능하게 하는 프로토콜 |
| 프로토콜 | TCP 또는 UDP 사용 | 독자적인 WebSocket 프로토콜 사용 |
| 연결 방식 | TCP : 연결 지향적(전화 통화처럼 연결 유지) UDP : 연결 없이 데이터 전송 가능(무전기처럼 빠름) | 초기 연결은 HTTP 요청으로 시작, 이후 연결을 유지하면서 실시간 데이터 전송 가능 |
| 데이터 송수신 | TCP : 안정적이지만 매번 요청 후 응답 UDP : 빠르지만 순서 보장 X | 지속적인 연결 유지 + 서버와 클라이언트가 자유롭게 데이터 전송 가능 |
| 용도 | 일반적인 네트워크 애플리케이션(웹, FTP, 게임 서버 등) | 웹 기반 실시간 애플리케이션(채팅, 주식, 알림, 게임) |
| 브라우저 지원 | 직접 사용 어려움(브라우저에서 네트워크 소켓을 다룰 수 없음) | 웹 브라우저에서 자바스크립트로 직접 사용 가능(WebSocket API) |