- HTTP 프로토콜의 요청과 응답은 헤더(header, 부가 정보)와 바디(body, 실제 데이터)로 구성
- HTTP의 헤더와 바디는 개행문자인 '\r\n'으로 구분
- 헤더와 바디 사이에 한 개의 빈 줄(line)이 존재
- HTTP 헤더는 요청과 응답에 공통으로 사용되는 공통 헤더 / 요청 헤더 / 응답 헤더로 구분
HTTP 공통 헤더 주요 항목
Data
- HTTP 메시지를 생성한 일시- RFC 1123을 따름
ex) Date : Tue, 19 Nov 2019 04:13:24 GMT
Connection
- Keep-Alive를 설정
ex) Connection : keep-alive
Cache-Control
- Cache 속성을 설정
- no-store : 캐시를 저장하지 않음
- no-cache : 서버에 확인 후 캐시 사용
- must-revalidate : 만료된 캐시를 서버에 확인
- public : 공유 캐시에 저장
- private : 특정 사용자 환경에서만 저장
- max-age : 캐시 유효 기간 명시
Content-Type
- 이미지, 오디오, 텍스트 등 콘텐츠 종류를 지정- 텍스트일 경우 문자 인코딩 방식을 지정 가능
ex) Content-Type : text/html; charset=utf-8
Content-Encoding
- 데이터의 압축 방식을 지정
ex) Content-Encoding : gzip, deflate
Content-Length
- 전송할 데이터의 크기를 지정- 전송할 데이터 = body
ex) Content-Lenth : 34
HTTP 요청 헤더 주요 항목
Method, URL, HTTP 버전
- GET, POST 등 HTTP 메소드
- 요청하는 URL
- HTTP 버전 정보
ex) Get /example/test.html HTTP/1.1
Accept
- 서버로부터 전송 받고자 하는 콘텐츠의 MIME 타입을 지정
- 이를 통해 웹 브라우저에 최적화된 타입의 데이터 사용 가능
- Accept-Charset : 문자 인코딩 타입
- Accept-Language : 지원 언어
- Accept-Encoding : gzip 등 압축 형식
ex) Accept : image/gif, image/png
ex) Accept-Language : ko, en-us
If-Modified-Since
- 지정한 날짜 이후로 변경된 경우에만 수신하도록 지정
ex) If-Modified-Since : Mon, 18 Jul 2016 12:15:00 GMT
User-Agent
- 웹 브라우저(웹 클라이언트)의 정보를 지정
ex) User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36
Cookie
- 웹 서버의 요청에 의해 클라이언트에 저장해 놓은 쿠키를 키와 값의 쌍으로 전송- 대표로 Session ID가 있음
Host
- 대상 서버의 도메인 이름으로 포트 정보 포함 가능
ex) Host : www.abcd.com
Origin
- 해당 요청이 어느 주소에서 시작되었는지 명시
Referer
- 이번 요청 이전의 페이지 주소를 지정
ex) Referer : https://www.google.com/
HTTP 응답 헤더 주요 항목
HTTP 버전, 응답 코드
- HTTP 버전 정보- HTTP 프로토콜에 정의된 응답코드
ex) HTTP/1.1 200 OK
Server
- 웹 서버의 정보를 명시
ex) Server : Apache/2.2.24
Location
- 응답코드 301, 302 리다이렉션 상태에서 위치 정보를 지정
Set-Cookie
- 클라이언트에 저장할 쿠키 정보를 지정
- Expires : 만료일
- Secure : HTTPS에서만 사용
- HttpOnly : 스크립트에서 접근 불가
- Domain : 같은 도메인에서만 사용
위에 것들을 함께 설정 가능
Expires
- 해당 리소스의 유효 일시를 지정
Allow
- 응답 코드 405 (Method Not Allowed) 상태에서 서버가 제공할 수 있는 HTTP 메서드를 지정