菜鸟笔记
提升您的技术认知

http 响应头信息-ag真人游戏

阅读 : 889

http请求头提供了关于请求,响应或者其他的发送实体的信息。

在本章节中我们将具体来介绍http响应头信息。

响应头 说明
allow

服务器支持哪些请求方法(如get、post等)。

content-encoding

文档的编码(encode)方法。只有在解码之后才可以得到content-type头指定的内容类型。利用gzip压缩文档能够显著地减少html文档的下载时间。java的gzipoutputstream可以很方便地进行gzip压缩,但只有unix上的netscape和windows上的ie 4、ie 5才支持它。因此,servlet应该通过查看accept-encoding头(即request.getheader("accept-encoding"))检查浏览器是否支持gzip,为支持gzip的浏览器返回经gzip压缩的html页面,为其他浏览器返回普通页面。 常用

content-length

表示内容长度。只有当浏览器使用持久http连接时才需要这个数据。如果你想要利用持久连接的优势,可以把输出文档写入 bytearrayoutputstream,完成后查看其大小,然后把该值放入content-length头,最后通过bytearraystream.writeto(response.getoutputstream()发送内容。 常用

content-type

表示后面的文档属于什么mime类型。servlet默认为text/plain,但通常需要显式地指定为text/html。由于经常要设置content-type,因此httpservletresponse提供了一个专用的方法setcontenttype。

很常用

date

当前的gmt时间。你可以用setdateheader来设置这个头以避免转换时间格式的麻烦。

expires

应该在什么时候认为文档已经过期,从而不再缓存它?

last-modified

文档的最后改动时间。客户可以通过if-modified-since请求头提供一个日期,该请求将被视为一个条件get,只有改动时间迟于指定时间的文档才会返回,否则返回一个304(not modified)状态。last-modified也可用setdateheader方法来设置。 暂时还没用到但有作用的

location

表示客户应当到哪里去提取文档。location通常不是直接设置的,而是通过httpservletresponse的sendredirect方法,该方法同时设置状态代码为302。

refresh

表示浏览器应该在多少时间之后刷新文档,以秒计。除了刷新当前文档之外,你还可以通过setheader("refresh", "5; url=http://host/path")让浏览器读取指定的页面。
注意这种功能通常是通过设置html页面head区的<meta http-equiv="refresh" content="5;url=http://host/path">实现,这是因为,自动刷新或重定向对于那些不能使用cgi或servlet的html编写者十分重要。但是,对于servlet来说,直接设置refresh头更加方便。

注意refresh的意义是"n秒之后刷新本页面或访问指定页面",而不是"每隔n秒刷新本页面或访问指定页面"。因此,连续刷新要求每次都发送一个refresh头,而发送204状态代码则可以阻止浏览器继续刷新,不管是使用refresh头还是<meta http-equiv="refresh" ...>。

注意refresh头不属于http 1.1正式规范的一部分,而是一个扩展,但netscape和ie都支持它。

server

服务器名字。servlet一般不设置这个值,而是由web服务器自己设置。

set-cookie

设置和页面关联的cookie。servlet不应使用response.setheader("set-cookie", ...),而是应使用httpservletresponse提供的专用方法addcookie。参见下文有关cookie设置的讨论。

www-authenticate

客户应该在authorization头中提供什么类型的授权信息?在包含401(unauthorized)状态行的应答中这个头是必需的。例如,response.setheader("www-authenticate", "basic realm=\"executives\"")。
注意servlet一般不进行这方面的处理,而是让web服务器的专门机制来控制受密码保护页面的访问(例如.htaccess)。

网站地图