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 | 상태코드와 응답 구문에 추가적인 경고 | × | ○ |
|
'Dev > frontend' 카테고리의 다른 글
HTTP 상태코드 (status code) (0) | 2017.11.01 |
---|---|
표현 언어 (EL - Expression Language) (0) | 2017.11.01 |
JSTL 일정 시간 후 페이지 Refresh 하기 (0) | 2017.11.01 |
HTML에 특수 문자들을 명시하는 방법 (0) | 2017.11.01 |
jstl custom tag 에서 spring bean 주입하기 (0) | 2017.10.25 |