HTTP响应头信息及设置方法
当一个 Web 服务器响应一个 HTTP 请求时,响应通常包括一个状态行、一些响应报头、一个空行和文档。
头信息、描述
- 1、Allow
指定服务器支持的请求方法(GET、POST 等)。
- 2、Cache-Control
指定响应文档在何种情况下可以安全地缓存。可能的值有:public、private 或 no-cache 等。Public 意味着文档是可缓存,Private 意味着文档是单个用户私用文档,且只能存储在私有(非共享)缓存中,no-cache 意味着文档不应被缓存。
- 3、Connection
指示浏览器是否使用持久 HTTP 连接。值 close 指示浏览器不使用持久 HTTP 连接,值 keep-alive 意味着使用持久连接。
- 4、Content-Disposition
可以让您请求浏览器要求用户以给定名称的文件把响应保存到磁盘。
- 5、Content-Encoding
在传输过程中,这个头信息指定页面的编码方式。
- 6、Content-Language
这个头信息表示文档编写所使用的语言。例如,en、en-us、ru 等。
- 7、Content-Length
指示响应中的字节数。只有当浏览器使用持久(keep-alive)HTTP 连接时才需要这些信息。
- 8、Content-Type
提供了响应文档的 MIME(Multipurpose Internet Mail Extension)类型。
- 9、Expires
指定内容过期的时间,在这之后内容不再被缓存。
- 10、Last-Modified
指示文档的最后修改时间。然后,客户端可以缓存文件,并在以后的请求中通过 If-Modified-Since 请求头信息提供一个日期。
- 11、Location
这个头信息应被包含在所有的带有状态码的响应中。在 300s 内,这会通知浏览器文档的地址。浏览器会自动重新连接到这个位置,并获取新的文档。
- 12、Refresh
指定浏览器应该如何尽快请求更新的页面。您可以指定页面刷新的秒数。
- 13、Retry-After
这个头信息可以与 503(Service Unavailable 服务不可用)响应配合使用,这会告诉客户端多久就可以重复它的请求。
- 14、Set-Cookie
这个头信息指定一个与页面关联的 cookie。
设置 HTTP 响应报头的方法
通过 HttpServletResponse 对象调用。
- 1、String encodeRedirectURL(String url)
为 sendRedirect 方法中使用的指定的 URL 进行编码,或者如果编码不是必需的,则返回 URL 未改变。
- 2、String encodeURL(String url)
对包含 session 会话 ID 的指定 URL 进行编码,或者如果编码不是必需的,则返回 URL 未改变。
- 3、boolean containsHeader(String name)
返回一个布尔值,指示是否已经设置已命名的响应报头。
- 4、boolean isCommitted()
返回一个布尔值,指示响应是否已经提交。
- 5、void addCookie(Cookie cookie)
把指定的 cookie 添加到响应。
- 6、void addDateHeader(String name, long date)
添加一个带有给定的名称和日期值的响应报头。
- 7、void addHeader(String name, String value)
添加一个带有给定的名称和值的响应报头。
- 8、void addIntHeader(String name, int value)
添加一个带有给定的名称和整数值的响应报头。
- 9、void flushBuffer()
强制任何在缓冲区中的内容被写入到客户端。
- 10、void reset()
清除缓冲区中存在的任何数据,包括状态码和头。
- 11、void resetBuffer()
清除响应中基础缓冲区的内容,不清除状态码和头。
- 12、void sendError(int sc)
使用指定的状态码发送错误响应到客户端,并清除缓冲区。
- 13、void sendError(int sc, String msg)
使用指定的状态发送错误响应到客户端。
- 14、void sendRedirect(String location)
使用指定的重定向位置 URL 发送临时重定向响应到客户端。
- 15、void setBufferSize(int size)
为响应主体设置首选的缓冲区大小。
- 16、void setCharacterEncoding(String charset)
设置被发送到客户端的响应的字符编码(MIME 字符集)例如,UTF-8。
- 17、void setContentLength(int len)
设置在 HTTP Servlet 响应中的内容主体的长度,该方法设置 HTTP Content-Length 头。
- 18、void setContentType(String type)
如果响应还未被提交,设置被发送到客户端的响应的内容类型。
- 19、void setDateHeader(String name, long date)
设置一个带有给定的名称和日期值的响应报头。
- 20、void setHeader(String name, String value)
设置一个带有给定的名称和值的响应报头。
- 21、void setIntHeader(String name, int value)
设置一个带有给定的名称和整数值的响应报头。
- 22、void setLocale(Locale loc)
如果响应还未被提交,设置响应的区域。
- 23、void setStatus(int sc)
为该响应设置状态码。
真诚点赞 诚不我欺~