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 인 경우 생략 불가
※3 Content-Base가 없는 경우 생략이 불가.
※4 Entity-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 |
상태코드와 응답 구문에 추가적인 경고 |
× |
○ |
|
|
|
Vary |
|
× |
○ |
|
<Status-Code Header 수신상태 표>
1xx: Informational - 요구메시지를 받은 후 연결 중 작업할 때. |
2xx: Success - 요구메시지를 제대로 받았을 때. |
3xx: Redirection - 요구메시지를 수행하기 위해 다른 작업이 필요할 때. |
4xx: Client Error - 요구 메시지의 형식이 틀리거나 빠진 부분이 있을 때. |
5xx: Server Error - 서버에 문제가 있을 때. |
100 Continue |
200 OK 성공처리 |
300 Multiple Choices (실제 발생하지 않음) |
400 Bad Request 요구가 올바르지 않음 |
500 Internal Server Error 예기치 못한 서버처리오류 |
101 Switching Protocols |
201 Created 요구에따라 새로운자원생성(PUT) |
301 Moved Permanently URL이 확정적으로 옮겨짐 |
401 Unauthorized 사용자 인증이 필요 |
501 Not Implemented 요구에 대한 지원불가 (transfer-Encoding) |
|
202 Accepted 요구를 이해하였으며 진행중 |
302 Moved Temporarily URL이 임시적으로 옮겨짐 |
402 Payment Require |
502 Bad Gateway 게이트웨이·프락시의 응답오류 |
|
203 Non-Authoritative Information |
303 See Other |
403 Forbidden 요구는 이해하나 수행거절(PUT) |
503 Service Unavailable 서버부하로 응답불가 |
|
204 No Content 요구자료에 정보가 없음(empty) |
304 Not Modified(If-Modified-Since) 수정날짜에 수정되지 않음 |
404 Not Found 요구한 파일이 없음 |
504 Gateway Time-out |
|
205 Reser Content |
305 Use Proxy |
405 Method Not Allowed 허락된 메소드가 아님 |
505 HTTP Version not supported (요구를 무시할 수 있음..??) |
|
206 Partial Content |
|
406 Not Acceptable |
|
|
|
|
407 Proxy Authentication Required |
|
|
|
|
408 Request Time-out |
|
|
|
|
409 Conflict |
|
|
|
|
410 Gone |
|
|
|
|
411 Length Required |
|
|
|
|
412 Precondition Failed |
|
|
|
|
413 Request Entity Too Large |
|
|
|
|
414 Request-URI Too Large |
|
|
|
|
415 Unsupported Media Type |
|
'개발 > 기타' 카테고리의 다른 글
[기타] How To Enable “Click To Play” For Plug-ins And Flash In Google Chrome (0) | 2012.01.09 |
---|---|
[기타] VMWare SCSI warning message 해결 방법 (0) | 2011.11.23 |
[기타] DNS cache 삭제 (0) | 2011.08.28 |
[LIB] gSoap (0) | 2011.01.27 |
[JAVA] Spring2.5 + ibatis (0) | 2010.11.02 |