나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-09-11 14:10:19

웹소켓

1. 개요2. 장점3. 단점4. WS? WSS?5. 대표적인 프레임워크 또는 라이브러리

1. 개요

Websocket

웹소켓은 TCP통신 방식으로 서버와 클라이언트 사이에 데이터를 주고 받을 수 있는 기술이다. RFC 6455 에 기재 되어있다.

2. 장점

웹소켓은 서버와 클라이언트 사이에서 데이터를 주고 받을 수 있는데 이는 다시말해 서로 메신저를 이용해 1:1 채팅을 한다고 볼수 있다. HTTP REST 메서드인 POST 보다 빠르다. 이런 장점 때문에 여러 API 또는 여러 게임 멀티플레이에도 사용된다.

3. 단점

일부 웹 브라우저가 지원을 하지 않는다. 프레임워크는 많으나 프로그래머가 아니면 접근하기 힘들다.

4. WS? WSS?

웹소켓 URI에는 2가지의 종류가 있는데 ws:// 로 시작하는 경우와 wss:// 로 시작하는 경우다. ws은 WebSocket의 약자이고, wss는 WebSocket Secure의 약자이며 그냥 HTTP, HTTPS 와 같은 개념인 것이다.

그래서 보안을 신경쓰는 HTTPS를 사용하는 웹 사이트의 경우에는 ws대신 wss를 써야 한다.
웹 소켓 클라이언트를 연결할 때 wss가 아니면 연결 시도 조차 되지 않기 때문이다.
그래서 일반적으로 운영되는 서비스의 API는 wss를 많이 사용한다.

5. 대표적인 프레임워크 또는 라이브러리

Python - websockets
Javascript - 자체 API 또는 ws, websocket[1], socket.io[2]
Swift - Starscream
Go - gorilla/websocket [3]

[1] npm에서 다운받을 수 있다.[2] 이건 정확히는 웹소켓 에뮬레이션이다.[3] go get github.com/gorilla/websocket

분류