[JSP] HTTP 헤더


HTTP 헤더


1. HTTP 헤더


아래 헤더 정보는 텍스트만 있는 HTML 문서에 대한 요청/응답 헤더임.

HTTP Version 1.1을 기준으로 작성된 헤더 정보임.

(클라이언트 환경은 Windows XP, NET Framework 1.1, IE 6.0)


2. 요청 헤더


(1)  GET /test/test.htm HTTP /1.1

요청 Method와 요청 파일 정보, HTTP 버전을 뜻함.

HTTP 프로토콜은 클라이언트가 서버에게 요청하는 방식에 대한 몇 가지 동작을 정의하고 있음.

즉, 요청 Method 란 클라이언트가 서버로의 요청하는 방법을 명시함.


1) GET

지정된 리소스(URI)를 요청함.

 

2) POST

서버가 클라이언트의 폼 입력 필드 데이터의 수락을 요청함.

클라이언트는 서버로 HTTP Body에 Data 를 전송함.

 

3) HEAD

문서의 헤더 정보만 요청함.

응답 데이터(Body)를 받지 않음.


4) PUT

클라이언트가 전송한 데이터를 지정한 URI로 대체함.

cf.) FTP의 PUT과 동일함.

역시 클라이언트는 서버로 HTTP Body에 Data를 전송함.

 

5) DELETE

클라이언트가 지정한 URI 를 서버에서 삭제함.

 

6) TRACE

 클라이언트가 요청한 자원에 도달하기까지의 경로를 기록하는루프백(loop back) 검사용을 말함.

클라이언트가 요청 자원에 도달하기 까지 거쳐가는 프록시나 게이트웨이의 중간 경로부터 최종 수진 서버까지의 경로를 알아낼 때 사용함.

 

(2) Accept

클라이언트가 허용할 수 있는 파일 형식을 뜻함.(MIME TYPE)

*/* 은 특정 유형이 아닌 모든 파일형식을 다 지원한다는 의미임.


(3) User-Agent

클라이언트 소프트웨어(브라우저, OS 등)의 이름과 버전 등을 뜻함.

위의 정보에서는 MS IE 6.0, 윈도우 XP, .NET Framework 1.1 버전이 클라이언트에 설치되어 있음을 나타냄.


(4) Host

요청을 한 서버의 Host 임.


(5) If-Modified-Since

페이지가 수정되었으면 최신 버전 페이지 요청을 위한 필드임.

만일 요청한 파일이 이 필드에 지정된 시간 이후로 변경되지 않았다면, 서버로부터 데이터를 전송 받지 않음.

단, 이 경우 서버로부터 Not Modified (304) 상태코드를 전송 받음.


위의 헤더 정보는 동일한 파일을 재요청했을 때의 응답 헤더임.

파일을 변경사항이 없으므로 304(수정되지 않음)과 Content-Length : 0(데이터 받지 않음) 응답을 받음.

이렇게 함으로써 HTTP 는 요청의 부하를 줄이고 있음.


(6)  Refer

특정 페이지에서 링크를 클릭하여 요청을 하였을 경우에 나타나는 필드로써 링크를 제공한 페이지를 나타냄.

위의 요청 헤더에는 나와 있지 않지만 이 정보도 헤더에 자주 등장하는 필드임.


(7) Cookie

웹 서버가 클라이언트에 쿠키를 저장해 놓았다면 해당 쿠키의 정보를 이름과 값 쌍으로 웹 서버에게 전송함.

역시 위의 요청에는 없지만 자주 등장하는 필드임.


(8) Accept-Language

클라이언트가 인식할 수 있는 언어를 뜻함.

우선 순위 지정이 가능합니다


(9) Accept-Encoding

클라이언트가 인식할 수 있는 인코딩(압축) 방법을 뜻함.

위의 내용에서는 서버에서 gzip, deflate 로 압축한 리소스를 클라이언트가 해석 할 수 있다는 것을 뜻함.

만일 서버에서 압축을 했으면 응답헤더에 Content-Encoding 헤더에 해당 압축 방법이 명시됨.


3. 응답 헤더

(1)  HTTP /1.1 200 OK

HTTP 버전과 응답 코드를 뜻함.

여기서 200 은 성공을 뜻함.


(2) Server

웹 서버 정보를 나타냄.

위의 정보에서는 Microsoft IIS 5.1 을 뜻함.


(3) Date

현재 날짜를 나타냄.


(4) Content-Type

요청한 파일의 MIME 타입을 나타냄.

text/html 은 text 중 html 파일임을 나타냄.


(5) Last-Modified

요청한 파일의 최종 수정일을 나타냄.


(6) Content-Length

헤더 이후 이어지는 데이터의 길이을 뜻함. (바이트 단위)

이어지는 데이터란 요청한 파일의 데이터라 보시면 됨.


(7) ETag

캐쉬 업데이트 정보를 위한 임의의 식별 숫자을 뜻함.


아래에 링크로 가시면 HTTP 1.1 기준의 Header 의 상세 정보를 보실 수 있음.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html


'Programing > JSP/Servlet' 카테고리의 다른 글

[JSP] 커넥션 풀  (2) 2014.12.19
[Servlet] 서블릿 이벤트  (0) 2014.12.18
[Servlet] 서블릿 필터  (0) 2014.12.10
[Servlet] 서블릿 기초  (0) 2014.12.10
[Servlet] 데이터 저장 영역  (0) 2014.12.10