3.1 HTTP메시지
HTTP에서 교환하는 정보는 HTTP메시지 라고 불리는데 리퀘스트 측 HTTP 메시지를 리퀘스트 메시지, 리스폰스 측 HTTP메시지를 리스폰스 메시지 라고 부른다.
HTTP 메시지 구조
메시지 헤더 : 서버와 클라이언트가 꼭 처리해야 하는 리퀘스트와 리스폰스 내용과 속성 등
메시지 바디: 꼭 전송되는 데이터 그 자체
3.3 인코딩으로 전송 효율을 높이다
HTTP로 데이터를 전송할 경우 그대로 전송할 수도 있지만 전송할 때에 인코딩을 실시함으로써 전송 효율을 높일 수 있다. 단, 컴퓨터에서 인코딩 처리를 해야 하기 때문에 CPU 등의 리소스는 보다 많이 소비하게 된다.
3.3.1 메시지 바디와 엔티티 바디의 차이
메시지(message)
- HTTP 통신의 기본 단위로 옥텟 시퀀스로 구성되고 통신을 통해서 전송된다.
엔티티(entity)
- 리퀘스트랑 리스폰스의 부과물로 전송되는 정보로 엔티티 헤더 필드와 엔티티 바디로 구성됩니다.
HTTP 메시지 바디의 역할은 리퀘스트랑 리스폰스에 관한 엔티티 바디를 운반하는 일입니다.
3.3.2 압축해서 보내는 콘텐츠 코딩
메일에 파일을 첨부해서 보낼 경우 같이 용량을 줄이기 위해서 파일을 zip으로 압축하고 나서 첨부해서 보내는 일이 있습니다.HTTP 에서는 이러한 일을 콘텐처 코딩이라고 불리는 기능이 구현되어 있습니다.
- 콘텐츠 코딩은 엔티티에 적용하는 인코딩을 가르키는데 인티티 정보를 유지한 채로 압축합니다.
3.3.3 분해해서 보낸느 청크 전송 코딩
HTTP 통신에서는 리퀘스트 했었던 리소스 전부에서 엔티티 바디의 전송이 완료되지 않으면 브라우저에 표시되지 않습니다. 사이즈가 큰 데이터를 전송하는 경우에 데이터를 분할해서 조금씩 표시할 수 있습니다.
엔티티 바디를 분할하는 기능을 청크 전송 코딩(Chunked transfer Coding)이라고 부릅니다.
청크 전송 코딩은 엔티티 바디를 덩어리로 분해하고 사이즈를 16진수로 사용해서 단락을 표시, 엔티티 바디 끝에는 “0”을 기록해 준다. 청크 전송 코딩된 엔티티 바디는 수신한 클라이언트 측에서 원래의 엔티티 바디로 디코딩합니다.
3.5 일부분만 받는 레인지 리퀘스트
예전에는 다운로드 중에 커넥션이 끊어지게 되면 처음부터 다시 다운로드를 해야했다. 이러한 문제를 해결하기 위해서 일반적인 **리줌(resume)**이라는 기능이 필요허개 되었습니다. 리줌을 통해 이전에 다운로드를 한 곳에서 부터 다운로드를 재개할 수 있습니다.
이 기능을 실현하기 위해서는 인티티의 범위를 지정해서 다운로드를 할 필요가 있다. 이처럼 범위를 지정하여 리퀘스트 하는 것을 레인지 리퀘스트 라고 부릅니다.
'Study > 네트워크' 카테고리의 다른 글
🔑대칭키 VS 공개키 (기본개념,비교) (0) | 2023.03.24 |
---|---|
OSI 7Layer / OSI7계층 개념 및 역할 (1) | 2022.10.13 |
[그림으로 배우는 HTTP] 웹과 네트워크의 기본에 대해 알아보자 (0) | 2022.09.13 |