HTTP 구조
HTTP (Hyper Text Trans Protocol) 통신을 사용하면 클라이언트와 서버 간에 두 가지 유형의 메시지
(HTTP 요청 및 HTTp 응답)를 전송할 수 있다.
클라이언트 / 브라우저가 요청을 서버로 보내고 서버가 브라우저로 응답을 보낸다.
두 메시지는 공통 포맷을 가지고 있고, HTTP 헤더와 HTTP 본문을 포함한다.
1. HTTP 헤더
HTTP 헤더는 HTTP 본문(body) 및 요청/응답에 대한 정보를 포함한다.
본문에 대한 정보는 본문 컨텐츠 길이 등 본문 컨텐츠와 관련이 있다.
요청/응답에 대한 정보는 요청/응답에 대한 일반정보를 포함한다. (ex -> 요청 시간, 요청에 사용 된 브라우저 등)
헤더의 프로퍼티는 이름-값(name-value) 쌍으로 설정되며, 콜론 ':' 으로 구분된다.
HTTP 헤더 유형
HTTP 1.1에서는 헤더는 세 부분으로 나눌 수 있습니다.
일반 헤더 (General Header)
요청 / 응답 헤더 (Request / Response Header)
엔티티 헤더 (Entity Header)
1. 일반 헤더
전송되는 HTTP 본문 컨텐츠와 관련없고, 요청/응답이 생성된 날짜 및 시간 등과 같은 HTTP 통신에 대한 일반적인 정보가 포함된다.
이 헤더는 HTTP 요청과 응답 메시지에 공통으로 사용된다.
ex) Date:Tue, 17 Nov 2015 16:39:15 GMT
2) 요청 / 응답 헤더
서버에 요청하면 요청 헤더가 있고 서버가 클라이언트/브라우저로 응답을 다시 보낼 때 응답 헤더가 있다.
요청 헤더는 요청한 URL, 메소드 (GET, POST, HEAD), 요청 생성에 사용 된 브라우저 및 기타 정보와 같은 요청에 대한 정보가 포함된다.
3) 엔티티 헤더
이 헤더에는 실제 메시지 또는 전송 중인 HTTP 본문에 대한 정보가 포함된다.
컨텐츠의 길이, 컨텐츠 언어, 인코딩, 만료 날짜 및 기타 중요한 정보와 같은 정보.
HTTP 본문
이제 가져올 실제 데이터 컨텐츠/메시지 본문이 나타난다.
콘텐츠에는 요청한 리소스에 따라 HTML 코드, 이미지, CSS 스타일 시트 또는 JavaScript 파일이 포함될 수 있다.