HTTP

[HTTP] 웹 기본 지식 정리 - HTTP 헤더(일반헤더)②

aaaahy 2023. 1. 22. 17:35

- 이 게시글은 인프런 "모든 개발자를 위한 HTTP 웹 기본지식"의 김영한님 강의를 보고 요약한 내용입니다.


1. 일반 정보

 

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

- 검색 엔진에서 주로 사용

- 요청에서 사용

 

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

- 요청에서 사용, 유입 경로 분석 가능

 ex) A → B 이동시, B 요청할 때 Refer: A 포함하여 요청

 

User-Agent : 유저 에이전트 애플리케이션 정보

- 요청에서 사용, 어떤 종류의 브라우저에서 장애 발생하는지 파악 가능(로그 파싱을 통해)

- 통계 정보로 이용

 

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

- 응답에서 사용

* origin 서버 : http 요청을하면 중간에 여러 프록시 서버, 캐시 서버를 거치게 되는데, 실제 응답을 해주는 서버를 의미

 

Date : 메시지 생성 날짜

- 응답에서 사용

 

2. 특별한 정보

 

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

- 필수이며 요청에서 사용

- 하나의 서버(IP주소)가 여러 도메인을 처리해야할 때

 

Location : 페이지 리다이렉션

- 웹 브라우저는 3xx 응답 결과에 Location 헤더 존재시, Location 위치로 리다이렉트

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

- 3xx(Redirection) : Location 값은 리다이렉션하기 위한 대상 리소스

 

Allow : 허용가능한 HTTP 메서드

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

- GET, HEAD, PUT

 

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

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

- 날짜나 초단위 표기

 

3. 인증

Authorization : 클라이언트 인증 정보를 서버에 전달

WWW-Authenticate : 리소스 접근시 필요한 인증 방법 정의

- 401(Unauthorized) 응답과 함께 사용

 

4. 쿠키

Set-Cookie : 서버에서 클라이언트로 쿠키 전달(응답)

Cookie : 클라이언트가 서버에서 받은 쿠키 저장, HTTP 요청시 서버로 전달

 

쿠키 미사용

쿠키 미사용 - 로그인
쿠키 미사용 - 로그인 후 welcome 페이지 접근

▶ HTTP는 무상태(Stateless) 프로토콜로 클라이언트와 서버가 요청과 응답을 주고 받으면 연결이 끊어짐

→ 클라이언트와 서버는 서로 상태를 유지하지 않음

→ welcome 페이지에서 '홍길동'을 구분하지 못함

 

대안

- 모든 요청에 사용자 정보를 포함

▶ 모든 요청과 링크에 사용자 정보를 포함하면 여러 심각한 문제들(보안 문제, 개발 어려움) 발생

 

쿠키 사용

쿠키 사용 - 로그인

 

쿠키 사용 - 로그인 후 welcome 페이지 접근

▶ 서버에서 Set-Cookie 를 통해 user 정보를 응답

쿠키 저장소에 저장 

→ welcome 페이지 접속 시 웹 브라우저가 쿠키 탐색하여 찾음

▶ 모든 요청에 쿠키 정보를 자동으로 포함

 

쿠키 

사용처 : 사용자 로그인 세션 관리, 광고 정보 트래킹

- 쿠키 정보는 항상 서버에 전송 : 최소한의 정보(세션 id, 인증 토큰)만 사용

* 웹 스토리지 : 서버에 전송 X, 웹 브라우저 내부에 데이터 저장

- 보안에 민감한 데이터는 저장 X

 

set-cookie: sessionId=abcde1234; expires=Sat, 26-Dec-2020 00:00:00 GMT;

 path=/; domain=.google.com; Secure

 

생명주기 

- expires : 만료일이 되면 쿠키 삭제

- max-age=3600(3600초) : 0이나 음수를 지정하면 쿠키 삭제

- 세션 쿠키 : 만료 날짜 생략하면 브라우저 종료할 때까지 유지

- 영속 쿠키 : 만료 날짜를 입력하면 해당 날짜까지 유지

 

경로

- 입력 경로를 포함한 하위 경로 페이지만 쿠키 접근

- 일반적으로 path=/ 루트로 지정

 

도메인

- 명시 : 명시한 문서 기준 도메인 + 서브 도메인

- 생략 : 현재 문서 기준 도메인만 적용

 

보안

- Secure : 쿠키는 http, https 구분 x → But, Secure 적용시 https인 경우만 전송

- HttpOnly : XSS 공격 방지, HTTP 전송에만 사용

- Samesite : XSRF 공격 방지, 요청 도메인과 쿠키에 설정된 도메인 동일시 쿠키 전송