http 전송에 필요한 모든 정보들(메타데이터)을 담고 있음.
ex) 메세지 바디의 내용, 메세지 바디의 크기, 인증정보, 요청 클라이언트 등등
표현 헤더는 전송(request), 응답(response)에서 둘다 사용
Content-Type
표현 데이터의 형식 설명. (미디어 타입, 문자 인코딩 등)
ex) text/html; charset = utf-8 , application/json, image/png 등
Content-Type: text/html;charset=UTF-8
Content-Encoding
표현 데이터 인코딩, 표현 데이터를 압축하기 위해 사용. 데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축 해제
ex) gzip, deflate, identity 등
Content-Encoding: gzip
Content-Launguage
표현 데이터의 자연 언어, 어떤 언어를 사용했는지 알 수 있음
ex) ko(한국어), en(영어)
Content-Language: ko
Content-Length
표현 데이터의 길이. 바이트 단위이다.
Content-Length: 5
클라이언트가 선호하는 표현 요청.
우선순위 설정
Quality Values(q)
우선순위 값을 사용함. 0~1사이를 사용하고 클수록 높은 우선순위.
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
이런 식으로 표현되어 있으면
ko-KR;q=1 (q생략시 1)
ko-;q=0.9
en-US;q=0.8
en;q=0.7
이런식으로 위에서 부터 높은 우선순위를 부여 받아 응답시켜준다.
구체적인 것을 우선한다. -> 더욱 구체적으로 설명되어 있는 것을 우선한다.
text/, text/plain, text/plain;format=flowed, /*
text/plain;format=flowed
text/plain
text/*
*/* 의 순서를 가지게 된다.
-> 또한 이 순서를 따라 들어오는 데이터의 미디어 타입을 맞춘다.
Transfer-Encoding : chunked
즉 요청을 나눠서 보내는 전송 (용량이 큰 데이터를 전송할 때 사용, Content-Length를 사용할 수 없음. 그 이유는 한번 보낼때마다의 데이터 길이를 예상할 수 없기 때문)
https://www.inflearn.com/course/http-웹-네트워크
https://developer.mozilla.org/ko/docs/Web/HTTP