7_http 헤더_협상,전송 및 정보(RFC7230 기준)
○ HTTP 구조

- 메세지 본문(페이로드)을 통해 표현 데이터 전달
- 표현헤더는 표현 데이터를 해석할 수 있는 정보 제공
ex) 데이터 유형, 길이 등
- 표현헤더는 전송 응답 둘다 사용
○ 협상(콘텐츠 네고시에이션)
- Accept: 클라이언트가 선호하는 미디어 타입 전달
- Accept-Charset: 클라이언트가 선호하는 문자 인코딩
- Accept-Encoding: 클라이언트가 선호하는 압축 인코딩
- Accept-Language: 클라이언트가 선호하는 자연 언어
※ 협상 헤더는 요청시에만 사용
※ 협상 정보를 서버에 전송 시 서버가 제공할 수 있는 정보(타입)
일 경우 클라이언트에 전달해주지만 제공할 수 없을 경우 서버가
가지고 있는 우선 순위에 따라 정보를 전달
○ 협상 우선순위(Quality Values(q))

- 0~1까지 있고 클수록 높은 순위를 가짐(생략시 1)
ex) accept-language : ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
1순위 ko-KR;q=1 (q=1생략)\
2순위 ko;q=0.9
3순위 en-US;q=0.8
4순위 en;q=0.7
- 구체적인 것을 우선으로 함
ex) accept : text/html, text/*
1순위 text/html
2순위 text/*
○ 전송 방식
1) 단순 전송
2) 압축 전송
ex) 표현 헤더에 Content-Encoding:gzip 포함
3) 분할 전송
ex) 표현헤더에 Transfer-Encoding: chunked 포함
4) 범위 전송
ex) 요청시 Range: bytes=1001-2000 포함
응답시 Content-Range:bytes 1001-2000 / 2000 포함
○ 일반 정보
- From: 유저 에이전트의 이메일 정보 (요청)
- ★Referer: 이전 웹 페이지 주소 (요청)
- User-Agent: 유저 에이전트 애플리케이션 정보 (요청)
- Server: 요청을 처리하는 오리진 서버의 소프트웨어 정보 (응답)
- Date: 메시지가 생성된 날짜 (응답)
○ 특별한 정보
- Host: 요청한 호스트 정보(도메인)(요청)
ㄴ 하나의 서버가 여러 도메인을 처리할때
- Location: 페이지 리다이렉션
ㄴ 201(Created) 경우 생성된 리소스 URI
ㄴ 3XX(Redirection) 경우 자동으로 리다이렉션하기 위한 리소스 URI
- Allow: 허용 가능한 HTTP 메서드 (응답)
ㄴ 405(Method Not Allowed)일때 응답에 담아줌
- Retry-After: 유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간 (응답)
ㄴ 503(Service Unavailable)일때 언제까지 불가능한지 알려줌