반응형
HTTP 헤더❓
HTTP 헤더에는 HTTP 전송에 필요한 모든 부가정보들이 들어가있다👍
메시지 바디의 내용, 타입과 크기, 요청 클라이언트 정보, 서버의 정보 등 엄청나게 많은 정보들이 들어가 있다.
HTTP 표준 변경❓
2014년 HTTP 표준이 변경되면서 기존의 엔티티라는 용어는 사라지고 표현(Representation)으로 용어가 변경된다💡
- 엔티티 헤더 -> 표현 헤더, 엔티티 바디 -> 표현 데이터
- 메시지 본문 = 페이로드(payload)
표현 헤더❓
표현 데이터의 메타 데이터 정보들이 들어가있다💡
표현 헤더는 전송과 응답 모두 사용할 수 있다❗
- Content-Type - 표현 데이터의 형식을 의미한다.
ex) text/html; charset=UTF-8 , application/json 등.. - Content-Encoding - 표현 데이터의 압축 방식을 의미한다.
ex) gzip, deflate 등.. - Content-Language - 표현 데이터의 자연 언어를 의미한다.
ex) ko, en, en-US 등.. - Content-Length - 표현 데이터의 길이를 의미한다.
협상 헤더❓
클라이언트가 선호하는 표현의 요청 정보가 들어가있다.💡
협상 헤더는 요청시에만 사용된다❗
- Accept - 클라이언트가 선호하는 미디어 타입
- Accept-Charset - 클라이언트가 선호하는 문자 인코딩
- Accept-Encoding - 클라이언트가 선호하는 압축 인코딩
- Accept-Language - 클라이언트가 선호하는 자연 언어
각각의 요청에 우선순위를 정하여 보내면 서버는 그 우선순위에 맞춰 데이터를 응답해준다❗
전송 방식 헤더❓
클라이언트에게 전달할 때 어떤 방식으로 전달 할것인지 들어가 있는 헤더들이다❗
- 단순 전송 - 진짜 단순하게 요청에 대한 응답을 한번에 다 내려주는 것
표현 데이터에 들어가는 데이터의 길이를 Content-Length로 지정해서 응답해주는 것이다😵 - 압축 전송 - 표현 데이터를 gzip같은 걸로 압축하고 보내는 것
표현 데이터를 어떤 방식으로 압축했는지 Content-Encoding에 압축방식을 넣어서 전달한다👍 - 분할 전송 - 표현 데이터를 chunked 덩어리로 쪼개서 보내는 것
표현 데이터를 보낼 때 여러 덩어리로 나누어서 보낼때 Transfer-Encoding: chunked를 추가해 전달한다😎
Transfer-Encoding을 사용할때는 Content-Length를 사용하면 안된다❗❗ - 범위 전송 - 표현 데이터의 범위를 지정해서 보내는 것
표현 데이터를 보낼 때 중간부터 보낼 경우도 있기 때문에 Content-Range에 범위를 지정해서 전달한다😍
일반 정보 헤더❓
단순 정보성 헤더들이다❗
- From - 유저 에이전트의 이메일 정보를 나타내는 헤더( 요청에서 사용 )
일반적으로 잘 사용되지 않는다❗ - Referer - 이전 웹 페이지 주소를 나타내는 헤더( 요청에서 사용 )
현재 요청된 페이지의 바로 이전 웹 페이지의 주소가 들어가 있다❗
ex)A -> C 페이지로 이동 했을때 Refer에는 A의 주소가 들어가 있다❗ - User-Agent - 클라이언트의 애플리케이션 정보를 나타내는 헤더( 요청에서 사용 )
클라이언트의 애플리케이션 정보(웹 브라우저, 등등)가 들어가 있다❗ - Server - 요청을 처리하는 ORIGIN서버의 소프트웨어 정보를 나타내는 헤더 ( 응답에서 사용 )
클라이언트의 Request 전달 과정에 여러 프록시 서버들을 거쳐서 도착하기 때문에 중간 노드들이 아닌 실제 응답해주는 서버의 정보가 들어가 있다.❗ - Date - 메시지가 발생한 날짜와 시간을 나타내는 헤더 ( 응답에서 사용 )
말그대로 응답 메시지가 발생한 날짜와 시간이다❗
특별 정보 헤더❓
특정 정보들을 제공해주는 헤더들이다❗
- HOST - 요청한 호스트의 정보를 나타내는 헤더 ( 요청에서 사용 )
HOST는 필수이다❗❗
하나의 서버에서 여러 도메인을 처리해야 할 때 요청 도메인을 구분할 때 사용된다👏 - Location - 페이지 리다이렉션할 주소를 나타내는 헤더
웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, 자동으로 Location헤더에 들어가 있는 주소로 이동한다❗ - Allow - 허용 가능한 HTTP 메서드를 나타내는 헤더
말 그래도 서버에서 제공해주는 HTTP 메서드들을 의미한다❗
ex) Allow: GET, PUT 이라고 응답 헤더에 추가하면 GET메서드와 PUT메서드만 제공한다는 뜻이다👏 - Retry-After - 다음 요청을 하기까지 기다려야 하는 시간을 나타내는 헤더
서비스가 언제까지 사용하지 못하는지 알려줄때 사용한다❗
날짜로 표기할 수도 있고 초단위로 표기할 수도 있다❗
ex) Retry-After: Fri, 31 Dec 1999 23:59:59 GMT
Retry-After : 300
인증 헤더❓
- Authrization - 클라이언트 인증 정보를 전달하는 헤더
- WWW-Authentication - 리소스 접근시 필요한 인증 방법을 알려주는 헤더
401 Unauthorized 응답과 함께 사용한다.
출처
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
반응형
'네트워크' 카테고리의 다른 글
HTTP 웹 기본 지식 - HTTP 헤더(캐시와 조건부 요청) (0) | 2021.10.19 |
---|---|
HTTP 웹 기본 지식 - HTTP 상태코드 (0) | 2021.09.04 |
HTTP 웹 기본 지식 - HTTP 메서드 (0) | 2021.08.30 |
HTTP 웹 기본 지식 - HTTP 기본 (0) | 2021.08.27 |
HTTP 웹 기본 지식 - URI와 웹 브라우저 요청 흐름 (0) | 2021.08.24 |