HTTP 헤더

1. 용도

  • 헤더에는 전송에 필요한 모든 부가 정보가 있다.
  • 메시지 바디의 내용, 메시지 바디의 크기, 인증, 요청 클라이언트, 서버 정보 등등…

2. 분류(RFC)

  • 헤더 분류
    • General header > Connection: close
    • Request header > User-Agent: Mozilla/5.0
    • Response header > Server: Apache
    • Entity header > Content-Type: text/html, ContentLength
  • HTTP BODY
    • 메시지 본문(=페이로드) : 표현 데이터 전달
      • 표현은 요청이나 응답에서 전달할 실제 데이터
      • 표현 헤더 : 표현 데이터를 해석할 수 있는 정보 제공 (html, json, 데이터 길이 등등)
  • 표현
    • Content-Type : 표현 데이터의 형식 (text/html;charset-uft-8, application/json, image/png)
    • Content-Encoding : 압축방식 (gzip)
    • Content-Language : 언어 (ko, en, en-US)
    • Content-Length : 데이터 길이 (byte) »> Transfer-Encoding은 Content-Length 사용 불가
  • 협상(콘텐츠 네고시에이션) : 클라이언트가 원하는 표현 요청
    • Accept-Encoding
    • Accept-Language
    • Accept-Charset

3. 전송 방식

  • 단순 전송 : 한 번에 그대로 보냄
  • 압축 전송 : (Content-Encoding: gzip)
  • 분할 전송 : 청크로 쪼개서 보냄(Transfer-Encoding: chunked) - Content-Length를 보내면 안된다.
  • 범위 전송 : 어디까지 보냈는지 범위를 알려줌

  • 일반 정보
    • From : 유저의 이메일 정보
    • Referer : 이전 웹 페이지 주소
    • User-Agent : 유저의 애플리케이션 정보
    • Server : 서버의 소프트웨어 정보
    • Date : 메시지의 생성 날짜
    • Host : 도메인 주소 (필수)
  • 인증
    • Authorization : 클라이언트 인증 정보를 서버에 전달
  • 쿠키
    • Set-Cookie : 서버 > 클라이언트로 쿠키 전달(응답)
    • Cookie : 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달
  • 캐시
    • 같은 데이터를 계속 다운로드 받지 않도록 한다.
    • 브라우저 로딩 속도가 빨라진다.

Tags:

Categories:

Updated:

Comments