HTTP Header

Vorhandenheit ·2022년 2월 4일
0

Web

목록 보기
8/8

HTTP Header

http 메세지는 header와 body로 구분할 수 있습니다.
http 헤더는 http 전송에 필요한 부가정보를 담기 위해서 사용합니다.

Header 형식

<field-name> : <field-value>

1. Header 종류

(1) General header

요청 및 응답 메시지 모두에서 사용 가능한 기본적인 헤더 항목입니다.

  • Date
    http 메세지를 생성한 일시
Date: Sat, 2 Oct 2018 02:00:12 GMT
  • Connection
    클라이언트와 서버 간 연결에 대한 옵션 설정
Connection: close // http 메시지 직후에 TCP 접속을 끊는다는 걸 알립니다
Connection: Keep-Alive // 현재 TCP 커넥션을 유지합니다.
  • Cache-Contorl
    cache 속성을 설정합니다.
Cache-Contorl: no-store // 캐시를 저장하지않음
Cache-Contorl: no-cache // 서버에 확인 후 캐시 사용
Cache-Contorl: must-revalidate // 만료된 캐시를 서버에 확인합니다.
Cache-Contorl: public // 공유캐시에 저장합니다.
Cache-Contorl: private // 특정 사용자 환경에서만 저장합니다.
Cache-Contorl: max-age // 캐시 유효기간을 명시합니다

(2) Entitiy header

Entity(콘텐츠, 본문, 리소스 등)에 대한 설명 헤더항목 입니다. http 메시지 내 포함된 선택적 개체에 대한 구체적인 미디어 타입 등을 설명하고 이미지, 비디오, 오디오, HTML 문서, 전자메일 등의 개체들을 운반할 수 있습니다.

  • Content-Type
    표현 데이터의 형식을 말합니다.
Content-Type: text/html; charset-latin-1 //해당 개체가 html 텍스트 문서이고, iso-latin-1 문자 인코딩 방식으로 표현되는걸 의미합니다.
  • Content-Encoding
    표현 데이터의 압축 방식을 말합니다.
Content-Encoding: gzip, deflate // 헤더의 정보로 압축을 해제합니다.
  • Content-Language
    표현 데이터의 자연언어를 말합니다.
Content-Language: ko
  • Content-Length
    표현데이터의 길이를 지정합니다.(Byte)

  • Last-Modified
    리소스를 마지막으로 갱신한 일시

  • Transfer-Encoding
    chuncked 방식을 주로 사용합니다. 이 방식은 많은 양의 데이터를 분할하여 보내기 때문에 표현 데이터의 길이를 명시해야 하는 Content-Length 헤더와 함께 사용할 수 없습니다.

(3) Request header 요청 헤더

http 헤더 내 요청 헤더 (Request Header) 항목입니다.

  • Host
    - 요청한 호스트 정보(도메인)를 나타냅니다.
    - 하나의 서버가 여러 도메인을 처리해야 할때 호스트 정보를 명시하기 위해 사용됩니다.

  • User-Agent
    클라이언트 소프트웨어(브라우저, OS) 명칭 및 버전 정보를 나타냅니다.

  • From
    클라이언트 사용자 메일 주소를 나태닙니다.

  • Cookie
    서버에 의해 set-cookie로 클라이언트에게 설정된 쿠키정보를 나타냅니다

  • Referer
    - 바로 직전에 머물었던 웹 링크 주소를 나타냅니다.

    • A => B로 이동하는 경우 B를 요청할 때 Refere: A를 포함해서 요청합니다.
  • Authorization
    인증 토큰(JWT/Bearer 토큰)을 서버로 보낼 떄 사용하는 헤더입니다.

Authorization: Basie ~~~~~~
  • Origin
    서버로 Post요청을 보낼 떄, 요청이 어느 주소에서 시작되었는지 나타냅니다.

콘텐츠 협상

클라이언트가 url로 특정 리소스를 요청하면, 서버는 콘텐츠 협상을 통해 가장 적절한 프레젠테이션을 제공합니다. 예를 들면, 영어권에서는 영어로 된, 한국에서는 한글로된 프레젠테이션을 볼 수 있도록, 적절한 리소스 버전을 골라내는 것도 이에 해당합니다.

  • Accept
    클라이언트가 처리하고자 하는 미디어 리소스 타입

  • Accept-Charset
    클라이언트가 이해할 수 있는 캐릭터 인코딩

Accept-Charset: utf-8, iso-8859-1; q=0.5; *; q=0.1 // 우선순위: utf-8 > iso-8859 > *
  • Accept-Encoding
    수용 가능한(압축을 지원하는) 콘텐츠 인코딩

  • Accept-Language
    클라이언트가 선호하는 언어

Accept-Language: ko, fr; q=0.8, en; q=0.5 // 우선순위: ko> fr> en

(4) Response header 응답 헤더

http 헤더 내 응답 헤더 항목

  • Server
    요청을 처리하는 서버 소프트웨어 정보를 나타냅니다.
Server: Apache/2.2.22(Debian)
  • Date
    메시지가 발생한 날짜와 시간
Date: Tue, 15 Nov 1994 08:12:31 GMT
  • Location
    웹 브라우저는 3xx 응답 결과에 Location헤더가 있으면, Location 위치로 리다이렉트합니다.(자동이동)

  • Allow
    허용 가능한 HTTP 메서드

Allow: GET, HEAD, PUT
  • Retry-After
    user-agent가 다음 요청을 하기까지 기다려야 하는 시간

  • Set-Cookie
    서버측에서 클라이언트에게 세션 쿠키정보를 설정(RFC 2965에서 규정)

  • Expires
    리소스가 지정된 일시까지 케시료 유효함을 나타냅니다. 응답 컨텐츠가 언제 만료되는 지를 나타냅니다.

  • ETage
    http 컨텐츠가 바뀌었는지를 검사할 수 있는 테그

  • Access-Control-Allow-Origin
    요청을 보내는 프론트 주소와 받는 백엔드 주소가 다르면 CORS 에러가 발생

Access-Control-Allow-Origin: * //모든 주소에 cors요청을 허용합니다.

출처

https://gmlwjd9405.github.io/2019/01/28/http-header-types.html

profile
읽고 기록하고 고민하고 사용하고 개발하자!

0개의 댓글