HTTP 헤더

Siwoo Pak·2021년 9월 16일
0

http/네트워크

목록 보기
4/12

Http 메시지

  • 헤더와 바디로 구분
  • 바디에선 메시지 본문(=payload)을 통해서 표현 데이터를 전달
  • 표현은 요청이나 응답에서 전달할 실제 데이터
  • 표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공
    • 데이터유형(html,json 등), 데이터 길이, 압축 정보등

Http 헤더

  • Http 헤더는 field-name:field-value 형식을 따르며, field-name은 대소문자 구분없음.
  • http 전송에 필요한 모든 부가정보
    • 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시관리 정보
  • 표준 헤더가 너무 많음
  • 필요시 임의의 헤더 추가 가능

표현, 콘텐츠 형상 등 다양한 헤더의 역할

1. 표현 헤더(Representation Headers)

  • 표현 데이터의 형식, 압축방식, 자연 언어, 길이 등을 설명하는 헤더.

  • 요청, 응답 둘다 사용

  • 종류

    • Content-Type: 표현 데이터의 형식
      (text/html; charset=utf-8, application/json, image/png 등)
    • Content-Encoding: 표현 데이터의 압축 방식.
      표현데이터를 압축하기 위해 사용
      데이터를 전달하는 곳에서 압축 후 인코딩 헤더 추가
      데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축 해제
      (gzip, deflate, identity)
    • Content-Language: 표현 데이터의 자연 언어
      (ko, en, en-US 등)
    • Content-Length: 표현 데이터의 길이
      바이트 단위.
      전송 코딩을 사용하면 content-length를 사용하면 안됨

    Transfer-Encoding(전송코딩)

    • 사용자에게 엔티티를 안전하게 전송하기 위해 사용하는 인코딩 형식을 지정함.
    • hop by hop 헤더로, 리소스 자체가 아닌 두 노드 사이에 메시지를 적용하는 것
    • 다중 노드 연결의 각각의 세그먼트는 전송 코딩의 값을 다르게 사용할 수 있음
    • 만약 전체 연결에 있어 데이터를 압축하고자 한다면, end to end 헤더인 Content-Encoding 헤더를 대신 사용
    • 종류: chunked, compress, deflate, gzip, identity

Http 주요 헤더

HTTP 헤더를 이용한 콘텐츠 협상(협상 헤더)

  • 협상 헤더는 요청시에만 사용
  • 종류
    • Accept: 클라이언트가 선호하는 미디어 타입 전달
    • Accept-Charset: 클라이언트가 선호하는 문자 인코딩
    • Accept-Encoding: 클라이언트가 선호하는 압축 인코딩
    • Accept-Language: 클라이언트가 선호하는 자연 언어

      만약, 원하는 언어를 서버에서 지원하지 않을 시엔 디폴드 언어로 전송됨. 하지만 우선순위를 정해서 협상헤더를 보낸다면 해결! 그 때 Quality Values(q) 값을 사용
      (예> Accept-Language: ko-Kr, ko:q=0.9, en-Us;q=0.8)

참고

profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글