티스토리 뷰
본 게시글은 <HTTP 완벽 가이드> 를 읽고 공부를 위해 기록해둔 게시글입니다.
--
이제 남은 파트가 엔티티와 인코딩, 국제화 이런것들인데 그냥 핵심 위주로 간략하게만 정리하고 마무리 하고자 함.
HTTP는 이미지, 텍스트, 동영상 등 다양한 포맷의 데이터들을 실어나른다.
이를 브라우저에서 잘 식별하고 처리하기 위해서 "잘 라벨링된 엔티티"를 사용한다.
HTTP 메시지를 운송 시스템의 컨테이너라고 생각한다면, HTTP 엔티티는 실질적인 컨테이너의 화물이다.
엔티티는 엔티티 헤더와 엔티티 본문으로 구성된다
<엔티티 헤더>
- Content-Type: 엔티티가 전달하는 객체의 종류, 타입
- Content-Length: 전달되는 메시지의 길이나 크기
- Content-Language: 전달되는 객체와 가장 잘 대응되는 자연어
- Content-Encoding: 객체 데이터에 대해 행해진 인코딩
- Content-Location: 요청 시점을 기준으로 객체의 또다른 위치
- Content-Range: 엔티티가 부분 엔티티라면, 전체에서 어느 부분에 해당하는지
- Last-Modified: 서버에서 콘텐츠가 생성 혹은 수정된 날
- Expires: 엔티티 데이터 만료날짜
- Allow: 해당 리소스에 대해 어떤 요청 메소드가 허용되는지 (GET, HEAD 등..)
- ETag: 인스턴스 검사기(?)
- Cache-Control: 캐시 관리 지시자
<엔티티 본문>
엔티티 본문은 가공되지 않은 데이터만을 담고있다. ,
- 엔티티 헤더는 본문에 대한 정보를 제공하는 역할을 한다.
* 헤더의 마지막은 빈 줄(CRLF)로 끝난다.
* Content-Length 헤더를 통해 메시지 잘림 유무를 검사한다 (온전히 다 받았는지 아닌지)
-> 지속 커넥션을 맺기 위해서는 Content-Length 헤더는 필수
-> Content-Length 헤더가 있어야 어디까지가 엔티티 본문이고, 어디부터가 다음 메시지인지 알 수 있다.
* 캐시의 신선도는 Expires 헤더 혹은 Cache-Control 헤더를 통해 전송한다
* Content-Language 헤더를 통해 서버는 문서의 문자와 언어를 알려준다.
* Accept-Language 헤더를 통해 클라이언트는 서버에게 자신이 어떤 언어를 선호하는지 알려준다.
(1에 가까울수록 높다)
사실 이거 다 앞에서 한번씩 봤던 내용이다
솔직히 봐도 이게 중요한가 싶기도 하고 그냥 한번 훑어보고 마무리 하기로 함
아무튼..
끄으으으읏!!!
'웹' 카테고리의 다른 글
도메인 주도 설계란 무엇일까 (2) - 도메인 객체와 예제 (0) | 2022.04.04 |
---|---|
도메인 주도 설계란 무엇일까 (1) (0) | 2022.03.31 |
HTTP 박살내기 프로젝트 - 9 | 인증, HTTPS (0) | 2021.09.25 |
HTTP 박살내기 프로젝트 - 8 | 쿠키 & 세션 (0) | 2021.09.24 |
HTTP 박살내기 프로젝트 - 7 | 게이트웨이, 터널 (0) | 2021.09.22 |