녕의 학습 기록
[HTTP] HTTP 헤더 (1) 본문
♪ 학습 내용
HTTP 헤더 / 표현 헤더 / 협상 헤더 / 협상과 우선 순위
* HTTP 헤더(Header)
HTTP 헤더는 HTTP 전송에 필요한 모든 부가 정보를 담고 있다.
과거에는 Entity 헤더 포함 4가지의 헤더로 분류 되었다.
Entity 헤더는 HTTP 메시지 바디에 대한 정보를 가지고 있는 헤더이다.
요청이나 응답에서 메시지 본문 안에 'entity 본문'을 담아 전송하면
그 엔티티 본문의 데이터를 해석할 수 있도록 정보를 제공하는 것이 바로 Entity 헤더.
근데 헤더에 대한 이러한 분류에 변화가 생겼고
엔티티(Entity) -> 표현(Representation)으로 용어도 변하였다.
메시지 본문은 실제 데이터인 표현 데이터를 포함하고 이에 관한 정보를 표현 헤더가 제공!!
리소스를 HTML이라는, json ... 이라는 형태의 표현으로 전달할꺼야 => "표현" 용어를 사용하는 이유
* 표현 헤더
- Content-Type
표현 데이터의 형식을(미디어 타입, 문자 인코딩) 설명해준다.
- Content-Encoding
표현 데이터를 압축하기 위해 사용한다.
압축된 데이터를 읽는 쪽에서는 인코딩 헤더의 정보를 이용하여 압축 해제 후 읽는다.
- Content-Language
표현 데이터의 자연 언어를 표현한다. ( like ko, en ...)
- Content-Length
표현 데이터의 길이를 바이트 단위로 표현한다.
이러한 표현을 주고 받을 때 서버에 클라이언트가 선호하는 표현을 요청할 수도 있다.
"Content-Negotiation (협상)"
* 표현 헤더 - 협상(Content-Negotiation)
협상 헤더는 서버에게 '@@가 있으면 주세요~~' 라고 요청하는 것과 같다.
따라서 협상 헤더는 HTTP요청시에만 사용한다.
서버의 상황에 따라 요청하는 것을 못줄 수도.
- Accept : 선호하는 미디어 타입
- Accept-Charset : 선호하는 문자 인코딩
- Accept-Encoding : 선호하는 압축 인코딩
- Accept-Language : 선호하는 자연 언어 ( 한국에 살면 최대한 ko로 선호 )-
만약 내가 한국어를 선호한다고 했지만 서버가 한국어를 지원하지 않는다면 어떻게 할까???
우선순위를 이용하여 해결할 수 있다.
우선 순위는 Quality Values( 줄여서 q )를 이용하여 줄 수 있다.
q는 0~1의 값으로 클수록 높은 우선 순위를 가진다.
위 사진의 협상 헤더를 보면 ko, en-US, en 순으로 선호하는 것을 알 수 있다.
따라서 기본으로 독일어를 지원하는 서버이지만 영어를 우선하여 제공한다.
Quality Values 말고도 구체적인 것을 기준으로 우선 순위를 정할수도 있다.
구체적인 것이 우선순위를 가짐!
위에서는 가장 구체적인 text/plain;format=flowed가 가장 우선시 된다.
그리고 구체적인 것을 기준으로 미디어 타입을 맞춘다.
♪ 다음 학습 내용
전송 방식에 따른 / 일반 정보를 담은 / 특별한 정보를 담은 HTTP 헤더, 쿠키
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의
실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런...
www.inflearn.com
'Dev > HTTP' 카테고리의 다른 글
[HTTP] HTTP 헤더 (3) (0) | 2023.01.03 |
---|---|
[HTTP] HTTP 헤더 (2) (0) | 2022.12.29 |
[HTTP] HTTP 상태코드 (0) | 2022.12.27 |
[HTTP] HTTP 메서드 활용 (0) | 2022.12.25 |
[HTTP] HTTP 메서드 (0) | 2022.12.25 |