`

http协议的消息头

 
阅读更多
一、HTTP消息头主要分为下面几类:

(1)通用信息头

    即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma

主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfer-Encoding , Upgrade

(2)请求头

用于在请求消息中向服务器传递附加信息,主要包括客户机可以接受的数据类型,压缩方法,语言,以及客户计算机上保留的Cookie信息和发出该请求的超链接源地址等.

主要: Accept , Accept-Encoding , Accept-Language , Host ,

(3)响应头

用于在响应消息中向客户端传递附加信息,包括服务程序的名称,要求客户端进行认证的方式,请求的资源已移动到新地址等.

主要: Location , Server , WWW-Authenticate(认证头)

(4)实体头

用做实体内容的元信息,描述了实体内容的属性,包括实体信息的类型,长度,压缩方法,最后一次修改的时间和数据的有效期等.

主要: Content-Encoding , Content-Language , Content-Length , Content-Location , Content-Type
实体头用坐实体内容的元信息,描述了实体内容的属性,包括实体信息类型,长度,压缩方法,最后一次
修改时间,数据有效性等。
Allow:GET,POST
Content-Encoding:gzip
Content-Language:zh-cn
Content-Length:80
Content-Location:http://www.dfdf.org/dfdf.html
Content-MD5:dfdfdfdfdfdfdff==
Content-Range:bytes 2543-4532/7898
Content-Type:text/html; charset=GB2312       主类型/子类型
Expires: GMT   为0证明不缓存
Last-Modified:GMT

(4)扩展头

主要:Refresh, Content-Disposition
在HTTP消息中,也可以使用一些再HTTP1.1正式规范里没有定义的头字段,这些头字段统称为自定义的
HTTP头或者扩展头,他们通常被当作是一种实体头处理。
现在流行的浏览器实际上都支持Cookie,Set-Cookie,Refresh和Content-Disposition等几个常用的扩展头
字段。
Refresh头字段:1
Refresh: 1;url=http://www.dfdf.org  //过1秒跳转到指定位置
Content-Disposition头字段
Content-Type: applicaiton/octet-stream
Content-Disposition:attachment; filename=aaa.zip


二、主要消息头含义

1、请求头(常见的请求头)

(1)Accept:浏览器可接受的MIME类型;

(2)Accept-Charset:浏览器可接受的字符集;

(3)Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间;

(4)Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到;

(5)Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中;

(6) Connection:表示是否需要持久连接。如果Servlet看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点,Servlet需要在应答中发送一个Content-Length头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,然后在正式写出内容之前计算它的大小;

(7)Content-Length:表示请求消息正文的长度;

(8)Cookie:这是最重要的请求头信息之一;

(9)From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它;

(10)Host:初始URL中的主机和端口;host域(发送请求时,host域是必须的)HTTP1.1在Request消息头里头多了一个Host域, HTTP1.0则没有这个域。
例如:
    GET /pub/WWW/TheProject.html HTTP/1.1
    Host: www.w3.org
    Host:www.guet.edu.cn
此处使用缺省端口号80,若指定了端口号,则变成:Host:www.guet.edu.cn:指定端口号

(11) If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304“Not Modified”应答;

(12)Pragma:指定“no-cache”值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝;

(13)Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。

(14)User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用;

(15)UA-Pixels,UA-Color,UA-OS,UA-CPU:由某些版本的IE浏览器所发送的非标准的请求头,表示屏幕大小、颜色深度、操作系统和CPU类型。


2、响应头

HTTP最常见的响应头如下所示:

(1)Allow:服务器支持哪些请求方法(如GET、POST等);

(2)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页面,为其他浏览器返回普通页面;

(3) Content-Length:表示内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据。如果你想要利用持久连接的优势,可以把输出文档写入ByteArrayOutputStram,完成后查看其大小,然后把该值放入Content-Length头,最后通过byteArrayStream.writeTo(response.getOutputStream()发送内容;

(4)Content-Type: 表示后面的文档属于什么MIME类型。Servlet默认为text/plain,但通常需要显式地指定为text/html。由于经常要设置Content-Type,因此HttpServletResponse提供了一个专用的方法setContentTyep。 可在web.xml文件中配置扩展名和MIME类型的对应关系;

(5) Date:当前的GMT时间。你可以用setDateHeader来设置这个头以避免转换时间格式的麻烦;

(6) Expires:指明应该在什么时候认为文档已经过期,从而不再缓存它。

(7)Last-Modified:文档的最后改动时间。客户可以通过If-Modified-Since请求头提供一个日期,该请求将被视为一个条件GET,只有改动时间迟于指定时间的文档才会返回,否则返回一个304(Not Modified)状态。Last-Modified也可用setDateHeader方法来设置;

(8) Location:表示客户应当到哪里去提取文档。Location通常不是直接设置的,而是通过HttpServletResponse的sendRedirect方法,该方法同时设置状态代码为302;

(9)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都支持它。
分享到:
评论

相关推荐

    http协议学习总结协议格式消息头消息体等[参照].pdf

    http协议学习总结协议格式消息头消息体等[参照].pdf

    http协议学习总结协议格式消息头消息体等知识.pdf

    http协议学习总结协议格式消息头消息体等知识.pdf

    HTTP协议的头信息详解

    HTTP协议的头信息详解,包含:通用头域、常见的HTTP返回码、客户端发送的内容、服务器返回的消息等

    HTTP协议之消息报头

    详细介绍了HTTP协议之消息报头中各个属性。

    浏览器HTTP协议请求头信息.docx

    客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码...

    http 协议

    http协议头 HTTP 请求和 HTTP 响应都使用头发送有关 HTTP 消息的信息。头由一系列行组成,每行都包含名称,然后依次是冒号、空格、值。字段可按任何顺序排列

    Web应用安全:HTTP头消息.pptx

    Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET、POST、PUT、DELETE。一个URL地址用于描述一个网络上的资源,而HTTP中的GET、POST、PUT、 DELETE就对应着对这个资源的查、改、增、删4个操作,我们...

    基于Http协议的Web服务端程序

    基于HTTP协议的WEB服务器,简易版的Tomcat....服务端接受请求并将其封装为一个HTTPRequest对象,并对其解析请求数据包 ,根据解析的消息头生成对应的HTTPResponse对象,并将此对象通过Socket流再写到客户端,形成静态页面

    http协议基础

    这两种类型的消息由一个 起始行,一个或者多个头域,一个只是头域结束的空行和可 选的消息体组成。HTTP的头域包括通用头,请求 头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是...

    http协议学习系列

    2.2 HTTP请求消息 12 2.3 HTTP响应消息 13 2.4 使用telnet进行http测试 16 2.5 常用的请求方式 17 2.6 请求头 18 2.7 响应头 19 2.8实体头 21 2.8扩展头 21 3. 深入了解篇 22 3.1 Cookie和Session 22 3.2 缓存的实现...

    http协议抓包

    HttpWatch是强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理....每一个HTTP记录都可以详细的分析其 Cookies、消息头、字符查询等信息。支持HTTPS及分析报告输出为XML、CSV等格式。

    HTTP协议详解

    4.2 消息头 (Message Headers) 4.3 消息主体 (Message Body) 4.4 消息的长度(Message Length) 4.5 常用头域(General Header Fields) 5 请求(Request) 5.1 请求行 (Request-Line) 5.1.1方法 (Method) ...

    Web应用安全:HTTP协议POST方法.pptx

    HTTP协议POST方法 POST方法 查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的: POST /test/demo_form.php HTTP/1.1 Host: name1=value1&name2=value2 有关 POST 请求的其他一些注释: POST 请求不会...

    使用httpwatch学习http协议或者判断http网络请求故障

    httpwatch可以用来查看http协议请求状况,学习http协议或者判断http网络请求故障。本人用该软件检查过一个dns故障。

    HTTP协议报文的格式解析

    报文的请求消息行,请求消息头;Http响应消息头,Http响应消息行,Http响应消息正文的解析

    JAVA WEB http协议2

    介绍了HTTP,讲解了浏览器访问多图网页的过程,比较了HTTP 1.1版本与1.0版本的不同之处,并介绍了请求-响应回路中的消息及消息头。

    HTTP协议(RFC2616)中文版.pdf

    对象管理系统之类的系统,这可以通过扩展它的请求方法,错误代码和消息头[47]来实现。 HTTP的一个特性就是是数据表现形式是可以定义的和可协商性的,这就允许系统能独立于于 数据传输被构建。 HTTP 在1990 年WWW ...

    计算机网络实验报告-应用层协议消息的捕获和解析

    计算机网络实验报告(应用层协议消息的捕获和解析),包括对于TCP协议的三次握手建立连接和四次挥手断开连接的分析,对于HTTP协议报文中的请求头和响应头字段的分析,以及SMTP和POP3邮件协议的具体分析。最后附带有...

    Web服务器三剑客运维配置实战 Nginx+JVM+Tomcat+HTTP协议.zip

    ├─1.01 HTTP协议-工作原理及消息结构.mp4 ├─1.02 HTTP协议-客户端请求信息及服务端响应信息.mp4 ├─1.03 HTTP协议-请求方法及响应头信息.mp4 ├─1.04 HTTP协议-状态码.mp4 ├─1.05 Nginx进阶基础-Nginx介绍及...

    HTTP_头(HTTP_header)详解

    客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户 信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码...

Global site tag (gtag.js) - Google Analytics