on
2. HTTP 기본 - 비연결성과 HTTP 메세지
2. HTTP 기본 - 비연결성과 HTTP 메세지
https://www.inflearn.com/course/http-웹-네트워크/dashboard
본 게시글은 위 링크에 나와있는 강의의 내용을 재구성한 게시글입니다. 이미지 자료 또한 강의에 있는 일부분을 사용했습니다.
HTTP는 기본적으로 연결을 유지하지 않는 모델이다. 연결을 유지하지 않는다 함은, 클라이언트가 요청을 보내고 서버가 응답을 하면 그 관계를 아예 끊어버리는 것이다. 이는 서버의 리소스를 매우 효율적으로 사용할 수 있게하는 장점이 있다. 반면 연결을 계속 유지하게 되면 서버는 연결을 유지하기 위한 서버 리소스를 계속해서 소모하기 때문에 비효율이 발생한다.
연결을 유지하지 않는 모델을 그림으로 표현하면 다음과 같다.
비연결성의 한계
하지만 비연결성은 계속해서 들어오는 요청과 TCP/IP 연결을 새로 맺어야 한다. 가뜩이나 3 way handshake로 인해서 시간이 더 추가된다. 웹 브라우저로 사이트를 요청하면 HTML뿐만 아니라 js, css, 이미지 파일등과 같은 수 많은 자원이 함께 전송이 되어야 하는데 비연결성에서는 웹사이트가 전송해야하는 리소스의 양에 따라 페이지를 렌더링하는데 드는 시간이 많이 든다.
지금은 이를 HTTP 지속 연결로 문제를 해결했고 HTTP/2, HTTP/3에서 더 많은 최적화가 되어있다.
HTTP 메세지
HTTP 헤더
HTTP 전송에 필요한 모든 부가정보를 전달한다. 메세지 바디의 내용, 메세지 바디의 크기, 압축, 인증, 요청 클라이언트 정보, 서버 애플리케이션 정보, 캐시 관리 정보 등등
필요시 임의의 헤더 추가 가능
HTTP 메시지 바디
실제 전송할 데이터
HTML문서, 이미지, 영상 JSON 등등 byte로 표현할 수 있는 모든 데이터 전송 가능
from http://wisehero10.tistory.com/14 by ccl(A) rewrite - 2021-12-04 16:02:29