纳金网

标题: HTTP协议的结构 [打印本页]

作者: 晃晃    时间: 2011-9-7 08:18
标题: HTTP协议的结构
Internet是由各个协议连接起来的,而我们现在使用最广的莫过于HTTP协议了,也就是超文本传输协议,与FTP(文件传输协议)不同,由于主要用于超文本传输,因此HTTP协议显得更简单一点。今天我们来介绍一下HTTP协议的基本格式。

  在这里,我们所谈及的HTTP协议以HTTP/1.1为标准,并且使用Net Vampire Pro 4.0来取得与HTTP服务器的通信Log,

您也可以使用其它的HTTP下载工具来取得通信Log。

  在HTTP协议中,服务端是指提供HTTP服务的部分,客户端是指你使用的浏览器或者下载工具等等。在通讯时,由客户端发出请求连接,服务端建立连接;然后,客户端发出HTTP请求(Request),服务端返回响应信息(Respond),由此完成一个HTTP操作。我们来通过一个例子来了解这个过程:(以下是Net Vampire进行的一次连接,以下红色字体为作者添加)

P 01-5-26 16:10:43 Connecting to go2.163.com ...          //连接服务器

P 01-5-26 16:10:44 Connected to go2.163.com [61.129.65.148]     //解析IP地址,以下为HTTP操作

S 01-5-26 16:10:44 GET /~minift/epretty/pretty.zip HTTP/1.1    //请求行(Request Line),表示使用GET方式取得文件,使用HTTP/1.1协议

//以下为请求头部(Request Head)

S 01-5-26 16:10:44 Connection: close                //表示非持续性连接

S 01-5-26 16:10:44 Host: go2.163.com                //主机名称

S 01-5-26 16:10:44 Accept: */*                   //接受的数据类型

S 01-5-26 16:10:44 Pragma: no-cache                //参数(与以前的服务器兼容)

S 01-5-26 16:10:44 Cache-Control: no-cache             //不使用缓存

S 01-5-26 16:10:44 Referer: http://go2.163.com/~minift/epretty  //从该网址转来

S 01-5-26 16:10:44 User-Agent: Mozilla/4.04 [en] (Win95; I ;Nav) //客户端标识

S 01-5-26 16:10:44 Cookie: AdId=ACDDAAAAAAA

S 01-5-26 16:10:44                         //以下为Respond

R 01-5-26 16:10:47 HTTP/1.0 200 OK                 //响应行(Respond Line),服务器使用HTTP/1.0协议,状态值(Status Code)为200,状态为OK,表示文件可以读取

R 01-5-26 16:10:47 Date: Sat, 26 May 2001 08:15:54 GMT       //现在的时间,用格林威治时间表示

R 01-5-26 16:10:47 Server: Apache/1.3.14 (Unix) mod_layout/2.9.9  //服务器类型

R 01-5-26 16:10:47 Last-Modified: Fri, 04 May 2001 02:42:56 GMT   //文件最后更新时间

R 01-5-26 16:10:47 ETag: "e614cf-37965-3af21730"

R 01-5-26 16:10:47 Accept-Ranges: bytes              //接受的范围单位

R 01-5-26 16:10:47 Content-Length: 227685             //文件长度

R 01-5-26 16:10:47 Content-Type: application/zip          //MIME类型

R 01-5-26 16:10:47 X-Cache: MISS from shca8

R 01-5-26 16:10:47 X-Cache-Lookup: MISS from shca8:80

R 01-5-26 16:10:47 Connection: close                //表示文件传输完毕就关闭连接。

R 01-5-26 16:10:47                         //以下为文件传输

P 01-5-26 16:10:47 Data transfer started

  下面来讲解使用的格式(LRCF=@13@10,即回车,SP=SPACE,即空格)

Request:

协议方式 SP 文件URI SP 协议版本 LRCF (请求行)

(以下为头部)

头部类型 : 头部值 LRCF

头部类型 : 头部值 LRCF

头部类型 : 头部值 LRCF

......

LRCF 表示头部结束

(如果有体部,以下为体部)



Respond:

协议版本 SP 状态值 SP 状态描述 LRCF (响应行)

(以下为头部)

头部类型 : 头部值 LRCF

头部类型 : 头部值 LRCF

头部类型 : 头部值 LRCF

......

LRCF 表示头部结束

(如果有体部,以下为体部)





  由上可见,请求与相应的格式只有部分不同,是很容易理解的,现在你应该基本了解HTTP协议了吧,也能看懂那些通信Log了吧,下一次我们讲专门讲解在响应行中的状态值含义及一些特殊情况。
作者: Asen    时间: 2011-9-14 11:09

作者: 晃晃    时间: 2012-1-19 23:05
除夕夜,春节倒计时,快乐元素在积聚,欢乐军团急行军,迫不急待的我,与新年阳光一道启程,把一年祝福提前给你,祝你红红火火过虎年。

作者: 晃晃    时间: 2012-2-8 23:30
我无语!

作者: C.R.CAN    时间: 2012-4-30 23:25
心中有爱,爱咋咋地

作者: 菜刀吻电线    时间: 2012-7-6 23:25
很经典,很实用,学习了!

作者: tc    时间: 2012-7-28 23:25
加精、加亮滴铁子,尤其要多丁页丁页

作者: 菜刀吻电线    时间: 2012-10-18 23:28
已阵亡的 蝶 随 风 舞 说过  偶尔按一下 CTRL A 会发现 世界还有另一面

作者: C.R.CAN    时间: 2012-10-20 23:29
无聊时可以刷屏幕 灌水 也可以试试 帖子的标题究竟可以写多长

作者: 菜刀吻电线    时间: 2012-11-3 23:25
加精、加亮滴铁子,尤其要多丁页丁页

作者: 晃晃    时间: 2012-12-8 11:45
我就看看,我不说话

作者: tc    时间: 2012-12-8 11:46
不会吧,太恐怖了





欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5