HTTP 응답 헤더 정보
HTTP 요청 헤더는 요청, 응답 또는 기타 전송 엔터티에 대한 정보를 제공합니다.
이번 장에서는 HTTP 응답 헤더 정보에 대해 자세히 소개하겠습니다.
응답 헤더 | 설명 |
---|---|
Allow | 서버에서 지원하는 요청 방법(예: GET, POST 등)입니다. |
Content-Encoding | 문서의 인코딩(Encode) 방식입니다. 디코딩 후에만 Content-Type 헤더에 지정된 콘텐츠 유형을 얻을 수 있습니다. gzip을 사용하여 문서를 압축하면 HTML 문서의 다운로드 시간을 크게 줄일 수 있습니다. Java의 GZIPOutputStream은 쉽게 gzip 압축을 수행할 수 있지만 Unix의 Netscape와 Windows의 IE 4 및 IE 5만이 이를 지원합니다. 따라서 서블릿은 Accept-Encoding 헤더(예: request.getHeader("Accept-Encoding"))를 확인하여 브라우저가 gzip을 지원하는지 확인하고, gzip을 지원하는 브라우저에 대해 gzip으로 압축된 HTML 페이지를 반환하고, 일반 헤더를 반환해야 합니다. 다른 브라우저의 HTML 페이지입니다. |
Content-Length | 은 콘텐츠 길이를 나타냅니다. 이 데이터는 브라우저가 지속적인 HTTP 연결을 사용하는 경우에만 필요합니다. 지속적인 연결을 활용하려면 출력 문서를 ByteArrayOutputStream에 작성하고 완료 시 크기를 확인한 다음 값을 Content-Length 헤더에 입력하고 마지막으로 byteArrayStream.writeTo(response.getOutputStream()을 통해 콘텐츠를 보낼 수 있습니다. ). |
Content-Type | 은 다음 문서가 속한 MIME 유형을 나타냅니다. Servlet의 기본값은 text/plain이지만 일반적으로 Content-Type을 명시적으로 지정해야 합니다. HttpServletResponse |
Date | 현재 GMT 시간을 사용하여 이 헤더를 설정하면 |
문서를 언제 변환해야 하는지 알 수 있습니다. 더 이상 캐시되지 않습니까? | |
클라이언트는 If-Modified-Since 요청 헤더를 통해 날짜를 제공할 수 있으며 수정 시간이 다음 날짜 이후인 경우에만 요청이 조건부 GET으로 처리됩니다. 지정된 시점의 문서가 반환되고, 그렇지 않으면 304(수정되지 않음) 상태가 반환됩니다. Last-Modified는 setDateHeader 메소드로 설정할 수도 있습니다. | |
은 고객이 검색해야 하는 위치를 나타냅니다. 위치는 일반적으로 직접 설정되지 않습니다. 대신 상태 코드도 302로 설정하는 HttpServletResponse의 sendRedirect 메서드를 사용하세요. | |
는 또한 브라우저가 문서를 새로 고쳐야 하는 시간(초)을 나타냅니다. 현재 문서를 새로 고치려면 setHeader("Refresh", "5; URL=http://host/path")를 사용하여 브라우저가 지정된 페이지를 읽을 수 있습니다. | 이 기능은 일반적으로 설정에 의해 설정됩니다. HTML 페이지의 HEAD 영역에 구현, 이는 자동 새로 고침 또는 리디렉션이 HTML에 매우 중요하기 때문입니다. CGI나 Servlet을 사용할 수 없는 작가의 경우, Servlet의 경우 Refresh 헤더를 직접 설정하는 것이 더 편리합니다 .새로 고침의 의미는 "이 페이지를 새로 고치거나 N초마다 지정된 페이지에 액세스"가 아니라 "이 페이지를 새로 고치거나 N초 후에 지정된 페이지에 액세스"라는 의미입니다. 따라서 지속적인 새로 고침을 위해서는 매번 새로 고침 헤더를 보내야 하며, 204 상태 코드를 보내면 브라우저가 새로 고침 헤더를 사용하든 를 사용하든 새로 고침을 계속하지 못하게 될 수 있습니다. Refresh 헤더는 공식 HTTP 1.1 사양의 일부가 아니라 확장이지만 Netscape와 IE 모두 이를 지원합니다. |
Server | 서버 이름입니다. 서블릿은 일반적으로 이 값을 설정하지 않지만 웹 서버 자체에서 설정합니다. |
Set-Cookie | 페이지와 관련된 쿠키를 설정합니다. 서블릿은 response.setHeader("Set-Cookie", ...)를 사용해서는 안 되지만, HttpServletResponse에서 제공하는 전용 메소드인 addCookie를 사용해야 합니다. 아래의 쿠키 설정에 대한 설명을 참조하세요. |
WWW-Authenticate | 클라이언트가 Authorization 헤더에 어떤 유형의 인증 정보를 제공해야 하나요? 이 헤더는 401(승인되지 않음) 상태 줄이 포함된 응답에 필요합니다. 예를 들어 response.setHeader("WWW-Authenticate", "BASIC 영역=\"executives\"")입니다. 서블릿은 일반적으로 이러한 측면을 처리하지 않지만 웹 서버의 특수 메커니즘이 비밀번호로 보호된 페이지(예: .htaccess)에 대한 액세스를 제어하도록 합니다. |