1. HTTP 메세지 구성 : 스타트 라인 + 헤더 + 바디(본체,본문)
ㅇ 스타트 라인 (시작 줄)
- (요청) 웹브라우저가 웹서버에 처리를 부탁 (사용 HTTP 버전, HTTP 요청 메소드 등)
- (응답) 웹서버의 응답 상태를 알림 (사용 HTTP 버전, HTTP 응답 코드 등)
ㅇ 헤더
- 웹 서버 및 클라이언트 사이에서,
. 일반 문서 데이터(바디 본문) 이외에, 추가적인 정보를 교환할 수 있도록,
. HTTP 메세지 선두에 삽입되는 요소로 수십개의 다양한 종류를 갖음
ㅇ 바디 (본체,본문)
- 실제 내용이 들어있는 부분
※ 헤더 및 바디 간의 구분은 빈 줄(CRLF)에 의함
- 한편, 바디 내용의 형식은, 일반 텍스트 형태 이외에도 이진 데이터 형식(이미지 등)도 가능
2. 일반적인 헤더 구성 ☞ HTTP 메세지 참조
※ 위에서, Blank Line(빈줄,CRLF)는, HTTP 헤더 항목들과 본문 시작을 구분시켜 줌
3. HTTP 헤더 항목 종류
ㅇ 요청 헤더 (Request Header) 항목
- 요청 헤더는 요청 메세지 내에서만 나타나며 가장 방대함
- 주요 항목들 ☞ HTTP 요청 헤더 항목 참조
. Host, From, Cookie, Referer, User-Agent, Accept, If-Modified-Since 등
ㅇ 응답 헤더 (Response Header) 항목
- 특정 유형의 HTTP 요청이나 특정 HTTP 헤더를 수신했을때, 이에 응답 함
- 주요 항목들 ☞ HTTP 응답 헤더 항목 참조
. Server, Set-Cookie, Accept-Range, Age, ETag, Proxy-authenticate 등
ㅇ 일반 헤더 (General Header) 항목
- 일반 목적의(기본적인) 헤더 항목
. 요청 및 응답 메세지 모두에서 사용 가능
. HTTP 메세지 내 바디(몸체) 내용과는 직접 관련 없음
- 주요 항목들 ☞ HTTP 일반 헤더 항목 참조
. Date, Connection, Cache-Control, Pragma, Trailer 등
ㅇ 엔터티/개체 헤더 (Entity Header) 항목
- 선택적인 개체(콘텐츠,본문,리소스 등) 그 자체를 설명함
. 요청 및 응답 메세지 모두에서 사용 가능
* HTTP 메세지는 컨테이너이고, 엔터티는 컨테이너가 실어나르는 개별 화물들 임
- 주요 항목들 ☞ HTTP 엔터티 헤더 항목 참조
. Content-Type, Content-Language, Content-Encoding, Content-Length, Content-Location,
Location, Allow, Expires, Last-Modified, Transfer-Encoding 등
※ 사실상, 대소문자 구분 없이도 문제 없음