Protocol, websocket, TCP, HTTP
* 영어표기가 디폴트, 이하 한글표기
* Angular 기준
0. Protocol ~ 프로토콜이 뭔가요?
- Protocol: 의례, (조약의) 초안[원안], (합의안·조약의) 보충 협약.
- 컴퓨터 내부 혹은 컴퓨터 사이에서 데이터의 교환 방식을 약속 ~ 정의하는 규칙 체계
- 참고: https://steemit.com/kr-dev/@wonnieyoon/it-story
1. websocket ~ 웹소켓
- TCP 연결을 통해 실시간 전이중통신을 가능케 하는 프로토콜
- HTML5 표준기술을 바탕으로함 (이 또한 기기의 발전으로 가능해진 기술)
- -> 사용자의 브라우저와 서버 사이의 인터액티브 통신 세션을 설정할 수 있게 하는 고급기술
- 웹 소켓 API를 통해 서버로 메세지를 보내고, 서버의 응답을 위해 서버를 폴링하지 않아도 이벤트 중신의 응답 수신 가능
1-1. 웹 소켓의 역사
- 문서 전달과 하이퍼링크를 통한 문서 연결을 위해 HTTP 가 개발되었는데,
- 시대의 흐름에 따라 데이터의 양방향 통신이 필요해짐. 그래서 웹 소켓이 탄생하였다.
- 요약하자면 / 자연스럽게, HTML5 (기기 스펙이 좋아짐)에 따라 기능이 발전하였다.
1-2. 방식
- 전이중 통신: 말 그대로 양방향으로 이중 통신이 가능함.
- 예를 들면 HTTP 는 단방향 (요청 →, 응답←) 인데. 양방향(↔)이 가능한것.
- 연속적인 데이터 전송(실시간)의 신뢰성 보장을 위한 Handshake 과정을 진행
- (기존: TCP기반 / 진화된 양방향: HTTP 기반의 웹 소켓 ) + Handshake
HTTP | 웹 소켓 |
● 클라이언트와 서버간 접속 유지 X (요청 ~ 응답 까지 완료시, 수립했던 연결 끊김) ● 요청 →, 응답← / 단방향 ● 따라서, 서버에서 클라이언트로 요청이 불가능 ● REST 한 방식의 HTTP 통신에서는 다량의 URL 과 HTTP method 를 통해 웹 어플과 상호작용 하였음 |
● 클라이언트와 서버간 접속 유지 O ● 요청과 응답 ↔ / 양방향 ● 따라서, 서버에서 클라이언트로 요청이 가능 ● 하나의 URL 로, 모든 메세지는 초기에 설정한 TCP 연결을 통해 이루어짐 |
? TCP: 전송 제어 프로토콜
- 인터넷 프로토콜 스위트(IP)의 핵심. IP와 함께 TCP/IP 라는 명칭으로 널리 불린다.
- 근거리 통신망, 인트라넷, 인터넷에 ~ 연결된 컴퓨터에서 실행하는 프로그램간에 일련된 옥텟(8비트, 바이트와 같은 개념)을 안정적으로, 순서대로, 에러 없이 교환 가능하다.
- 말 그대로 제어를 통해 안정적으로 데이터를 제어하는 프로토콜
- 전송 계층에 위치 / 계층 구조의 네트워크 구성요소와 프로토콜내에서 송신자와 수신자를 연결하는 통신 서비스를 제공
?HTTP (Hyper Text Transfer Protocol): w3 상에서 정보를 주고받을 수 있는 프로토콜
- 주로 HTML 문서를 주고받는데에 사용됨
- TCP 를 사용하며. Http/3 부터는 UDP 를 사용. 80번 포트를 이용한다는데... 가볍게 이해하고 다음에 이어서 공부할것
프로토콜에 대해 공부했노라.