response 기본 객체 01
response 기본 객체는 request 객체와는 반대의 기능을 수행한다.
response 기본객체는 웹 브라우저에 보내는 응답 정보를 담는다.
- 헤더 정보 입력
- 리다이렉트 하기
웹 브라우저에 헤더 정보 전송
- request : 헤더 정보를 읽어오는 기능을 제공
- response : 응답 정보에 헤더를 추가하는 기능을 제공
메서드 |
리턴 타입 |
설명 |
addDateHeader(String name, long date) |
void |
name 헤더에 date를 추가한다. |
addHeader(String name, String value) |
void |
name 헤더에 value를 값으로 추가한다. |
addIntHeader(String name, int value) |
void |
name 헤더에 정수 값 value 를 추가한다. |
setDateHeader(String name, long date) |
void |
name 헤더에 값을 date로 지정한다. |
setHeader(String name, String value) |
void |
name 헤더의 값을 value 로 지정한다. |
setIntHeader(String name, int value) |
void |
name 페더의 값을 정수 값 value 로 지정한다. |
containsHeader(String name) |
void |
이름이 name인 헤더를 포함하고 있을 경우 true를, 그렇지 않을 경우 false 를 리턴한다. |
- add 로 시작하는 메서드는 기존의 헤더에 새로운 값을 추가
- set 으로 시작하는 메서드는 새로 헤더의 값을 지정할 때 사용
웹 브라우저 캐시 제어를 위한 응답 헤더 입력
* 새로운 내용이 DB 에 추가되었는데도 불구하고 웹 브라우저에 출력되는 내용이 바뀌지 않는 경우가 있다.
이 경우 중 하나는 웹 브라우저가 실제 서버가 생성한 결과를 출력하지 않고 캐시에 저장된 데이터를 출력하기 때문
▣ HTTP는 캐시를 할 것인지 여부를 설정할 수 있다.
- Cache-Control 응답 헤더
: HTTP 1.1 버전에서 지원하는 헤더
: 헤더값을 "no-cache"로 지정하면 웹 브라우저는 응답 결과를 캐시에 저장하지 않는다.
- Pragma 응답 헤더
: HTTP 1.0 버전에서 지원하는 헤더
: 헤더 값을 "no-cache"로 지정하면 웹 브라우저는 응답 결과를 캐시에 저장하지 않는다.
* 주로 사용되는 웹 브라우저는 HTTP 1.1 버전을 지원하는데 HTTP 1.0 버전을 지원하는 웹 브라우저가 존재 할 수 있기 때문에 Cache-Control 응답 헤더와 Pragma 응답 헤더 둘 다 설정해 주는 것이 좋다.
1 2 3 4 5 6 7 8 | <% response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.addHeader("Cache-Control", "no-Store"); response.setDateHeader("Expires", 1L); %> | cs |
- Expires 응답 헤어는 HTTP 1.0 응답 헤더로서 응답결과의 만료일을 지정할 때 입력
: 만료 시간은 1970 년 1월 1일 이후를 기준으로 1/1000초 단위로 입력하는데 캐시 대상이 아닌 문서의 경우 0이나 1과 같은 값을 입력해서 현재 시간 이전으로 만료일을 지정함으로써 응답 결과가 캐시되지 않도록 설정하게 된다.