| {{{#!wiki style="margin:-10px" | <tablebordercolor=#808080><tablebgcolor=#808080> | 월드 와이드 웹 관련 문서 | }}} |
| {{{#!wiki style="word-break: keep-all; margin: 0 -10px -5px;" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="letter-spacing: -1px; margin:-6px -1px -11px; word-break: keep-all" | <colbgcolor=#808080><colcolor=#fff> HTTP | 버전(HTTP/1.1 · HTTP/2 · HTTP/3) · HTTPS · 응답 코드 · 헤더 · HSTS | |
| 표현 레이어 | HTML · URL(쿼리 문자열) · wai-aria | ||
| 클라이언트 | HTTP 클라이언트 · 웹 브라우저(브라우저 전쟁 · 렌더링 엔진 · WebDriver · 브라우저 개발자 도구) | ||
| 표준화 | 웹 표준 · W3C · WHATWG | ||
| 기술 | 웹소켓 · WebGL · 웹 컴포넌트 · 프로그레시브 웹 앱 · WebAssembly · CORS · WebRTC | ||
| 기타 | 오픈 그래프 프로토콜 · MDN |
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]
- C# - signalR