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了吧,下一次我们讲专门讲解在响应行中的状态值含义及一些非凡情况。
Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...
07-05
Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...
07-05
KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...
07-05
Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...
07-05