HTTP 웹 기본 지식 - 특별한 정보
특별한 정보
이번시간에는 조금 특별한 정보를 제공하는 HTTP 헤더들에 대해서 알아보도록 하겠다.
하나씩 살펴보자.
Host는,
요청한 호스트 정보(도메인) 이다.
정말 중요한 것이고, 요청에서 사용하며, 필수값이다.
- 요청에서 사용
- 필수
- 하나의 서버가 여러 도메인을 처리해야 할 때
- 하나의 IP 주소에 여러 도메인이 적용되어 있을 때
하나의 IP주소에 여러 도메인이 적용되어있을 때, Host가 구분을 해준다.
무슨 말인지 예제로 살펴보자.
하나의 서버에 IP 200.200.200.2가 있는데, 서버안에 여러개의 어플리케이션이 실제로 다른 도메인으로 구동이 되어있을 수도 있다.
Host라는게 없으면 무슨 문제가 생기냐면,
내가 GET으로 /hello HTTP/1.1 요청을 보내면,
서버 입장에서는 이 요청이 aaa.com과 관련된 어플리케이션에 들어가야할지, bbb.com와 관련된 것에 들어가야할지, ccc.com과 관련된 것에 들어가야 할지를 구분할 방법이 없는 것이다.
왜냐하면 IP로만 통신을 하기 때문이다.
그래서 Host 헤더가 필수로 들어가야 한다고 스펙이 개정이 되었고, 필수가 되었다.
이렇게
GET/hello HTTP/1.1
Host: aaa.com
작성해주면,
"해당 요청이 Host header가 있기 때문에, 이 요청은 aaa.com 으로 가야하는 요청이구나!" 라고 서버가 알게 되어서,
내부에 있는 aaa.com으로 딱 들어갈 수 있다.
이것은 가상 호스팅 이라고 부른다.
Location은,
페이지 리다이렉션.
- 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동(리다이렉트)
- 응답코드 3xx에서 설명
- 201 (Created): Location 값은 요청에 의해 생성된 리소스 URI
- 3xx (Redirection): Location 값은 요청을 자동으로 리디렉션 하기 위한 대상 리소스를 가리킴
Allow는,
허용 가능한 HTTP 메서드이다.
이것은 뭐냐면,
만약에 GET, HEAD, PUT 만 제공을 하고 POST를 제공하지 않으면,
HTTP 405 오류를 내리면서 응답에 Allow 헤더를 넣고,
"GET, HEAD, PUT 만 지원합니다" 라고 클라이언트에게 알려준다.
그래야 클라이언트가 "이 서버는 POST는 지원하지 않고, GET, HEAD, PUT만 지원하는구나!"하고 알 수 있다.
Retry-After는,
유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간이다.
- 503 (Service Unavailable): 서비스가 언제까지 불능인지 알려줄 수 있음
- Retry-After: Fri, 31 Dec 1999 23:59:59 GMT (날짜 표기)
- Retry-After: 120(초단위 표기)
날짜를 표기할 수도 있고, 초단위로 표기할 수도 있다.
'HTTP' 카테고리의 다른 글
HTTP 웹 기본 지식 - 캐시 기본 동작 (0) | 2022.06.22 |
---|---|
HTTP 웹 기본 지식 - 인증 (0) | 2022.06.21 |
HTTP 웹 기본 지식 - 일반 정보 (0) | 2022.06.20 |
HTTP 웹 기본 지식 - 전송 방식 (0) | 2022.06.19 |
HTTP 웹 기본 지식 - 콘텐츠 협상 (0) | 2022.06.19 |
댓글
이 글 공유하기
다른 글
-
HTTP 웹 기본 지식 - 캐시 기본 동작
HTTP 웹 기본 지식 - 캐시 기본 동작
2022.06.22 -
HTTP 웹 기본 지식 - 인증
HTTP 웹 기본 지식 - 인증
2022.06.21 -
HTTP 웹 기본 지식 - 일반 정보
HTTP 웹 기본 지식 - 일반 정보
2022.06.20 -
HTTP 웹 기본 지식 - 전송 방식
HTTP 웹 기본 지식 - 전송 방식
2022.06.19