HTTP 헤더

정태경·2022년 1월 15일
0

:authority: api.myrealtrip.com

  • 도메인 이름

:method: GET

  • 메소드 타입

:path: /web/reservations?status=finish

  • 요청하는 서버의 경로

:scheme: https

  • 사용할 프로토콜

콘텐트 협상

accept: application/json, text/plain, /

  • 클라이언트가 협상 요청하는 컨텐츠 타입과 우선 순위
  • (더 구체적인 것이 우선 순위)

accept-encoding: gzip, deflate, br

  • 클라이언트가 협상 요청하는 인코딩 방식

accept-language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7

  • 클라이언트가 협상 요청하는 언어와 우선 순위
  • 1 이 기본 값이고, 1에 가까울 수록 우선 순위 높음

인증

authorization:

  • 클라이언트 인증 정보를 서버에 전달 (base64인코딩)
  • 인증 방식에 따라 값이 달라짐 (ex. OAuth)

WWW-Authenticate: Newauth realm="apps"

  • 리소스 접근 시 필요한 인증 방법 정의

origin: https://www.myrealtrip.com

  • 요청을 처리해주는 진짜 서버 (중간에 중계 서버가 아님.)

referer: https://www.myrealtrip.com/traveler/reservations/history?status=finish

  • 이전 웹 사이트의 주소
  • 새로운 사이트로 이동하는 경우 referer 를 포함해서 요청
  • 유입 경로 분석에 주로 사용
  • 요청에서 사용

server: nginx

  • 서버의 SW 정보 (어떤 서버를 사용하는지)
  • 응답에서 사용

host: www.aaa.com

  • 하나의 서버가 여러개의 도메인을 관리할 때 활용됨.
  • 요청한 호스트 정보(도메인)
  • 요청에서 사용

location: www.aaa.com

  • 페이지 리다이렉션
  • 서버의 3xx 응답 결과에 Location 헤더가 있으면 해당 위치로 자동 이동(리다이렉트)
  • 201(created): location 값은 post, put 요청에 의해 생성된 리소스 URI
  • 응답에서 사용

쿠키

  • 서버에서 클라이언트로 쿠키 전달

  • 사용자 로그인 세선 관리에 주로 사용함

  • 쿠키에 만료날짜를 입력하면 영속 쿠키 (해당 날짜까지 쿠키 유지)

  • 쿠키에 만료날짜를 생략하면 세션 쿠키 (브라우저 종료 시 까지만 유지)

  • 쿠키에 도메인을 명시하면 명시한 도메인 + 서브 도메인까지 쿠키 유지
    (ex. domain=example.org 로 지정 시 dev.example.org 도 쿠키 유지)

  • 쿠키에 도메인을 생략하면 현재 문서만 쿠키 유지
    (ex. exapmle.org 에서만 쿠키 유지하고 dev.example.org 는 쿠키 미사용)

  • 쿠키에 path를 명시하면 명시한 경로를 포함하여 하위 경로까지 쿠키 유지
    (ex. path=/home 일 경우 /home/room1 은 가능하고 /hello 는 불가능)

  • 응답에서 사용

  • 클라이언트가 서버에서 받은 쿠키를 저정하고 HTTP 요청 시 서버에 전달
  • 요청에서 사용

캐시

cache-control: max-age=60

  • 캐시 사용 유무와 만료 시간등을 표현

  • 캐시 사용 시 만료 시간 전이면 서버에 요청하지 않고 브라우저에서 저장한 캐시를 사용함.

  • 만료 시간이 지나면 서버에 다시 요청하여 데이터를 받음.

Last-Modified:(검증헤더)

  • 최초 데이터 요청 시 마지막 수정일을 서버로부터 받은 뒤 브라우저가 저장함.

  • 캐시 시간이 만료되었을 때 해당 데이터를 서버에 보내고, 서버에서는 마지막 수정일을 비교 함.

  • "if-modified-since" 와 함께 사용됨.

etag: (검증헤더)

  • 최초 데이터 요청 시 서버로부터 데이터를 HASH 값으로 받은 뒤 브라우저가 저장함.

  • 캐시 시간이 만료되었을 때 해당 데이터를 서버에 보내고, 서버에서는 HASH 값을 비교 함.

  • "if-none-match" 와 함께 사용됨.

if-modified-since: (조건부 요청 헤더)

  • 캐시 만료 시 클라이언트에 가지고 있는 Last-Modified 를 서버에 보냄.

  • 서버는 파일이 수정되었으면 200 OK 와 함께 변경된 Last-Modified 를 전송.

  • 파일이 수정되지 않았으면 304 304 Not Modified 응답.

  • 304 응답 시에는 헤더만 전송하고 Body 는 전송하지 않음. (수정되지 않았기에 바디 전송 불필요)

if-none-match: (조건부 요청 헤더)

  • 캐시 만료 시 클라이언트에 가지고 있는 etag 가 있으면 서버에 보냄.

  • 서버에서는 파일이 수정되었으면 200 OK 와 함께 변경된 etag 를 전송.

  • 파일이 수정되지 않았으면 304 304 Not Modified 응답.

  • 304 응답 시에는 헤더만 전송하고 Body 는 전송하지 않음. (수정되지 않았기에 바디 전송 불필요)

profile
現 두나무 업비트 QA 엔지니어, 前 마이리얼트립 TQA 엔지니어

0개의 댓글