Spring/모든 개발자를 위한 HTTP 웹 기본 지식

[모든 개발자를 위한 HTTP 웹 기본 지식] 07. HTTP 헤더1(일반헤더) - 일반 정보, 특별한 정보

HSY_mumu 2022. 6. 7. 23:28
728x90

(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다.

5. 일반 정보

<헤더 일반 정보 정리>

일반 헤더 종류 내용 사용 헤더 사용 목적 기타
From 유저 에이전트의 이메일 정보 요청 검색 엔진 거의 사용X
Referer 현재 요청된 페이지의 이전 웹페이지 주소 요청 유입 경로 분석 많이 사용
User-Agent 유저 에이전트(클라이언트) 애플리케이션 정보 요청 통계 정보, 장애가 발생하는 브라우저 파악  
Server 요청을 처리하는 ORIGIN 서버의 소프트웨어 정보 응답 실제 응답을 보낸 서버 파악  
Date 메시지가 생성된 날짜 응답    

 

1. From (요청)

유저 에이전트의 이메일 정보

- 일반적으로 잘 사용X

- 검색 엔진같은 곳에서 주로 사용

 

2. Referer (요청)

현재 요청된 페이지의 이전 웹 페이지 주소

- 정말 많이 사용

- A->B로 이동하는 경우 B를 요청할 때, Referer:A를 포함해서 요청

- 유입 경로 분석에 사용

(참고) 단순히 referer만 가지고 유입 경로 분석을 하기에는 변수가 너무 많아, 자바스크립트에 로그를 심거나 특별한 파라미터를 넘기는 등 서로 약속을 해서 진행함

(참고) Referer는 Referrer의 오타

 

3. User-Agent (요청)

유저 에이전트(클라이언트) 애플리케이션 정보 (웹 브라우저 정보..)

- 장애가 발생하는 브라우저 파악, 통계 정보 사용

4. Server (응답)

요청을 처리하는 ORIGIN 서버의 소프트웨어 정보

- ORIGIN 서버: 실제로 응답을 보낸 서버(HTTP 요청을 보내면, 실제로 많은 프록시 서버를 거쳐 응답을 받게됨)

5. Date (응답)

메시지가 발생한 날짜와 시간

6. 특별한 정보

<헤더 특별한 정보 정리>

특별한 헤더 종류 내용 사용 헤더 사용 목적 기타
Host 요청한 호스트 정보(도메인) 요청 하나의 IP에 여러 도메인이 적용되어 있을 때, 구분을 위해 사용 필수 헤더
Location 페이지 리다이렉션 응답 - 201: 요청에 의해 생성된 리소스 URI 설정
- 3xx: 자동으로 리다이렉션하기 위한 대상 리소스 설정
 
Allow 허용 가능한 HTTP 메서드 응답 405에서 응답에 포함 거의 사용X(참고만)
Retry-After 유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간 응답 503에서 서비스가 언제까지 불가인지 알려줌  

 

1. Host (요청)

요청한 호스트 정보(도메인)

- 필수 헤더(아주 중요!!)

- 하나의 서버가 여러 도메인을 처리해야 할 때(하나의 IP 주소에 여러 도메인이 적용되어있을 때) 사용

<예제>

1) 가상 호스트를 통해 여러 도메인을 한 번에 처리할 수 있는 서버가 있음

- ip가 200.200.200.2 인 서버는 aaa.com, bbb.com, ccc.com 도메인을 처리할 수 있음

2) 클라이언트가 Host를 지정하지 않고 서버에 /hello 요청을 보내는 경우

- 서버는 /hello가 aaa.com, bbb.com, ccc.com 중 어떤 도메인에 관한 요청인지 구분X(IP로 통신하기 때문에)

 

3) 클라이언트가 Host를 지정하고 서버에 /hello 요청을 보내는 경우

- 서버는 /hello가 Host의 aaa.com에 관한 요청인지 앎

 

2. Location (응답)

페이지 리다이렉션

- 3xx(Redirection)의 Location 값: 요청을 자동으로 리다렉션하기 위한 대상 리소스(이동할 위치)

- 201(Created)의 Location 값: 요청에 의해 생성된 리소스의 URI

 

3. Allow (응답)

허용 가능한 HTTP 메서드

- 405(Method Not Allowed) 에서 응답에 포함해야 함

- 서버에서 많이 구현되어있지 않으므로 참고 정도만

 

4. Retry-After

유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간

- 503 (Service Unavailable): 서비스가 언제까지 불가인지 알려줄 수 있음

- 날짜, 초단위 표기O


7-5. 일반 정보 질문 정리

Q. 구글에서 hello를 검색하고 위키피디아에 들어가면 referer가 www.google.com/search?q=hello가 아닌, www.google.com/인 이유는?

개인 정보 보호를 위해 도메인을 제외한 추가 정보를 referer에서 제공할 수 있다. 구글의 검색 쿼리가 이에 해당한다.

[출처] https://www.inflearn.com/questions/482175

 

7-6. 특별한 정보 질문 정리

Q. Post와 Host는 비슷한 개념인가요?

해당 IP에서 Host를 찾고 -> 그 안에서 Port로 구분한다.

[출처] https://www.inflearn.com/questions/217279

[참고] https://www.inflearn.com/questions/359597

[참고] https://www.inflearn.com/questions/382291

 

Q. Host 예제에서 200.200.200.2 ip에 aaa.com, bbb.com, ccc.com 도메인을 사용한다는 것은 DNS 서버에 ip에 3개의 도메인이 등록되어있다는 것인가요?

위의 예제는 가상호스트를 이용해 여러 도메인을 사용한 예제다.

하나의 서버 내에서 도메인을 기준으로 서로 다른 서비스를 제공하려면 가상 호스트 지정을 통해 도메인 별로 서로 다른 서비스를 제공하게 설정할 수 있다.

[출처] https://www.inflearn.com/questions/262687

 

 

 

 

728x90