HTTP 전송에 필요한 모든 부가정보를 포함한다. 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등등 무수한 정보들이 들어간다. 표준 헤더가 무수히 많고, 필요시 임의의 헤더 추가 가능하다.
메시지 본문(message body)을 통해 표현 데이터 전달한다. 메시지 본문을 페이로드(payload)라 한다. 표현은 요청이나 응답에서 전달할 실제 데이터를 표현이라고 생각하면 되고, 표현 헤더와 표현 데이터를 합치면 표현이라고 한다. 표현 헤더는 표현 데이터를 해석하기 위한 정보를 제공한다.
표현을 쉽게 생각하면 회원 리소스가 있다고 가정했을때 html표현으로 전달할지 json표현으로 전달할지 클라이언트와 서버간의 주고받을때 사용하는 방법이다.
서버가 클라이언트가 요구하는 우선순위에 맞춰서 표현 데이터를 만들어주는 방법이다.
Quality Values(q) 값을 사용하는데 0~1의 값의 q가 클수록 우선순위가 되고 생략하면 1이다.
구체적인 것이 우선이다. 즉 많이 적은 게 우선순위가 된다. 위 사진속 협상의 우선순위는
1. text/plain;format=flowed
2. text/plain
3. text/
4. /*
쿠키를 사용할 때 두 가지의 쿠키를 사용한다. Set-Cookie는 서버에서 클라이언트로 쿠키 전달(응답), Cookie는 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청 시 서버로 전달하는 역할을 한다. 기본적으로 HTTP는 무상태 이다. 클라이언트와 서버가 응답을 주고받으면 연결이 끊어지며, 클라이언트가 다시 요청하면 서버는 이전 요청을 기억하지 못한다. 따라서 이 문제를 해결하기 위해서 대안으로 쿠키를 사용한다. 웨브라 우저를 통해 로그인 요청을 하면 서버는 응답 메시지와 함께 쿠키 저장소에 값을 저장하면 다시 웹 브라우저가 서버에 요청을 보낼 때마다 쿠키 저장소에 쿠키가 저장소를 조회한 후 요청과 함께 보낸다.