본문 바로가기
Dev/frontend

HTTP Header

by Luigi.yoon 2017. 11. 1.

HTTP1.0-1.1 Protocol Massage & Header 구성요소

분 류

Massages

Header

설    명

지 원 버 전

생략여부

HTTP1.0

HTTP1.1

상용Header

General-Header

Date

현재시간

ex)Date: Tue, 15 Nov 1994 08:12:31 GMT

Pragma

케시제어

ex)Pragma: no-cache

×

Cache-Control

케시 여부·업데이트시간·내용·지움등

×

Connection

연결끊기-http1.1은 연결을 지속

ex)Connection: close

×

Transfer-Encoding

[entity-body]의 압축방식

×

Upgrade

프로토콜 변경시

ex)Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

×

Via

중계서버(프록시,게이트웨이등)의 지원프로토이름·버전·호스트명

×

Entity-Header

Allow

사용이 허용되는 메소드열거

ex)Allow: GET ,HEAD ,OPTIONS ,TRACE

Content-Encoding

[entity-body]의 리소스 압축방식(gzip, compress, deflate..)

ex)Content-Encoding: gzip

Content-Length

[entity-body]의 리소스 크기(바이트 단위)

ex)Content-Length: 3495

×※2

Content-Type

[entity-body]의 미디어 타입

ex)Content-Type: text/html

expires

자원의 만기 날짜(케시데이터 업데이트요구)

ex)Expires: Thu, 01 Dec 1994 16:00:00 GMT

Last-Modified

가장 최근에 수정된 날짜

ex)Last-Modified: Thu, 01 Dec 1994 16:00:00 GMT

Content-Base

[entity-body]리소스 base-URL

ex)Content-Base: http://www.isoft.co.kr/

×

Content-Language

[entity-body]언어정보

ex)Content-Language: da

×

Content-Location

[entity-body]의 URL

×

×※3

Content-MD5

전송시 [entity-body]의 오류발생검사-[entity-body]일부를 요약※1(MD5 RFC1864)

×

Content-Range

[entity-body]일부분 전송시의 해당부분(이어받기등에 사용)

ex)Content-Range: bytes 4150-5140/5140

×

ETag

케시 업데이트 정보를 위한 임의의 식별숫자※4

ex)ETag: "0-556-343b9e36"

×

※1(MD5 RFC1864)-vase64로 인코딩된 내용이 헤더값으로 존재한다.

※2 requst-line 의 method가 post 인 경우 생략 불가

※3Content-Base가 없는 경우 생략이 불가.

※4Entity-Tag 라고 불리며, If-Match·If-None-Match·If-Range에서 사용

분 류

Massages

Header

설    명

지 원 버 전

생략여부

HTTP1.0

HTTP1.1

Request

Requst-Line

Method※5

GET,POST,HEAD

OPTIONS,PUT,DELETE,TRACE

×

Request-URI

요청 데이터의 절대 주소나 상대주소.

ex)http://www.isoft.co.kt/index.html or /test/helloworld.html

HTTP-Version

HTTP" + 0.9∼1.1(해당 프로토콜)

Request-Header

Authorization

사용자 인증정보 - 사용자 ID와 암호가 함께 Base64로 인코딩※6

ex)Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

From

자원의 생성자나 웹마스터의 전자우편 주소

ex)From: psycho@isoft.co.kr

If-Modified-Since

GET 사용시-헤더 필드에 지정된 날짜보다 나중 자원만 전달(케시일자검색)

ex)If-Modified-Since: Tue, 15 Nov 1994 12:45:26 GMT

Refer

한페이지에서 다른페이지를 요청할 때 (링크시) 이전 페이지 주소제공

ex)Referer: http://www.w3.org/hypertext/DataSources/Overview.html

User Agenter

browser 정보

ex)User-Agent: MyWebBroswer/0.5

Accept

클라이언트의 사용가능 미디어타입

ex)Accept: text/*, text/html, text/html;level=1, */*

×

(Content

Neogotation)

Accept-Charset

클라이언트에서 사용할 수 있는 문자 집합(생략시 모두인식)

ex)Accepr: iso-8859-1, unicode-1-1

×

(Content

Neogotation)

Accept-Encoding

클라이언트에서 제공되는 인코딩 방법(압축)

ex)Accept-Encoding: compress, gzip

×

Accept-Language

클라이언트가 인식할 수 있는 언어(우선순위가능)

