1. response

- request 기본 객체와는 정반대로 웹 브라우저에 보내는 응답 정보를 담는다.

- 헤더 정보 입력과 리다이렉트 기능이 있다.


2. 헤더 정보 전송

- 응답 정보에 헤더를 추가하는 기능을 제공한다.

- 헤더 정보에는 주로 웹 서버에 대한 정보를 담는 경우가 많다.

 메서드

 반환형 

 설명 

 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 naem, long date)

 void

 name 헤더의 값을 date로 지정한다.

 setHeader(String name, String value)

 void

 name 헤더의 값을 value로 지정한다.

 setIntHeader(String name, int value)

 void

 name 헤더의 값을 정수 값 value로 지정한다.

 containsHeader(String name)

 boolean

 이름이 name인 헤더를 포함하고 있을 경우 true를, 그렇지 않을 경우 false를 리턴한다.


3. 캐시 제어를 위한 응답 헤더

- 데이터가 변경되었음에도 불구하고 웹 브라우저가 변경된 내역을 출력되지 않는 이유는 실제 서버가 생성한 결과를 출력하지 않고 캐시에 저장된 데이터를 출력하기 때문이다.

- 거의 내용이 변경되지 않는 사이트는 웹 브라우저 캐시를 통해서 빠른 응답을 제공할 수 있다.

- 그러나, 게시판과 같이 내용이 자주 변경되는 사이트는 웹 브라우저 캐시가 적용되면 사용자는 변경된 내용을 확인할 수 없다.

- HTTP는 특수한 응답 헤더를 통해서 웹 브라우저가 응답 결과를 캐시 할 것인지에 대한 설정을 할 수 있다.

- Cache-control 응답헤더 : HTTP 1.1 버전에서 지원하는 헤더, 값을 'no-cache'로 지정하면 캐시에 저장하지 않는다.

- Pragma 응답헤더 :HTTP 1.0 버전에서 지원하는 헤더, 값을 'no-cache'로 지정하면 캐시에 저장하지 않는다.


<% response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Cache-Control", "no-store"); response.setHeader("Expires", 1); // Expires 응답 헤더는 HTTP 1.0 응답 헤더로서 응답 결과의 만료일을 지정할 때 입력한다. // 캐시 대상이 아닌 문서의 경우 0이나 1과 같은 값을 입력해서 현재 시간 이전으로 만료일을 지정함으로써 응답 결과가 캐시 되지 않도록 설정하게 된다. %>


4. 리다이렉트

- 웹 서버가 웹 브라우저에게 다른 페이지로 이동하라고 지시하는 것이다.

- response.sendRedirect(String location) 메서드를 사용해서 리다이렉트 할 수 있다. (location에 이동할 페이지 주소를 입력한다)

- 리다이렉트를 사용할 때에도 인코딩을 알맞게 수행해주어야 한다.

+ Recent posts