HTTP 헤더

MoMoon·2022년 2월 25일
0

HTTP

목록 보기
6/7

HTTP 헤더

- HTTP 전송에 필요한 모든 부가정보
- 표준 헤더가 너무 많음
- 필요시 임의의 헤더 추가 가능

분류

  • General 헤더 : 메시지 전체에 적용되는 정보
  • Request 헤더 : 요청 정보
  • Response 헤더 : 응답 정보
  • Representation 헤더 : 표현 바디 정보 , 표현 본문의 데이터를 해석할 수 있는 정보 제공

1) 표현 (Representation)

1.1) Content-Type : 표현 데이터의 형식

  • 미디어 타입, 문자 인코딩
    ex) text/html; charset=utf-8, application/json

1.2) Content-Encoding : 표현 데이터의 압축 방식

  • 표현 데이터를 압축하기위해 사용
  • 데이터를 전달하는 곳에서 압축 후 인코딩 헤더 추가
  • 데이터를 읽는 쪽에서 인코딩 허더의 정보로 압축해제

1.3) Content-Language : 표현 데이터의 자연 언어

  • 표현 데이터의 자연 언어 표현
    ex) ko, en, en-US

1.4) Content-Length : 표현 데이터의 길이

  • 바이트 단위
  • Transfer-Encoding을 사용하면 Content-Length를 사용하면 안됨

표현 헤더는 전송, 응답 둘 다 사용


2) 협상 (컨텐츠 네고시에이션)

클라이언트가 선호하는 표현 요청
  • Accept : 클라이언트가 선호하는 미디어 타입 전달
  • Accept-Charset : 클라이언트가 선호하는 문자 인코딩
  • Accept-Encoding : 클라이언트가 선호하는 압축 인코딩
  • Accept-Language : 클라이언트가 선호하는 자연 언어

우선순위1

  • Quality Values(q) 값 사용
  • 0~1, 클수록 높은 우선순위
  • 생략하면 1
  • Accept-Language: (ko-KR),(ko;q=0.9),(en-US;q=0.8),(en;q=0.7)
    ㄴ( ) 끊기위해 사용한 기호, 정상적인 문구에는 없다고 생각

우선순위2

  • 구체적인 것을 우선
  • Accept : text/, text/plain, text/plain;format=flowed, /*
                 3         2                       1                  4

협상 헤더는 요청시에만 사용


3) 전송 방식

  • 단순 전송 (Content-Length)
  • 압축 전송 (Content-Encoding)
  • 분할 전송 (Transfer-Encoding)
  • 범위 전송 (Range, Content-Range)

4) 일반 정보

  • From : 유저 에이전트의 이메일 정보
  • Referer : 이전 웹 페이지 주소
    • A -> B로 이동하는 경우 B를 요청할 때 Referer : A 를 포함해서 요청
    • Referer를 사용해서 유입 경로 분석 가능
  • User-Agent : 유저 에이 전트 애플리케이션 정보
    • 어떤 종류의 브라우저에서 장애가 발생하는지 파악 가능
    • 통계 정보
  • Server : 요청을 처리하는 오리진 서버의 소프트웨어 정보
  • Date : 메시지가 생성된 날짜

5) 특별한 정보

  • HOST : 요청한 호스트 정보 (도메인), 필수
  • Location : 페이지 리다이렉션
  • Allow : 허용가능한 HTTP 메서드
  • Retry-After : 유저 에이전트가 다음 요청을 하기까지 기다려야하는 시간

6) 인증

  • Authorization : 클라이언트 인증 정보를 서버에 전달
  • WWW-Authenticate : 리소스 접근 시 필요한 인증 방법 정의

7) 쿠키

  • Set-Cookie : 서버에서 클라이언트로 쿠키 전달 (응답)
  • Cookie : 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청 시 서버로 전달



참고 자료

0개의 댓글