1. http协议
简述
http协议(HyperText Transfer Protocol)是超文本传输协议,是客户端浏览器或其他程序与器之间的应用层通信协议。http协议又是一种分布式,合作式,多媒体信息系统服务,由于其简捷、快速的方式,http协议迅速成为互联网上应用最为广泛的一种网络协议。
实现目的
最初是为了传输最互联网原始数据,现在http协议已作为互联网一种分布式,合作式,多媒体信息系统服务,不再是简单的数据传输,而是更加复杂的数据传输,包括图片、视频以及音乐等数据传输。
状态码
状态码5种状态总结:
1xx:表明服务端接收了客户端请求,客户端继续发送请求; 2xx:客户端发送的请求被服务端成功接收并成功进行了处理; 3xx:服务端给客户端返回用于重定向的信息; 4xx:客户端的请求有非法内容;
5xx:服务端未能正常处理客户端的请求而出现意外错误。
常见状态码:
200 OK:表示请求已成功,随响应头返回客户端; 202 Accepted:表示服务器已经接收,但未处理;
204 No Content:表示服务器成功处理请求,但不返回任何实体内容,返回已更新的元302 Found:临时从其他URI响应请求,即临时重定向;
304 Not Modified:客户端发送GET请求且已被允许,但是文档内容不变(跟上次访问
信息;
内容一致),服务器返回此状态码;
401 Unauthorized:当前请求需要授权验证; 403 Forbidden:服务器已接受请求,但拒绝执行。 404 Not Found:请求失败,服务器上未发现请求资源;
500 Internet Server Error:服务器遇到未知错误,请求无法完成处理。
消息头结构
通常,客户机向服务器发送一个请求,而服务器接收请求并进行响应。这里就涉及到客户机和服务器的通信问题,这就是需要我们对好http协议进一步了解。
一般地,从类型上看,http消息包括客户机向服务器发送的请求信息和服务器向客户机的响应信息。这两种类型的消息由一个起始行,一个或者多个头域,一个指示头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。
(1) 通用头包含请求和响应消息都支持的头域,通用头域包含Cache-Control、
Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。 (2) 请求报文的格式为:
请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
请求行以方法字段开始,后面分别是 URL 字段和 HTTP 协议版本字段,并以 CRLF 结尾。SP 是分隔符。除了在最后的 CRLF 序列中 CF 和 LF 是必需的之外,其他都可以不要。有关通用信息头,请求头和实体头方面的具体内容可以参照相关文件。 (3) 响应报文格式如下:
状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体
状态码元由3位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,而原因分析用来供用户使用。客户机无需用来检查或显示语法。有关通用信息头,响应头和实体头方面的具体内容可以参照相关文件。
工作原理
(1) 首先客户机与服务器需要建立连接。只要单击某个超级链接或者输入某个网址,
HTTP的工作就开始了。
(2) 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识
符(URL)、协议,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
(3) 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协
议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
(4) 客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机
与服务器断开连接。
http请求http响应http请求Web服务器http响应PC机PC机
图1.4 http工作流程图
2. HttpWatch工具
简介
HttpWatch是强大的网页数据分析工具,集成在Internet Explorer工具栏.包括网页摘要、Cookies管理、缓存管理、消息头发送/接受、字符查询、POST 数据和目录管理功能、报告输出。
安装使用
直接上网下载httpwatch的安装文件,根据步骤安装后,启动IE浏览器即可看到的标记。点击进入以下显示界面:
点击左上角的“Record”红色点即可进行抓包操作,这个时候再去访问网址,就可以抓包分析了。
实例分析
(1) 首次访问,服务器200 OK响应(打开Google页面出现下面三种响应):
第二次访问,服务器304响应:
服务器返回204响应:
(2) 服务器返回404响应(地址输入:):
(3) 服务器返回302响应(成功登录163邮箱):
(4) 服务器返回500响应(地址输入:):
3. Firebug工具
简介
Firebug集HTML查看和编辑、Javascript控制台、网络状况监视于一体,可以说是开发人员必备扩展之一。Firebug从各个不同的角度剖析 Web页面内部的细节层面,给Web开发者带来很大的便利。
安装使用
(1) 打开火狐浏览器,选择菜单中的“工具”—>“附加组件”,如下图所示:
(2) 选择“获取附加组件”,如图所示:
(3) 在“搜索全部附加组件”中写入“firebug”,进行搜索:
(4) 找到Firebug并选择,点击“添加至Firefox(A)”即提示安装,按照步骤安装
并重启Firefox即可。 (5) 打开火狐浏览器,右下角有个
可以查看各种信息。
标记,点击即打开firebug调试,这里http抓
包选择上面的网络标签,现在打开任何一个网址,即可抓到请求和响应包,进而
实例分析
(1) 打开百度页面:
从上图可以看到发送的请求数已经服务器响应状态机响应时间等数据。分析本次操作可以看到GET方式访问,服务器响应状态200 OK 使用时间16ms;浏览器发送第二次请求时发现百度页面之前加载的一些静态信息没有改变,于是返回了304响应头,说明缓存了一些静态信息。 第一次请求和202响应头信息:
第二次请求和304响应头信息:
请求和响应的各部分时间花费:
由上面请求和响应结果分析,根据不同的响应信息头分析,我们可以清楚知道服务器在不同的请求或者相同请求下做的不同或者相同的事情,以及服务器在响应不同请求时的状态信息,可以帮助清楚判断到底哪一部分出现了问题,对我们解决实际问题很有帮助。同时我们也可以通过解读各部分时间花费来判断网络或者服务器的情况。 (2) 打开一个根本不存在的页面(页面地址:):
从上图可以看到,这个页面根本不存在,如果在实际开发中发现这个错误,就证明这个目录下没有这个文件或资源。由此可见,对任何一种响应状态的分析都是很有意义的,对我们的开发有很大的帮助。
因篇幅问题不能全部显示,请点此查看更多更全内容