15.1 메시지는 컨테이너, 엔터티는 화물
주요 엔터티 헤더 필드
Untitled Database
엔터티 헤더로는 정의되어 있지 않으나, 중요한 것들
Untitled Database
15.1.1 엔터티 본문
- 본문에는 데이터만 담고, 나머지 정보는 헤더에 담는다.
- 헤더 필드의 끝을 의미하는 빈 CRLF 줄 바로 다음부터 시작한다.
15.2 Content-Length: 엔터티의 길이
- 본문의 크기를 바이트 단위로 나타낸다.
- 압축된 경우, 압축된 후의 크기를 나타낸다.
- 청크 인코딩으로 전송될 경우 없어도 된다.
15.2.1 (Content-Length의 용도 1) 잘림 검출
- 예전 HTTP에서는 커넥션이 닫히면 메시지가 끝난 것이라고 판단함.
- 문제점: Content-Length가 없으면 커넥션이 정상적으로 닫힌 것인지, 서버에 문제가 생겨 전송이 끊긴 것인지 구분할 수 없음
- 캐싱 프락시 서버: 메시지가 잘렸다는 것을 인식하지 못하면, 결함이 있는 콘텐츠를 계속해서 저장하고 제공할 수 있기 때문.
- => 해결책: Content-Length가 없으면 보통 캐싱하지 않음
15.2.2 잘못된 Contnet-Length
몇몇 클라이언트, 서버, 프락시 등은 Content-Length가 잘못 계산되었을 때 이 사실을 알아내고 수정한다. HTTP/1.1 사용자 에이전트는 잘못된 길이를 받으면 사용자에게 알려주어야 한다.