HTTP 헤더1 - 일반헤더

무삭이의 개발일지·2023년 5월 17일
0

HTTP 헤더 개요

용도가 너무나도 많다.

  • HTTP 전송에 필요한 모든 부가정보
    예) 메시지 바디의 내용, 메시지 바디의 크기, 압축,인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보

  • 표준 헤더가 너무 많음.

  • 필요시 임의의 헤더 추가 기능
    예) helloworld: hihi

HTTP BODY

  • 메시지 본문(message body)을 통해 표현 데이터 전달
  • 메시지 본문 = 페이로드(payload)
  • 표현은 요청이나 응답에서 전달할 실제 데이터
  • 표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공
    예) 데이터 유형(html,json), 데이터 길이, 압축 정보 등등
  • 참고 : 원래 표현 헤더는 표현 메타데이터와, 페이로드 메시지를 구분해야 해야하지만 여기서는 생략

Content-Type

: 표현 데이터의 형식 설명

  • text/html;charset=utf-8
  • application/json
  • image/png

Content-Encoding
: 표현 데이터 인코딩

: 표현 데이터 인코딩

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

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

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

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

  • 바이트 단위
  • Transfer-Encoding(전송 코딩)을 사용하면 Content-Length를 사용하면 안됨.

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

: 클라이언트가 선호하는 표현 요청

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

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

여기서 우선순위를 볼 수 있다.

  • Quality Values(q) 값 사용

  • 0 ~ 1, 클수록 높은 우선순위

  • 생략하면 1

  • Accpet-Language : ko-KR, ko;q=0.9, en-US;q=0.8, en;q=0.7

      1. ko-KR;q=1(q생략)
      1. ko;q=0.9
      1. en-US;q=0.8
      1. en:q=0.7
  • 구체적인 것이 우선한다.

  • Accept: text/* , text/plain, text/plain;format=flowed,
    1. text/plain;format=flowed

    1. text/plain
    2. text/*
    3. */ *
  • 구체적인 것을 기준으로 미디어 타입을 맞춘다.
  • Accept: text/*;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4,/*;q=0.5
profile
No. Try not. Do or Do not. There is no try.

0개의 댓글