`
Gavin.Chen
  • 浏览: 322688 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

常见的HTTP应答头

阅读更多

        Web服务器的HTTP应答一般由以下几项构成:一个状态行,一个或多个应答头,一个空行,内容文档。设置HTTP应答头往往和设置状态行中的状态代码结合起来。例如,有好几个表示“文档位置已经改变”的状态代码都伴随着一个Location头,而401(Unauthorized)状态代码则必须伴随一个WWW-Authenticate头。

 

 下面为常见应答头及其含义 :
  
有关HTTP头详细和完整的说明,请参见http://www.w3.org/Protocols/ 规范。

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连接时才需要这个数据。如果你想要利用持久连接的优势,可以把输出文档写入ByteArrayOutputStram,完成后查看其大小,然后把该值放入Content-Length头,最后通过byteArrayStream.writeTo(response.getOutputStream()发送内容。 

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

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都支持它。 


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)。

分享到:
评论

相关推荐

    HTTP应答码

    HTTP应答码 各种类型的应答码以及对应的描述 方便查阅

    八、设置HTTP应答头

    8.1 HTTP应答头概述 Web服务器的HTTP应答一般由以下几项构成:一个状态行,一个或多个应答头,一个空行,内容文档。设置HTTP应答头往往和设置状态行中的状态代码结合起来。例如,有好几个表示“文档位置已经改变”的...

    HTTP状态码及其含义 下表显示了常见的HTTP 1.1状态代码以及它们对应的状态信息和含义。

    203 Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。 204 No Content 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,...

    HTTP协议分析1

    1. 支持客户/服务器模式 2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径 3. 灵活:HTTP 允许传输任意类型的数据对象 4. 无连接:无连

    七、HTTP应答状态

    7.1 状态代码概述 Web服务器响应浏览器或其他客户程序的请求时,其应答一般由以下几个部分组成:一个状态行,几个应答头,一个空行,内容文档。下面是一个最简单的应答: ...

    HTTP 响应头信息

    应答头 说明 Allow 服务器支持哪些请求方法(如GET、POST等)。 Content-Encoding 文档的编码(Encode)方法。只有在解码之后才可以得到Content-Type头指定的内容类型。利用gzip压缩文档能够显著地减少...

    http1.0客户端和服务器

    简单的 HTTP1.0 客户端程序能够接受服务器响应,在命令行上显示出服务器的应答头部,把服务器的应答内容保存在一个文件中;服务器能实现对所有的请求给予应答,其中要求对HTTP 的GET 方法根据RFC 规定给予成功的响应...

    实验6 HTTP网页访问应用分析实验.pdf

    HTTP是一种用于从Web服务器端传送超文本标记语言(HTML-Hyper Text Markup Language)文件到客户端浏览器的传送协议,它是Internet上最常见的协议之一。我们通常访问的网页,就是通过HTTP协议进行传送的。 HTTP是一...

    基于Labview的HTTP的GET与POST请求示例

    HTTP 的工作方式是客户机与服务器之间的请求-应答协议。 web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。 举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应...

    HTTP协议的作用原理

    HTTP协议的作用原理 1.连接 2.请求 3.应答

    HTTP协议详解(真的很经典)

    服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息...

    IIS中http头的作用介绍

    简单的说就是,将不同的网站空间对应不同的域名,以连接请求中的域名字段来分发和应答正确的对应空间的文件执行结果。 举个例子来说,一台服务器ip地址为192.168.1.10,有两个域名和对应的空间在这台服务器上,使用...

    HTTP GET/POST传递参数

    介绍如何通过HttpClient模块来创建Http连接,并分别以Http GET与Http POST方法来传递参数,连接之后取回Web ...重点是如何使用HttpClient的模块来完成Http的请求与应答。 分享参考自Android SDK开发范例大全第3版。

    http协议详解

    服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息...

    HTTP协议详解

    服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息...

    http 1.0 源码

    请求和应答的格式在超文本传输协议(HTTP)中有定义。HTTP协议使用纯文本。 例如: $telnet www.ouc.edu.cn 80 Trying 211.64.150.68... Connected to www.ouc.edu.cn(211.64.150.68) Escape character is '^]'. ...

    nodemcu-webconfig.zip_.nodemcu.com/_ESP8266 html_esp8266 http_es

    基本思路是ESP8266工作AP模式下,作为TCP Server监听TCP Client的...ESP8266收到请求后,读出保存在Flash中的HTML格式网页,并将带有HTML应答头的HTML网页发送给网页,网页端就可以显示出网页。下面是具体实现步骤:

    android HTTP通信例子(json数据传递)

    使用android与javaWEB进行通信的例子,实现信息的基本传递及文件上传下载

    HTTP协议的简介及原理

    HTTP协议是基于请求/响应格式的 HTTP的请求格式:统一资源标识符、协议版本号,后边是... HTTP协议的版本号应答状态码及应答状态吗说明 接收的元信息 ****空行*** 实体 ————————————————————

Global site tag (gtag.js) - Google Analytics