꿀 떨어지는 코딩 양봉장

HTTP 헤더1 - 일반 헤더 본문

Computer Science/HTTP

HTTP 헤더1 - 일반 헤더

nayoon030303 2022. 5. 22. 00:29

HTTP 헤더 게요

HTTP 헤더 형식

  • header-field = field-name ":' OWS field-value OWS (OWS: 띄어쓰기 혀용)
  • field-name은 대소문자 구분이 없다. 

HTTP 헤더 용도 

  • HTTP 전송에 필요한 모든 부가정보가 들어있다. 

HTTP 헤더 (과거: RFC2616)

과거에는 HTTP 헤더를 총 4가지로 분류했다. 하지만 2014년 RFC7230 ~7235 가 등장하면서 그전 RFC2616는 폐기되었다. 

그전까지는 Entity라는 용어를 사용했지만 2014년 버전이 나오면서 Entity => Representation(표현)이라는 용어로 변경되었다. 

Representatin = representation Metadata + representation Data

표현 = 표현 메타데이터 + 표현 데이터 를 뜻한다. 

 

HTTP 표현 헤더

표현 헤더는 전송과 응답에 둘 다 사용할 수 있다.

Content - Type

  • 표현 데이터의 형식을 설명한다. 
  • Content-body에 들어가는 표현 데이터 형식을 설명한다. 
  • 예) text/html: charset = utf-8, image/png...

Content - Encoding

  • 표현 데이터를 압축하기 위해서 사용된다. 
  • 보내는 쪽에서 데이터를 압축 한 다음 인코딩하고 인코딩 헤더를 추가한다. 
  • 받는 쪽에서 인코딩 헤더를 보고 압축을 해제한다.
  • 예) gzip, deflate...

Content - Language

  • 표현 언어의 자연 언어를 표현한다. body에 들어있는 언어가 영어인지, 한국어인지, 중국어인지를 알려준다. 
  • 예) ko, en, en-US

Content - Length

  • 표현 데이터의 길이이고 바이트 단위이다. 
  • Transfer-Encoding을 사용하면 Content-Length를 상용하면 안 된다. 

 

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

협상 헤더는 요청 시에만 사용할 수 있다. 

클라이언트가 선호하는 표현을 요청할 때 서버로 전송하는 것이다. 

예를 들면 클라이언트가 선호하는 언어, 미디어 타입 등을 전송하고 서버는 그것을 보고 지원해 줄 수 있는 요청이면 응답을 해줄 때 지원한다. 

Accept

  • 클라이언트가 선호하는 미디어 타입을 주세요 하고 전달

Accept - Charset

  • 클라이언트가 선호하는 문자 인코딩을 주세요 하고 전달

Accept - Encoding

  • 클라이언트가 선호하는 압축 인코 등을 주세요 하고 전달 

Accept -  Language

  • 클라이언트가 선호하는 자연언어를 주세요 하고 전달 

 

HTTP 전송 방식

  • 단순 전송: 메시지 바디에 대한 Content-Length를 지정하고 길이 값을 알 수 있을 때 사용
  • 압축 전송: 서버에서 메시지 바디를 압축해서 전송
  • 분할 전송: 분할해서 전송한다.  분할 전송을 사용할 때는 content-length를 사용하면 안 된다. 
  • 범위 전송: 범위를 지정해서 요청한다. 그러면 그만큼의 범위를 서버에서 전송

 

HTTP  일반 정보

  • Form: 유저의 이메일 정보 
  • Refer: 이전 웹 페이지 주소, 유입 경로 분서 가능
  • User-Agent: 유저 에이전트 애플리케이션 정보, 클라이언트의 애플리케이션 정보(웹 브라우저 정보 등등)
  • Server: 요청을 처리하는 오리진 서버의 소프트웨어 정보 
  • Date: 메시지가 생성된 날짜

 

이렇게 헤더들이 많은지 처음 알았습니다. 

아직 인증과 쿠키 관련 헤더들이 남았지만 다음 포스팅에서 설명하겠습니다.

'Computer Science > HTTP' 카테고리의 다른 글

HTTP 상태 코드  (0) 2022.05.01
HTTP 메서드 활용  (0) 2022.04.09
HTTP 메서드  (0) 2022.04.04
HTTP의 기본  (0) 2022.04.03
HTTP 웹 기본 지식 공부하기  (2) 2022.03.31