HTTP 呼应头信息

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,是以httpervletResponse供给了一个公用的方式setContentType。

Date

以后的GMT时辰。你能够或许用setDateHeader来设置这个头以防止转换时辰格局的费事。

Expires

该当在甚么时辰以为文档已过时,从而不再缓存它?

Last-Modified

文档的最初修改时辰。客户能够或许经由过程If-Modified-Since要求头供给一个日期,该要求将被视为一个前提GET,只要修改时辰迟于指按时辰的文档才会前往,不然前往一个304(Not Modified)状况。Last-Modified也可用setDateHeader方式来设置。

Location

表现客户该当到那里去提取文档。Location凡是不是间接设置的,而是经由过程httpervletResponse的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", ...),而是应操纵httpervletResponse供给的公用方式addCookie。参见下文有关Cookie设置的会商。

WWW-Authenticate

客户该当在Authorization头中供给甚么范例的受权信息?在包罗401(Unauthorized)状况行的应对中这个头是必需的。比方,response.setHeader("WWW-Authenticate", "BASIC realm=\"executives\"")。
注重Servlet普通不停止这方面的处置,而是让Web办事器的特地机制来节制受暗码掩护页面的拜候(比方.htaccess)。