* daum.net 접속 시 이미지 파일 다운로드 패킷
Accept-Range | - HTTP1.1 에서 추가 - 클라이언트가 보낸 Range요청헤더를 받아들 일 수 있는지의 여부를 뜻한다. - 받아들 일 수 있다면 byte 단위 지정 아니면 none을 지정한다. |
Age | - HTTP1.1에서 추가 - 프록시서버에서 사용하는 것으로 원래의서버가 문서를 만든 후 얼마만큼의 시간이 지났는지를 ... - Servlet에선 거의 사용하지 않는다. |
Allow | - 서버가 지원하는 요청방법(GET,POST등)을 지정한다. - 상태코드가 405일 때에는 반드시 이 헤더를 설정해야 한다. - 서블릿의 기본 service메소드는 OPTIONS요청에 대해 이 헤더를 자동적으로 만든다. |
Cache-Control | 이것은 문서를 받은 클라이언트가 그 문서를 개시에 어떻게 저장해야 하는것인가를 지시하기 위한 헤더
1. public - 다른 일반적인 규칙들을 위배하더라도문서를 캐시해도 좋다는 뜻. 2. private - 문서를 한 명의 사용자에 대해서만 그리고 비공개(비공유)캐시에만 저장할 수 있다는 뜻. 3. no-cache - 문서를 캐시에 저장하지 말라는 뜻. - 브라우저는 일반적으로 양식데이터를 포함하는 요청에 대해서는 캐싱하지 않는다. 4. no-store - 문서를 캐시뿐만 아니라 다른 어떠한 임시적인 저장장소에도 저장해서는 안된다는 뜻. - 보안상 중요한 정보들을 이렇게 처리하자.! 5. must-revalidate - 클라이언트는 문서를 사용할 때마다 원래의 서버에 대해 문서의 유효성을 재확인해야 한다. 6. proxy-revalidate - 공유 캐시에만 적용된다는 점만 제외한다면 must-revalidate와 동일하다. 7. max-age=xxx - HTTP1.1 을 지원하는 클라이언트데서만 동작. - xxx초 이후에는 문서가 유효하지 않을 수 있다는 뜻. - 응답에 max-age왕 Expires모두 있다면 max-age가 우선 8.s-max-age=xxx - max-age와 동일하나 공유캐시에 적용되는 것이다. |
Connection | - 연결방식에 대한 지시를 의미하는 헤더이다. - Connection: keep-alive 이면 영속적 연결이 쓰인다.(기본) 단 Content-Length 응답헤더를 반드시 포함시켜야 한다. - 영속적 HTTP연결을 사용하지 않으려면 Connection을 close로 하기보단 Content-Length를 지정하지 않으면 된다. - 영속적 연결 자세히 보기 |
Content-Encoding | - 전송 과정 도중에 페이지가 어떻게 인코딩되어야 하는지를 지정한다. - 여기서 MIME 정보가 쓰인다. |
Content-Language | - 문서가 어떤 언어로 쓰여져 있는지를 지정한다. |
Content-Length | - 응답의 크기(바이트 개수)를 의미한다. - 영속적 연결 자세히 보기 에서 ByteArrayOutStream으로 바이트 개수를 알아낸 후 response.setContentLength를 이용해서 헤더에 설정한 후 바이트 스트림으로 writeTo메소드를 호출하는 것이다. - 바이트 개수를 얻어보자! |
Content-Location | - HTTP1.1 에서 추가 - 요청된 문서의 또 다른 주소를 제공하는데 쓰인다. |
Content-MD5 | Content-MD5 응답 헤더는 응답에 포함된 문서의 MD5 다이제스트를 제공한다. 다이제스트(Digest)란? 문서전체가 제대로 전송되었다는걸 확인하기 위한 용도로 쓰인다. |
Content-Range | - HTTP1.1 에서 추가 - 문서의 일부분만을 전송할 때 어디서 어디까지의 문서가 전송되는 것인지를 알려주는 역할을 한다. |
Content-Type | - 헤더의 응답 문서의 MIME형식을 의미한다. |
Date | - 현재 일시를 GMT형식으로 지정한 것이다. - response.setHeader("Date"."xxx") 로 설정한다 - 대부분의 서버들은 이 헤더를 자동적으로 설정해 준다.! |
ETag | - HTTP1.1 에서 추가 - 클라이언트가 나중에 참조할 때 사용할 이름을 문서에 부여하는 역할을 한다. |
Expires | - 이 헤더는 문서가 캐시에 남아 있을 수 있는 유효 시간을 설정한다. - 10분이상 남아 있지 않도록 하는 예제 long currentTime = System.currentTimeMillis(); long termTime = 1000*60*10 // 10분 밀리초 단위로 response.setDateHeader("Expires",currentTime+termTime); - Cache-Control 헤더의 max-age 와 동일한 기능 |
Last-Modified | - 문서가 마지막으로 수정된 일시를 의미한다. - getLastModified 를 이용해서 처리하자.! |
Location | - 문서의 주소를 의미한다. - 상태코드가 300번 대이면 반드시 이 헤더를 포함시켜야 한다. |
Pragma | - HTTP 1.0에서 no-cache로 설정하면, 브라우저는 문서를 캐시에 저장하지 않는다. 그러나 HTTP 1.0 브라우저에 따라서 이 헤더에 대한 반응 방식이 다를 수도 있다는 점을 주의해야 한다. - HTTP 1.1 에서는 Cache-Control:no-cache 쪽이 좀 더 신뢰할 수 있다. |
Refresh | - 브라우저가 지정된 시간 이후에 문서를 자동적으로 다시 로딩하게 만드는데 쓰인다. - 반복적인 재요청이 아니다. - response.setHeader("Refresh","5;URL=http://host/path"); - 이 헤더는 HTTP 1.1의 공식 헤더가 아니지만, 넷스케이프와 익스플로러가 모두 지원하고 있어서 거의 공식적인 헤더라고 해도 무방하다. |
Retry-After | - 응답 상태 코드 503과 함께 쓰이는 것으로 얼마 후에 문서 요청을 다시 시도해야 하는지 알려주는 역할을 한다. |
Server | - 웹서버 종류를 알려주는 헤더로 서블릿이 직접 설정하는일은 거의없다. |
Set-Cookie | - 응답에 담긴 페이지와 연관된 하나의 쿠키를 설정한다. - 쿠키가 여러개면 그 개수 만큼의 Set-Cookie들을 설정한다. - response.setHeader("Set-Cookie",...) 보다는 response.addCookie를 사용하자! |
Trailer | - HTTP1.1 에서 추가 - "chunked" 전송 인코딩 방식으로 전송되는 메시지의 꼬리에 존재하는 헤더 필드들을 식별하기 위한 것이다. - 별로 사용되진 않는다. |
Transfer-Encoding | - "chunked" 전송 코딩을 사용할 때에는 이 헤더의 값을 chunked로 설정 |
Upgrade | - 서버에게 몇 가지 새로운 프로토콜들 중 하나로 전환하자고 요청했을 때 사용한다. - 서블릿에서는 이 헤더를 사용하는 일이 거의 없다. |
Vary | - HTTP1.1 에서 추가 - 클라이언트가 응답 문서의 캐시 여부를 결정할 때 사용할 헤더 이름을 알려주는 역할을 한다. - 거의 쓰이진 않는다. |
Via | - HTTP1.1 에서 추가 - 게이트웨이나 프록시가 사용하는 것으로 요청이 통과한 중간 사이트들의 목록이 담긴다. |
Waning | - 캐시나 내용전송 과정의 오류등을 클라이언트에게 경고하는 역할 - 거의 쓰이진 않는다. |
WWW-Authenticate | - 상태코드가 401이면 반드시 포함되는 헤더 |
@ 참고 및 주의 사항
1. 은 아직도 HTTP1.0 만을 지원하는 브자우저를 고려해서request.getRequestProtocol 로 HTTP1.1을 지원하는지를 체크해야 한다.
2. 공유캐시 : 프록시 서버에 있는 캐시 등을 의미
[출처] 응답 헤더(Response Header)|작성자 가우스
출처 - http://blog.naver.com/PostView.nhn?blogId=kazki7074&logNo=120050374533
'Web > HTTP' 카테고리의 다른 글
apache - 파일 크기 제한을 초과함 $HTTPD (0) | 2013.09.09 |
---|---|
http - compression (0) | 2013.06.27 |
http - cache(web cache) (0) | 2013.06.24 |
http - accept header field (0) | 2013.06.19 |
http - List of HTTP status codes (0) | 2011.12.16 |