ex)Accept-Language: da, en-gb;q=0.8, en;q=0.7(독일어, 영국영어, 영어)

×

Host

서버의 기본URL(하나의 IP주소에 여러개의 이름을 가진 멀티 서버를 지원)

ex)www.w3.org

×

×

If-Match

ETag값 비교-Method수행-(PUT 메소드:해당header무시),다르면 402에러발생

ex)If-Match: "0-556-343b9e36"

×

If-None-Match

ETag값 비교, 다를때-Method수행-(If-Match와 반대),같을 때 에러

ex)If-None-Match: "0-556-343b9e36","0-1e4-34367116"

×

If-Range

클라이언트 캐시 정보를 업데이트 정보 (ETag or Date 비교)

×

If-Unmodified-Since

헤더값에 지정된 날자로부터 수정이 없는경우 Method를 수행

ex) If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT

×

Max-Forwards

이 메시지가 거쳐 갈수 있는 최대 Proxy의 개수를 지정

ex)Max-Forwards: 7

×

Proxy-Authorization

비공개 프록시 서버 유저인증을 위한 코드

×

Range

자원의 일부분만 받을때(이어받기기능) 받을범위 지정

ex)bytes=0-499            : <- 0~499byte를 얻고자 할 때.

×

※5각 메소드에 대한 설명 : ·GET    - 요청한 URL 자료를 전송 (실행화일일 경우 실행 결과를 전송)

                          ·POST   - [Entity-body]를 해당 서버에 수송(CGI활용. 단, Entity-body가 없거나, Content-Length가 없으면 에러..(400에러))

                          ·Head   - 응답메시지는 [Entity-body]없이 전송됨

                      ·OPTIONS-자원과 관련된 필요 사항 결정 및 서버 기능검색

                          ·PUT    -메시지 바디 부분의 데이터를 지정한 요구 URI이름으로 저장한다.(ftp의 PUT과 동일)

                          ·DELETE - 서버에서 요구 URI에 지정된 자원을 지울 수 있다.

                          ·TRACE  - 요구 메시지가 최종 수신처에 도달 경로를 기록하는 루프백(loop back) 검사용

                                (클라이언트 의 요구 메시지가 거쳐가는 프록시나 게이트웨이의 중간 경로부터 최종 수신 서버까지의 경로를 알아낼 때 사용,

                                      Max-Forwards 헤드 필드에는 중간에 거쳐갈 프록시나 게이트웨이 경로의 최대수를 지정)

※6 ID :'Aladdin', PW : 'open sesame'일 경우 'Aladin:open sesame'을 Base64로 인코딩한 코드는 "QWxhZGRpbjpvcGVuIHNlc2FtZQ=="

   주의 : Base64 자체가 공개된 인코딩이므로 보안상 문제가 많다.

분 류

Massages

Header

설    명

지 원 버 전

생략여부

HTTP1.0

HTTP1.1

Response

Status-Line

HTTP-Version

HTTP" + 0.9∼1.1(해당 프로토콜)

Status-Code

수신상태코드-(4Page의 표참조.)

Respon-Phrase

수신 상태코드에 대한 간략한 설명-(4Page의 표참조.)

Response-Header

Location

요구한 정보 실제 위치. 옮겨지거나 다를경우-정보주소가 실제 위치 정보.

(redirection,forwording 단, 절대주소만 가능.)

Server

서버 프로그램의 이름과 버전 정보

ex)Server: Apache/1.3a1

×

WWW-Authenticate   

사용자 인증이 필요한 자원을 요구시, 필요데이터와 서버가 제공하는 인증 방식

ex)WWW-Authenticate: Basic realm="아이 소프트"

×

Age

요구후 원 서버(origin Server)에서 응답생성하지까지의 시간(초단위)

×

Proxy-Authenticate

서버가 프록시 서버일 경우 유저 인증을 요구하기 위한 헤더이다.

×

Public

서버에서 지원 가능한 Method의 리스트(제한의 의미는없음)

ex)Public: OPTIONS, MGET, MHEAD, GET, HEAD

×

Retry-After

503 에러시 -몇초(시간)후에 다시 요구 메시지를 보내라는 정보

ex)Retry-After: Fri, 31 Dec 1999 23:59:59 GMT(Time)

  Retry-After: 120   (Second)

×

Warning

상태코드와 응답 구문에 추가적인 경고

×