HTTP 헤더

Younghwan Cha·2021년 9월 29일
0

Web

목록 보기
8/15
post-thumbnail

김영한 개발자님의 모든 개발자를 위한 HTTP 웹 기본 지식 강좌 내용을
정리해놓은 노트입니다.

header-field = field-name ":" OWS field-value OWS( OWS: 띄어쓰기 허용 )

HTTP 전송에 필요한 모든 부가정보

메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보...

필요시 임의의 헤더 추가 가능

HTTP BODY

헤더는 바디의 데이터를 해석할 수 있는 정보를 제공

데이터 유형(html, json), 데이터 길이, 압축 정보 등등

표현

  • Content-type : 표현 데이터의 형식
    • 컨텐트 바디에 들어가는 내용 정의
    • 미디어 타입, 문자 인코딩 ...
    • text/html; charset=utf-8
  • Content-Encoding : 표현 데이터의 압축 방식
    • 데이터를 전달한느 곳에서 압축 후 인코딩 헤얻 추가
    • 데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축 해제
    • gzip ...
  • Content-Language : 표현 데이터의 자연 언어
    • ko
    • en
    • en-US
  • Content-Length : 표현 데이터의 길이

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

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

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

협상과 우선순위

  • Quality Values(q) 값 사용
  • 0~1, 클루록 높은 우선순위
  • Accept-language: ko-KR,ko;q=0.9, en-US;q =0.8,en;q=0.7
    1. ko-KR;q=1 (q 생략)
    2. ko;q=0.9
    3. en-US; q=0.8
    4. en;q=0.7

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

전송 방식

단순 전송(Content-Length)

컨텐츠의 길이를 알 때 전송

압축 전송(Content-Encoding)

Server 쪽에서 데이터를 압축해서 전송 / Content-Encoding 에 압축 방식 표시

분할 전송(Transfer-Encoding)

Server 에서 컨텐츠를 분할해서 전송 / Content-Length 전송 x

범위 전송(Range, Content-Range)

이미 받은 데이터를 제외하고 나머지 데이터를 전송받음

헤더 정보

특별한 정보

  • Host(Domain)
    요청에서 사용
    하나의 서버가 여러 도메인을 처리해야 할 때
  • Location
    3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 리다이렉트한다.
    201 (Created): Location 값은 요청에 의해 생성된 리소스 URI
    3xx (Redirection): Location 값은 요청을 자동을 리디렉션하기 위한 대상 리소스를 가리킴
  • Allow
    허용 가능한 HTTP 메서드
  • Retry-After
    유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간
    503(Service Unavailable): 서비스가 언제까지 불능인지 알려줄 수 있음
profile
개발 기록

0개의 댓글