HTTP报头

Refresh
代表浏览器应该在有点日子过后刷新文书档案,以秒计。除了刷新当前文书档案之外,你还足以因此setHeader(“Refresh”,
“5; U奇骏L=http://host/path")让浏览器读取指定的页面。
注 意那种效果通常是通过安装HTML页面HEAD区的<META HTTP-EQUIV=”Refresh”
CONTENT=”5;UGL450L=http://host/path">实现,这是因为,自动刷新或重定向对于那些不能使用CGI或Servlet的
HTML编写者十二分关键。可是,对于Servlet来说,直接设置Refresh头特别惠及。
只顾Refresh的含义是“N秒之后
刷新本页面或访问钦定页面”,而不是“每隔N秒刷新本页面或访问钦定页面”。因而,延续刷新要求每一回都发送三个Refresh头,而发送204情形代码则
能够阻挡浏览器继续刷新,不管是使用Refresh头照旧<META
HTTP-EQUIV=”Refresh” …>。
在意Refresh头不属于HTTP
1.1行业内部规范的一片段,而是3个恢宏,但Netscape和IE都帮忙它。

Last-Modified
文书档案的末梢改动时间。客户能够经过If-Modified-Since请求头提供3个日期,该请求将被视为一个规范GET,只有改变时间迟于钦定时间的文书档案才会再次回到,否则再次来到三个304(Not
Modified)状态。Last-Modified也可用setDateHeader方法来安装。

Location
代表客户应当到哪个地方去提取文书档案。Location平时不是直接设置的,而是通过HttpServletResponse的sendRedirect方法,该办法同时设置意况代码为302。

HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW情势的多寡,关于HTTP
协议的事无巨细内容请参
考奇骏FC2616。HTTP协议利用了请求/响应模型。客户端向服务器发送三个呼吁,请求头包涵呼吁的办法、UXC90I、协议版本、以及富含呼吁修饰符、客户
消息和剧情的接近于MIME的新闻结构。服务器以二个场合行作为响应,相应的内容包含消息协议的版本,成功照旧不当编码加上含有服务器新闻、实体元新闻以
及恐怕的实行业内部容。
常备HTTP音讯包涵客户机向服务器的乞请新闻和服务器向客户机的响应音讯。那两连串型的新闻由3个开首行,叁个或然多少个头域,一个只是头域结束的空行和可
选的音信体组成。HTTP的头域包蕴通用头,请求头,响应头和实业头多个部分。各类头域由一个域名,冒号(:)和域值三局地组成。域名是大小写非亲非故的,域
值前能够添加任何数据的空格符,头域能够被增添为多行,在每行起始处,使用至少二个空格或制表符。
通用头域
通用头 域包罗呼吁和响应消息都扶助的头域,通用头域包蕴Cache-Control、
Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。对通用头域的恢弘须求通信双方都扶助此扩展,假设存在不帮忙的通用头域,一般将会作为实体头域处理。下边简单介绍多少个在UPnP音信中采取的通用头域。
Cache-Control头域
Cache -Control钦点请求和响应遵守的缓存机制。在伏乞新闻或响应音信中安装
Cache-Control并不会修改另二个音讯处理进程中的缓存处理进度。请求时的缓存指令包涵no-cache、no-store、max-age、
max-stale、min-fresh、only-if-cached,响应音讯中的指令包含public、private、no-cache、no-
store、no-transform、must-revalidate、proxy-revalidate、max-age。种种音讯中的指令含义如
下:
Public提醒响应可被其余缓存区缓存。
Private提示对于单个用户的整套或局地响应音信,不可能被共享缓存处理。这允许服务器仅仅描述当用户的有个别响应新闻,此响应信息对于别的用户的伸手无效。
no-cache提示请求或响应消息不能够缓存
no-store用于防止重要的音讯被无意的文告。在伸手音信中发送将使得请求和响应音讯都不使用缓存。
max-age提示客户机能够接到生存期不当先钦命时间(以秒为单位)的响应。
min-fresh提醒客户机能够选拔响应时间低于当前天子拉长钦点时间的响应。
max-stale提示客户机能够接到超出超时以内的响应新闻。假若钦赐max-stale音信的值,那么客户机尚可超出超时代钦定值之内的响应音讯。
Date头域
Date头域表示音信发送的年华,时间的叙述格式由rfc822定义。例如,Date:Mon,31Dec200404:25:57核糖霉素T。Date描述的年月表示世界标准时,换算开销地时间,必要掌握用户所在的时区。
Pragma头域
Pragma头域用来含有达成特定的指令,最常用的是Pragma:no-cache。在HTTP/1.1商讨中,它的意义和Cache-
Control:no-cache相同。
恳请音信
伸手新闻的率先行为上边包车型地铁格式:
MethodSPRequest-UTiguanISPHTTP-VersionC哈弗LFMethod
表示对于Request-UHighlanderI完成的措施,这些字段是大大小小写敏感的,包含OPTIONS、GET、HEAD、POST、PUT、DELETE、
TRACE。方法GET和HEAD应该被抱有的通用WEB服务器帮助,其余具备办法的贯彻是可选的。GET方法取回由Request-U大切诺基I标识的信息。
HEAD方法也是收复由Request-U宝马X5I标识的新闻,只是能够在响应时,不回去新闻体。POST方法能够请求服务器收到包罗在呼吁中的实体消息,能够用来提交表单,向音讯组、BBS、邮件群组和数据库发送消息。
SP代表空格。Request-U奥迪Q3I服从U大切诺基I格式,在此字段为星
号(*)时,表达请求并不用于有个别特定的能源地址,而是用来服务器本人。HTTP-
Version表示支持的HTTP版本,例如为HTTP/1.1。C途睿欧LF代表换行回车符。请求头域允许客户端向服务器传递关于请求恐怕有关客户机的附加
音信。请求头域恐怕带有下列字段Accept、Accept-Charset、Accept-
Encoding、Accept-Language、Authorization、From、Host、If-Modified-Since、If-
Match、If-None-Match、If-Range、If-Range、If-Unmodified-Since、马克斯-Forwards、
Proxy-Authorization、Range、Referer、User-Agent。对请求头域的恢宏须求通讯双方都帮忙,假设存在不帮忙的请
求头域,一般将会作为实体头域处理。
非凡的伸手新闻:
GET http://download.microtool.de:80/somedata.exe
Host: download.microtool.de
Accept:*/*
Pragma: no-cache
Cache-Control: no-cache
Referer: http://download.microtool.de/
User-Agent:Mozilla/4.04[en](Win95;I;Nav)
Range:bytes=554554-
上例第1行代表HTTP客户端(只怕是浏览器、下载程序)通过GET方法获得内定U奔驰M级L下的文书。驼色的一对代表请求头域的信息,古铜黑的一些代表通用尾部分。
Host头域
Host头域钦命请求资源的Intenet主机和端口号,必须代表请求url的本来面目服务器或网关的地方。HTTP/1.1请求必须带有主机头域,不然系统会以400状态码再次回到。
Referer头域
Referer
头域允许客户端内定请求uri的源财富地址,那足以允许服务器生成回退链表,可用来登六 、优化cache等。他也同意打消的或不当的连天由于爱戴的指标被
追踪。假使请求的uri没有协调的uri地址,Referer不能够被发送。借使钦定的是一对uri地址,则此地点应该是2个针锋相对地址。
Range头域
Range头域能够请求实体的三个照旧多个子范围。例如,
表示头500个字节:bytes=0-499
表示第二个500字节:bytes=500-999
表示最后500个字节:bytes=-500
意味着500字节今后的界定:bytes=500-
第贰个和最终贰个字节:bytes=0-0,-1
并且钦点多少个范围:bytes=500-600,601-999
只是服务器能够忽略此请求头,即使无条件GET包蕴Range请求头,响应会以状态码206(PartialContent)重回而不是以200
(OK)。
User-Agent头域
User-Agent头域的剧情包涵发出请求的用户新闻。
响应消息
响应信息的第叁作为上边包车型地铁格式:
HTTP-VersionSPStatus-CodeSPReason-PhraseCRLF
HTTP -Version表示支持的HTTP版本,例如为HTTP/1.1。Status-
Code是1个八个数字的结果代码。Reason-黑钻石沙滩se给Status-Code提供二个简便的文书描述。Status-Code首要用以机器自
动识别,Reason-黑钻石海滩se首要用于支援用户知道。Status-Code的率先个数字定义响应的项目,后八个数字没有分类的意义。第四个数字恐怕取多少个不等的值:
1xx:信息响应类,表示接受到请求并且继续处理
2xx:处理成功响应类,表示动作被成功接到、精晓和经受
3xx:重定向响应类,为了形成指定的动作,必须承受进一步处理
4xx:客户端错误,客户请求包蕴语法错误只怕是无法科学履行
5xx:服务端错误,服务器不可能正确履行2个不利的乞请
响应头域允许服务器传递不能放在状态行的叠加音讯,这一个域重要讲述服务器的音信和
Request-ULANDI进一步的音讯。响应头域包涵Age、Location、Proxy-Authenticate、Public、Retry-
After、Server、Vary、Warning、WWW-Authenticate。对响应头域的恢宏须求通讯双方都扶助,就算存在不帮忙的响应头
域,一般将会作为实体头域处理。
数一数二的响应新闻:
HTTP/1.0200OK
Date:Mon,31Dec200104:25:57GMT
Server:Apache/1.3.14(Unix)
Content-type:text/html
Last-modified:Tue,17Apr200106:46:28GMT
Etag:”a030f020ac7c01:1e9f”
Content-length:39725426
Content-range:bytes554554-40279979/40279980
上例第壹行代表HTTP服务端响应三个GET方法。葱青的一对代表响应头域的新闻,法国红的一些代表通用底部分,黄褐的部分代表实体头域的音信。
Location响应头
Location响应头用于重定向接收者到多个新U中华VI地址。
Server响应头
Server响应头包罗处理请求的原始服务器的软件音信。此域能包蕴多少个产品标识和注释,产品标识一般根据重点排序。
实体
恳请新闻和响应新闻都能够包蕴实体音信,实体音讯一般由实体头域和实业组成。实体头域包涵关于实体的原新闻,实体头包罗Allow、Content-
Base、Content-Encoding、Content-Language、
Content-Length、Content-Location、Content-MD伍 、Content-Range、Content-Type、
Etag、Expires、Last-Modified、extension-header。extension-header允许客户端定义新的实业
头,可是那几个域恐怕无法未接受方识别。实体能够是三个经过编码的字节流,它的编码格局由Content-Encoding或Content-Type定
义,它的长短由Content-Length或Content-Range定义。
Content-Type实体头
Content-Type实体头用于向接收方提示实体的介质类型,钦赐HEAD方法送到接收方的实体介质类型,或GET方法发送的请求介质类型
Content-Range实体头
Content-Range实体头用于钦点整个实体中的一部分的插入地点,他也提醒了任何实体的长短。在服务器向客户重返三个有的响应,它必须描述响应覆盖的范围和全体实体长度。一般格式:
Content-Range:bytes-unitSPfirst-byte-pos-last-byte-pos/entity-legth
比如,传送头500个字节次字段的样式:Content-Range:bytes0-
499/1234假如2个http消息包蕴此节(例如,对范围请求的响应或对一体系范围的交汇请求),Content-Range表示传送的界定,
Content-Length表示其实传送的字节数。
Last-modified实体头

Date
此时此刻的创新霉素T时间。你能够用setDateHeader来设置那一个头防止止转换时间格式的劳动。

WWW-Authenticate

户应该在Authorization头中提供什么品种的授权音信?在含有401(Unauthorized)状态行的答问中这些头是必需的。例如,
response.setHeader(“WWW-Authenticate”, “BASIC
realm=\”executives\””)。
注意Servlet一般不实行这下边的处理,而是让Web服务器的尤其机制来决定受密码爱抚页面包车型大巴走访(例如.htaccess)。

Set-Cookie
设置和页面关联的Cookie。Servlet不应使用response.setHeader(“Set-Cookie”,
…),而是应采取HttpServletResponse提供的专用方法addCookie。参见下文有关Cookie设置的商量。

Content-Length

示内容长度。唯有当浏览器选拔持久HTTP连接时才要求以此数据。就算您想要利用持久连接的优势,可以把出口文书档案写入
ByteArrayOutputStram,完结后翻看其大小,然后把该值放入Content-Length头,最终通过
byteArrayStream.writeTo(response.getOutputStream()发送内容。

应答头
说明

Server
服务器名字。Servlet一般不安装那些值,而是由Web服务器自个儿设置。

Expires
应该在怎么时候以为文书档案已经晚点,从而不再缓存它?

Allow
服务器帮忙什么请求方法(如GET、POST等)。

Content-Type
表示前边的文书档案属于怎么MIME类型。Servlet暗中认可为text/plain,但经常供给显式地钦赐为text/html。由于常常要设置Content-Type,因而HttpServletResponse提供了3个专用的法门setContentTyep。

Content-Encoding
文档的编码(Encode)方法。唯有在解码之后才能够赢得Content-Type头钦定的内容类型。利用gzip压缩文书档案能够驾驭地压缩HTML文书档案的
下载时间。Java的GZIPOutputStream可以很有益于地拓展gzip压缩,但唯有Unix上的Netscape和Windows上的IE
肆 、IE
5才支撑它。因而,Servlet应该经过查看Accept-Encoding头(即request.getHeader(“Accept-
Encoding”))检查浏览器是或不是帮助gzip,为协助gzip的浏览器重回经gzip压缩的HTML页面,为其余浏览器重返普通页面。

相关文章