1 / 21
文档名称:

深入理解HTTP消息头.doc

格式:doc   大小:63KB   页数:21页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

深入理解HTTP消息头.doc

上传人:漫山花海 2019/5/16 文件大小:63 KB

下载得到文件列表

深入理解HTTP消息头.doc

相关文档

文档介绍

文档介绍:Forpersonaluseonlyinstudyandresearch;,天赋决定其开口,而最高点则需后天的努力。没有秋日落叶的飘零,何来新春绿芽的饿明丽?只有懂得失去,才会重新拥有。深入理解HTTP消息头转载自:[-]羂(一)初识HTTP消息头虿但凡搞WEB开发的人都离不开HTTP(超文本传输协议),而要了解HTTP,除了HTML本身以外,还有一部分不可忽视的就是HTTP消息头。莇做过Socket编程的人都知道,当我们设计一个通信协议时,“消息头/消息体”的分割方式是很常用的,消息头告诉对方这个消息是干什么的,消息体告诉对方怎么干。HTTP传输的消息也是这样规定的,每一个HTTP包都分为HTTP头和HTTP体两部分,后者是可选的,而前者是必须的。每当我们打开一个网页,在上面点击右键,选择“查看源文件”,这时看到的HTML代码就是HTTP的消息体,那么消息头又在哪呢?IE浏览器不让我们看到这部分,但我们可以通过截取数据包等方法看到它。蚄下面就来看一个简单的例子:肂首先制作一个非常简单的网页,它的内容只有一行:肀<html><body>helloworld</body></html>聿把它放到WEB服务器上,比如IIS,然后用IE浏览器请求这个页面(,当我们请求这个页面时,浏览器实际做了以下四项工作:蚇1解析我们输入的地址,从中分解出协议名、主机名、端口、对象路径等部分,对于我们的这个地址,解析得到的结果如下:膂协议名:http蒁主机名:localhost薇端口:8080蒆对象路径:/,封装成一个HTTP请求数据包袂3使用TCP协议连接到主机的指定端口(localhost,8080),并发送已封装好的数据包艿4等待服务器返回数据,并解析返回数据,最后显示出来芅由截取到的数据包我们不难发现浏览器生成的HTTP数据包的内容如下:莂GET/<CR>ept:image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/x-shockwave-flash,application/-excel,application/-powerpoint,application/msword,*/*<CR>ept-Language:<CR>ept-Encoding:gzip,deflate<CR>蒂User-Agent:Mozilla/;;;SV1;.NETCLR;.NETCLR荿Host:localhost:8080<CR>蒈Connection:Keep-Alive<CR>肆<CR>薂为了显示清楚我把所有的回车的地方都加上了“<CR>”,注意最后还有一个空行加一个回车,这个空行正是HTTP规定的消息头和消息体的分界线,第一个空行以下的内容就是消息体,这个请求数据包是没有消息体的。螀消息的第一行“GET”表示我们所使用的HTTP动作,其他可能的还有“POST”等,GET的消息没有消息体,而POST消息是有消息体的,消息体的内容就是要POST的数据。后面/,。袆第二行表示我们所用的浏览器能接受的Content-type,三四两行则是语言和编码信息,第五行显示出本机的相关系信息,包括浏览器类型、操作系统信息等,很多网站可以显示出你所使用的浏览器和操作系统版本,就是因为可以从这里获取到这些信息。螅第六行表示我们所请求的主机和端口,第七行表示使用Keep-Alive方式,即数据传递完并不立即关闭连接。薂服务器接收到这样的数据包以后会根据其内容做相应的处理,例如查找有没有“/”这个对象,如果有,根据服务器的设置来决定如何处理,如果是HTM,则不需要什么复杂的处理,直接返回其内容即可。但在直接返回之前,还需要加上HTTP消息头。膁服务器发回的完整HTTP消息如下:蚈HTTP/<CR>薄Server:Microsoft-IIS/<CR>蚁X-Powered-By:<CR>薂Date:Fri,03Mar200606:34:03GMT<CR>肆Content-Type:text/html<CR>ept-Ranges:bytes<CR>螁Last-Modified:Fri,03Mar200606:33:18GMT<CR>虿ETag:"5ca4f75b8c3ec61:9ee"<CR>螈Content-Length:37<CR>莆<CR>袁<html