티스토리 뷰
웹소켓(web socket) 이 무엇일까?
웹 소켓 프로토콜은 HTTP 와 다른 방식의 통신 프로토콜로 웹서버와 웹브라우저가 서로 실시간 메시지를 교환하는데 사용된다.
웹소켓 연결을 맺기위해서 첫번째 handshake 를 주고받은 이후 지속적으로 연결이 유지되는 것이 특징이다.
매번 메시지 전송시에 새롭게 연결을 맺을 필요가 없어서 빠르고 효율적이다.
handshake 를 위해서 HTTP 프로토콜에 의존하는 애플리케이션 계층의 프로토콜에 불과하며, 자체적인 암호화나 보안장치를 지원하지 않는다.
웹소켓과 HTTP 의 차이점은?
1) HTTP
모든 HTTP를 사용한 통신은 클라이언트가 먼저 요청을 보내고, 그 요청에 따라서 웹서버가 응답하는 형태이며, 웹서버는 응답을 보낸 후 웹 브라우저와의 연결을 끊는다.
양쪽이 데이터를 동시에 보내는 것이 아니기 때문에 이러한 통신방식을 반이중통신(half duflex)라고 한다.
2) 웹소켓
웹소켓은 클라이언트가 접속요청을 하고, 웹서버가 응답을 한후에 연결을 끊는게 아닌
연결을 계속 유지하고 클라이언트 요청없이도 데이터를 전송할 수 있는 프로토콜이다.
프로토콜 요청은 ws://~ 로 시작하며, 포트는 80번(HTTP)과 443(HTTPS)번을 사용한다.
웹소켓은 브라우저의 소켓이며, 웹소켓 프로토콜은 HTTP 와 동일하게 애플리케이션 계층에서 동작한다.
웹소켓 핸드쉐이크는 클라이언트가 먼저 핸드쉐이크 요청을 보내고 이에대한 응답을 서버가 클라이언트로 보내는 구조이다. 서버와 클라이언트는 HTTP/1.1 프로토콜을 사용하여 요청과 응답을 보낸다.
'Backend > 꾸준히 TIL' 카테고리의 다른 글
path.join(__dirname) 학습 (0) | 2023.11.08 |
---|---|
[클린아키텍쳐] 설계원칙 SOLID 3 (0) | 2023.11.07 |
[클린아키텍쳐] 설계원칙 SOLID 2 (1) | 2023.11.03 |
[클린아키텍쳐] 설계원칙 SOLID 1 (1) | 2023.11.03 |
[Github Actions] Slack-WebHook을 활용하여 PR 요청할때마다 슬랙메시지 보내주도록하기 (0) | 2023.07.06 |
- Total
- Today
- Yesterday
- gem
- 나도 할 수 있다
- git
- TDD
- vscode
- jest
- Mongoose
- 한달독서
- typeORM
- IT용어
- 한달어스
- 클린아키텍쳐
- TypeScript
- MongoDB
- Jekyll
- 디지털디톡스
- OS
- node.js
- MySQL
- 갓생살자
- RDBMS
- 스마트폰중독
- nestjs
- 참고
- nestjs jest
- 개발용어
- 바이트디그리
- Nest.js
- 습관개선
- 미완
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |