TCP 통신 ( socket 통신 )
연결지향적인 양방향 통신
Handshake라는 과정을 통해 통신을 할 수 있는 상태인지 먼저 인증한 뒤 통신
언제든 실시간으로 상태를 주고받을 수 있음
소켓을 이용해서 양방향 통신이 가능
클라이언트에서 발신 또는 수신 <=> 서버에서 발신 또는 수신
HTTP 통신
비연결지향적인 단방향 통신
요청을 하면 그에 해당하는 값으로 답을 줌
단방향 통신으로 항상 연결되어 있는 상태는 아님
클라이언트가 요청 => 서버에서 응답
HTTP 통신이 이뤄지는 방식

HTTP 통신은 TCP 위에서 이루어진다
HTTP 통신이 이뤄지려면 TCP를 거쳐야 해...?
TCP 통신을 위해서는 연결하기 위한 3-way handshake 과정과 연결을 끊기 위한 4-way handshake 과정을 거치는데 이 사이의 데이터 전송 부분만 HTTP 통신이 맡아서 하는 것!
따라서 HTTP 통신은 TCP를 거쳐야 하기 때문에 handshake 과정을 모두 거치는 통신
TCP에서 소켓을 이용해서 연결과 끊음을 진행
왜 HTTP는 Stateless 할까?
HTTP는 TCP 위에서 돌아가는데 왜 Stateless 할까?
하나의 TCP 연결 아래에서 여러 개의 HTTP 요청이 파이프라인화 되어있기 때문
각각의 HTTP 요청은 다른 HTTP 요청의 데이터에 의존하지 않음

위의 그림처럼 노란 영역인 TCP 연결 안에서 녹색 영역인 HTTP 요청이 독립적으로 존재
따라서 HTTP는 상태를 유지하지 않음
Stateless 서버와 클라이언트가 연결된 다음 서버가 클라이언트가 요청한 결과에 대해서 잊어버리는 것
'FE Study' 카테고리의 다른 글
| [FE] Reflow / Repaint (0) | 2024.07.09 |
|---|---|
| [FE] 브라우저 렌더링 (0) | 2024.07.03 |
| CDN (0) | 2024.06.22 |
| DNS (0) | 2024.06.20 |
| http / https (0) | 2024.06.19 |