HTTP协议详解,你所不知道的

  categories:资料  tags:  author:

来源:互联网

什么是HTTP协议

协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器

目前我们使用的是HTTP/1.1 版本

Web服务器,浏览器,代理服务器

当我们打开浏览器,在地址栏中输入URL,然后我们就看到了网页。 原理是怎样的呢?

实际上我们输入URL后,我们的浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器, 浏览器解析Response中的HTML,这样我们就看到了网页,过程如下图所示

wps_clip_image-12313[3][1]

我们的Request 有可能是经过了代理服务器,最后才到达Web服务器的。

过程如下图所示

wps_clip_image-19471[3][1]

代理服务器就是网络信息的中转站,有什么功能呢?

1. 提高访问速度, 大多数的代理服务器都有缓存功能。

2. 突破限制, 也就是翻-墙了

3. 隐藏身份。

URL详解

URL(Uniform Resource Locator) 地址用于描述一个网络上的资源,  基本格式如下

schema://host[:port#]/path/…/[?query-string][#anchor]

scheme               指定低层使用的协议(例如:http, https, ftp)

host                   HTTP服务器的IP地址或者域名

port#                 HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如 http://www.cnblogs.com:8080/

path                   … 阅读全文

简易在线证书状态协议SOCSP的分析与改进

  categories:资料  tags:  author:

来源:互联网

一、引言

公钥基础设施(public key infrastructure,简称PKI)是目前网络安全建设的基础与核心,为电子商务、电子政务等应用提供安全服务的基础平台[1]。证书状态查询是PKI系统中一个重要的环节,最常用的两种方法[2]是离线的基于CRL(Certificate Revoke List,证书撤销列表)的查询机制和基于OCSP(Online Certificate Status Protocol,在线证书状态协议)的实时查询机制。CRL机制是由CA(Certification Authority,认证中心)定期发布CRL,验证者定期查询和下载CRL,根据CRL来判断所要查询的证书的有效性;OCSP机制是由OCSP客户端发送一个证书状态查询给OCSP响应器,等待响应器返回一个证书查询状态的响应。

OCSP要求对应答消息中的基本OCSP应答进行数字签名,而数字签名运算所消耗的资源和时间较大,使其成为OCSP服务器实现中的性能瓶颈,甚至成为拒绝服务(DoS)攻击的攻击点。许多对OCSP协议的研究集中在如何提高OCSP的响应效率,从而既能及时地为用户提供证书撤销最真实的信息,又能减少由于请求等待时间过长而丢失请求信息的现象。

由上海信息安全工程技术研究中心和国家信息安全工程技术研究中心研发的SOCSP [3](Simple Online Certificate Status Protocol,简易在线证书状态协议)目的是解决在安全认证系统中使用OCSP协议所遇到的实效太慢的弊端,为我国电子政务和电子商务以及网络安全认证系统提供简单、快捷的证书状态查询协议。它去除了标准OCSP中的签名密码算法,采用MAC密码算法来代替,以提高OCSP的响应速率。简易在线证书状态协议SOCSP在2006年12月提交了送审稿,该文中定义的请求和响应没有设置随机数和时间戳字段[4],无法有效地检查和抵御重放攻击;另外,MAC算法的定义不详细,有可能导致系统兼容性问题。

2009年提交了SOCSP标准报批稿,该协议在请求和响应中都增加了一个随机数random字段,用于防止重放攻击;MAC算法统一使用国家标准规定的HMAC算法,定义比较详细,对送审稿中存在的两个问题可以有效解决。但是,该版标准报批稿的响应数据定义有缺失,少了所要查询证书的状态;也没有定义授权响应器与其撤销检查的方法;另外,没有定义存档截止时间,就无法提供对已过期后的证书撤销状态查询的功能。

二、协议分析

1.
OCSP与SOCSP的介绍

OCSP定义了客户端与响应器之间的通信标准。OCSP客户端发出一个证书状态查询请求给OCSP响应器,请求包含:协议版本、服务请求、目标证书标识和可选扩展项等,用户可以选择对请求进行签名,OCSP响应器确定请求的格式正确、响应器配置了所要求的服务并且请求包含响应器需要的信息后,返回给客户端一个明确的响应消息。该响应消息包括:版本号、响应器名称、对每一张被请求证书的回复、可选扩展项、签名算法对象标识符和签名值。响应器必须对明确的响应进行数字签名;如果请求不满足要求,就向OCSP客户端发出一个出错信息,出错信息不用进行数字签名。图1是一个简单的OCSP实现模式[5]。

wps_clip_image-17502[6][1]

图1 OCSP实现模式

SOCSP协议为电子政务和电子商务的安全认证系统提供简明、快捷的证书状态查询协议。它采用MAC密码算法来代替标准OCSP中的签名密码算法,同时简化了复杂的协议数据单元和扩展项。

SOCSP协议也是客户端和响应器之间的一个请求/响应协议。当用户需要查询一个或多个证书

的撤销状态时,SOCSP客户端产生一个SOCSP请求,包含一个或者多个待查询证书的标识符,然后发送给SOCSP响应器,并等待直到响应器返回一个响应。与OCSP协议不同的是,SOCSP协议的请求必须进行MAC计算而不是可选择的。

一个SOCSP请求包含:协议版本、服务请求、目标证书标识符等。SOCSP响应器对收到的请求返回一个响应(或是出错信息,或是明确的响应消息)。SOCSP响应器返回出错信息时不用进行MAC计算。SOCSP响应器返回明确的响应消息时,必须对该响应进行MAC计算,一个明确的响应消息包含:版本号、对请求中每个证书的响应、MAC算法的OID、响应的MAC值等。对每个证书的响应包含证书状态值:正常、撤销、未知。“正常”状态表示证书未被撤销;“撤销”状态表示证书已被撤销;“未知”状态表示响应器不能判断请求的证书状态。

2.SOCSP请求数据分析

SOCSP标准定义请求数据的ASN.1表示如下:

OCSPThinRequest ::= SEQUENCE {  — 请求数据

tbsThinRequest TBSThinRequest,               — … 阅读全文

ssi(Server Side Includes)简介

  categories:资料  tags:  author:

来源:互联网

什么是SSI?

SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是HTML文件中,可以通过注释行调用的命令或指针。SSI 具有强大的功能,只要使用一条简单的SSI 命令就可以实现整个网站的内容更新,动态显示时间和日期,以及执行shell和CGI脚本程序等复杂的功能。SSI 可以称得上是那些资金短缺、时间紧张、工作量大的网站开发人员的最佳帮手。

SSI最初在NCSA服务器平台上推出,在Apache服务器中得到扩展和加强,目前已经可以在几乎所有的服务器上运行。本文将主要结合Apache服务器介绍SSI的使用方法。

如何启动SSI?

在Apache服务器下,可以通过直接编辑服务器配置文件或者在需要使用SSI的目录中创建.htaccess文件启动SSI。具体来说,过程如下:

1.服务器配置文件

如果用户具有对服务器配置文件的访问权限,可以通过编辑文件access.conf和srm.conf启动SSI。

首先使用Telnet远程登录服务器,找到配置文件的存放目录。一般来说,Apache服务器的配置文件都被保存在“/usr/local/etc/httpd/conf”目录下。使用任何一种文字编辑器打开文件srm.conf,找到以下几行:

# If you want to use server side includes, or CGI outside
# ScriptAliased directories, uncomment the following lines.
#AddType text/x-server-parsed-html .shtml

#AddType application/x-httpd-CGI .CGI

用户的配置文件中可能没有上述的注释指令行,但是只要找到以AddType开头的两行并且去掉每一行最前面的“#”符号即可。… 阅读全文

代理服务器知识

  categories:资料  tags:,   author:

第一部份 基础知识

一、什么是代理服务器?

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。

在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,需送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分代理服务器都具有缓冲的功能,就好象一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。

更重要的是:Proxy Server (代理服务器)是 Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联 (OSI) 模型的对话层。

二、代理服务器的分类

1、HTTP代理按匿名功能分类。

是否具有隐藏IP的功能。

非匿名代理:不具有匿名功能。

匿名代理。使用此种代理时,虽然被访问的网站不能知道你的IP地址,但仍然可以知道你在使用代理,有些侦测IP的网页也仍然可以查到你的IP。

高度匿名代理:使用此种代理时,被访问的网站不知道你的IP地址,也不知道你在使用代理进行访问。此种代理的隐藏IP地址的功能最强。

2、按请求信息的安全性分类

全匿名代理:不改变你的request fields(报文),使服务器端看来就像有个真正的客户浏览器在访问它。当然,你的真实IP是隐藏起来的。服务器的网管不会认为你使用了代理。

普通匿名代理:能隐藏你的真实IP,但会更改你的request fields,有可能会被认为使用了代理,但仅仅是可能,一般说来是没问题的。不过不要受它的名字的误导,其安全性可能比全匿名代理更高,有的代理会剥离你的部分信息(就好比防火墙的stealth mode),使服务器端探测不到你的操作系统版本和浏览器版本。

elite代理:匿名隐藏性更高,可隐藏系统及浏览器资料信息等。此种代理安全性特强。

透明代理(简单代理):透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了,例如Garden 2程序。

3、按代理服务器的用途分类

1)Http代理:代理客户机的http访问,主要代理浏览器访问网页,它的端口一般为80、8080、3128等。

2)SSL代理:支持最高128位加密强度的http代理,可以作为访问加密网站的代理。加密网站是指以https://开始的网站。ssl的标准端口为443。

3)HTTP CONNECT代理:允许用户建立TCP连接到任何端口的代理服务器,这种代理不仅可用于HTTP,还包括FTP、IRC、RM流服务等。

4)FTP代理:代理客户机上的ftp软件访问ftp服务器,其端口一般为21、2121。

5)POP3代理:代理客户机上的邮件软件用pop3方式收邮件,其端口一般为110。

6)Telnet代理:能够代理通信机的telnet,用于远程控制,入侵时经常使用。其端口一般为23。

7)Socks代理:是全能代理,就像有很多跳线的转接板,它只是简单地将一端的系统连接到另外一端。支持多种协议,包括http、ftp请求及其它类型的请求。它分socks 4 和socks 5两种类型,socks … 阅读全文

http工作过程简介

  categories:资料  tags:  author:

原创文档,转载请将原文url地址标明

我们介绍了很多的http等相关的工具,以及一些相关的东西, 那么http到底是什么?基本工作过程是什么?

http是一个协议,一个网络上传输数据的协议,可以用来传递文本,可以用来传递文件等等。

一.浅析HTTP协议

HTTP协议是什么?

为了方便理解,我们可以考虑一个例子,若是我们需要快递一个东西从北京到上海,我们比较简单的办法是:叫一个快递公司的,他们会上门来取东西。在取东西过程中,他会要求您将您的东西包装到一个包装箱或者包装袋等等一些容器中。 然后他还要您添一些单据,例如:邮寄的地址,收获人地址,电话等等。

若是上海收件方收到后,回复您一些东西,方法也同上面类似。

我们考虑:

1. 包裹中的东西,一般就是货物,是邮寄的主体

2. 包裹外边的表单是,方便货物周转的描述或者协助,放到外面,容易观察或者获取的,或者大家一看都明白的。

整个http过程就像北京邮寄东西到上海然后再从上海获得回寄的东西的全部过程。

整个过程包括两部:

A.北京寄东西到上海    邮寄人主动发起 可以叫做request

B.上海相关人员收到后,处理 然后回寄东西给你  叫做相应 response。

那么无论request及response都包括:数据的主体(包裹内的东西body), 数据的描述信息(包裹外面的单据header)等。

下面我们来简要在描述一下http协议

简单来说,就是一个基于应用层的通信规范:双方要进行通信,大家都要遵守一个规范,这个规范就是HTTP协议。

HTTP协议能做什么?

很多人首先一定会想到:浏览网页。没错,浏览网页是HTTP的主要应用,但是这并不代表HTTP就只能应用于网页的浏览。HTTP是一种协议,只要通信的双方都遵守这个协议,HTTP就能有用武之地。比如咱们常用的QQ,迅雷这些软件,都会使用HTTP协议(还包括其他的协议)。

HTTP协议如何工作?

大家都知道一般的通信流程:首先客户端发送一个请求(request)给服务器,服务器在接收到这个请求后将生成一个响应(response)返回给客户端。

在这个通信的过程中HTTP协议在以下4个方 面做了规定:

1. Request和Response的格式

Request格式:

HTTP请求行
(请求)头
空行
可选的消息体… 阅读全文

基于资源的HTTP Cache的实现介绍

  categories:资料  tags:  author:

我们都知道浏览器会缓存访问过网站的网页,浏览器通过URL地址访问一个网页,显示网页内容的同时会在电脑上面缓存网页内容。如果网页没有更新的话,浏览器再次访问这个URL地址的时候,就不会再次下载网页,而是直接使用本地缓存的网页。只有当网站明确标识资源已经更新,浏览器才会再次下载网页。
一、什么是HTTP Cache
对于浏览器的这种网页缓存机制大家已经耳熟能详了,举个例子来说,JavaEye的新闻订阅地址:http://www.iteye.com /rss/news ,当浏览器或者订阅程序访问这个URL地址的时候,JavaEye的服务器在response的header里面会发送给浏览器如下状态标识:

C代码

  1. Etag    “427fe7b6442f2096dff4f92339305444″
  2. Last-Modified   Fri, 04 Sep 2009 05:55:43 GMT
Etag	"427fe7b6442f2096dff4f92339305444"
Last-Modified	Fri, 04 Sep 2009 05:55:43 GMT

这就是告诉浏览器,新闻订阅这个网络资源的最后修改时间和Etag。于是浏览器把这两个状态信息连同网页内容在本地进行缓存,当浏览器再次访问JavaEye新闻订阅地址的时候,浏览器会发送如下两个状态标识给JavaEye服务器:

C代码

  1. If-None-Match   “427fe7b6442f2096dff4f92339305444″
  2. If-Modified-Since   Fri, 04 Sep 2009 05:55:43 GMT
If-None-Match	"427fe7b6442f2096dff4f92339305444"
If-Modified-Since	Fri, 
阅读全文

http协议中的vary域

  categories:资料  tags:  author:

Vary头域值指定了一些请求头域,这些请求头域用来决定当缓存中存在一个响应,并且该缓存没有过期失效,是否被允许去利用此响应去回复后续请求而不需要重验证(revalidation)。对于一个不能被缓存或失效的响应缓存,Vary头域值用于告诉用户代理选择表现形式(reprentation)的标准。一个Vary头域值是“*”意味着缓存不能从后续请求的请求头域来决定合适表现形式的响应。

Vary = “Vary” “:” ( “*” | 1#field-name )

一个HTTP/1.1的服务器应该包含一个Vary头域于任何可缓存的受限于服务器驱动协商的响应里。这样做是允许缓存合适地解析关于那个资源的将来请求,并通知用户代理那个资源导向地址的出现。一个服务器可能包含一个Vary头域于一个不可缓存的受限于服务器驱动协商的响应里,因为这样做可能为用户代理提供有用的并且响应据此而变化的维度信息。

一个Vary头域值由域名(filed-name)组成,响应的表现形式是基于Vary头域里列举的请求头域来选择的。一个缓存可能会假设为将来请求进行相同的选择,如果Vary头域例举了相同的域名,但必须是此响应在此期间是保鲜的。

Vary头域里的域名并不是局限于本规范里定义的标准请求头域。域名是大小写不敏感的。

Vary域值为”*”意味着不受限于请求头域的非特定参数在选择响应表现形式中起作用 。”*”值不能被代理服务器产生;它可能只能被源服务器产生。

通俗点的例子:

过程:我的浏览器 —请求—->squid —–请求—–>apache

apache在返回头中返回了一个vary:Accept-encoding ,则squid在存储缓存文件时需要将“我的浏览器”发出的请求头信息中的Accept-encoding字段的值(大多情况就是gzip,deflate之类的)作为缓存key的一部分,因此对于不同的Accept-encoding字段值,都需要保存不同的文件。(IE与firefox的请求头的Accept-encoding字段值中就有一个空格的差别)

下次请求到squid的时候,需要先找到一个缓存文件的索引文件,根据索引文件中的不同的Accep-encoding值再去找相应的缓存文件… 阅读全文

HTTP协议缓存策略深入详解之etag妙用

  categories:资料  tags:  author:

Etag 是URL的Entity Tag,用于标示URL对象是否改变,区分不同语言和Session等等。具体内部含义是使服务器控制的,就像Cookie那样。

HTTP协议规格说明定义ETag为“被请求变量的实体值” 。另一种说法是,ETag是一个可以与Web资源关联的记号(token)。典型的Web资源可以一个Web页,但也可能是JSON或XML文档。服务器单独负责判断记号是什么及其含义,并在HTTP响应头中将其传送到客户端。

实例详解:

 

也许读者们看完这个概念,还是搞不清楚这个etag响应头消息到底是干什么的,具体如何使用,所以接下来的篇幅我会用一个实际的例子来详细阐述etag的妙用。

想必许多网友都有订阅某些大虾的RSS的习惯吧,但是大虾也是人,也要吃饭睡觉打豆豆,所以不可能无时无刻的在从事文学创作,因此一般产量较高的大虾也许平均每天能更新两篇已经是不错了,但是网友们却总是不断的去刷新RSS订阅的内容,期望在下次刷新中又有新的劲爆文章出现,如果我们每次刷新,都要从服务器端重新获取内容(事实上,几乎一天内95%以上的刷新返回的都是相同内容,因为刚才也说了,大虾一般一天也就出一两篇新文章而已,所以大部分时间内,内容都是相同的),如果订阅量相当巨大,这对于服务器的压力还是带宽都是一个严重的挑战。其实真正需要服务器重新返回内容是大虾们更新了新的文章后,而其他时间我们无论怎么刷新服务器最好能做到不需返回任何数据,这才是一个比较好的方案,而我们的主角etag响应头的出现正是为了解决这个问题。

浏览器端实现

当我们订阅了某大虾的RSS,如图,我们点击左下角“RSS”按钮:

aaa

 

 

然后我们进入了rss订阅的相关页面,此时我们打开tamper data查看下http请求和响应的一些内容(这里我们截获http请求和响应信息的工具是基于FF浏览器的tamper data插件,如果您对这个插件不熟悉,请参考我的另外一篇介绍该工具的文章–  Tamper Data安装与使用简介 )。如下图:

 

ttt

 

从上图我们可以看到,服务器端返回响应值为200,并发送回了相应的网页内容,在http响应头中有etag消息头,值为

Etag=”fca75d26f6dc8111a7d1b24e9debd652″,我们不需要去关心这个响应头的内容是什么,我们只需要将这这个

头信息的值记录下来,随便创建一个notepad之类的东西保存好,以备接下来的实验使用。

然后我们刷新,希望能从webserver端获取该大虾新的文章,这时候我们用tamper data查看下http头中有哪些内容,如下图:

yyy

从此图中我们可以看到If-None-Match="fca75d26f6dc8111a7d1b24e9debd652",而该值的内容和我们先前第一次

刷新返回的http响应中的etag响应头的值完全一样。

如果某大虾并没在这段时间内发表任何文章,于是webserver端的rss文件没有任何变化,于是If-None-Match值和server端

的etag值相比较完全相等,这时候服务器就会认为客户端已经有最新的rss文件内容的缓存了,于是服务器就会发送一个 响应码

为“304”的http响应,304响应想必大家都知道是什么意思了,没错,他不包含任何响应的内容,只是提示客户端缓存的内容是最新的,

如下图


 qq

如果某大虾刚发表了一篇新的文章,因此在webserver中的rss的内容发生了改变,因此他的etag值就会发生改变,于是服务器会拿http请求中的If-None-Match的

值和改变和的etag值做对比,显然不正确的,于是webserver就会发送一个新的rss内容给客户端,这里我不能强制要求某大虾来配合我们的实验去立马发表新文章,

所以我们就变相做,也就是我们故意修改http请求头中的If-None-Match的值,这样就和服务器端的etag就不会匹配了,显然这时候服务器就会受骗发送一份“新”的

rss内容回来,如下图:

image

这里我们将http请求中的If-None-Match的值改为了”modifiedForOurTest”, 显然与响应中的Etag=”fca75d26f6dc8111a7d1b24e9debd652″不同,因此服务器就被受骗认为浏览器没有最新的文件内容,于是就返回了全新的响应内容(状态码200),而事实上浏览器端是有最新的内容的缓存的。… 阅读全文

透过httpwatch了解浏览器显示页面的工作过程

  categories:nginx  tags:  author:

原创文档,转载请将原文url地址标明

本文将研究当你输入一个网址的时候,后台到底发生了一件件什么样的事。当用户在一个浏览器中输入一个网站地址,然后点击回车,我们就会看到相关网站,操作可谓简单,但是若是无法打开一个网站时,如何能确定问题在哪里,这就需要我们了解在用户下达命令后,系统都发生了什么,这样为我们排除指明了方向。

1. 在浏览器里输入网址

wps_clip_image-15441

当用户输入了地址后,然后敲击回车键,一个网站的页面也就显示出来了。

里面其实主要发生了几个过程。

(1)浏览器查找域名及ip地址的对应关系

(2)浏览器根据ip地址。连接ip地址对应的服务器进行数据获取工作

之后就是根据数据进行相关数据的处理工作

(3)根据获取到的数据进行解析,然后获取里面包括的其他资源

(4)下载相关资源

(5)解释相关资源

(6)根据这些资源等,显示页面

下面将重点介绍相关过程。

2. 浏览器查找域名的IP地址

浏览器在接受到用户的请求后,首先要做的事情是找到用户输入的域名对应的ip地址是多少?然后去连接这个ip地址相关的服务程序,然后取得相关页面,最后进行显示。

wps_clip_image-19373

取得ip地址,首先浏览器会先检查自己的缓冲中是否存在域名及ip地址的对应关系,若是没有进行下面

检查hosts文件中是否有域名与ip地址的对应关系。我们经常在网站的开发中,临时指定hosts文件中的配置将某个域名指向开发的机器来调试应用程序的。利用就是这个原理。

然后检查操作系统的dns缓存,若是有也可以返回了,若是没有进行下面的

通过操作系统的dns客户端服务程序,访问用户配置的dns服务器进行域名解析。

用户的域名服务器会在自己的内存等中检查域名,若是域名存在则放回,若是不存在则根据设置,去检查上级域名服务器。

检查域名服务器主要过程如下:

①检查国际顶级域名服务器(.), 然后这个dns服务器会通知这个dns服务器区到 .cn域名的dns服务器检查域名,

②然后域名服务器会联系这个.cn域名服务器去解析域名,最后.cn域名服务器会告诉dns服务器区访问iigrowing.cn这个dns服务器区解析这个域名。

③最后用户dns服务器获取了相关的域名的ip的地址解析。

DNS对于像wikipedia.org这样的大型网站,整个域名实际对应是比较复杂的。有几种方法可以被采用,这里仅仅需要了解就好。

1. 循环 DNS 是DNS查找时返回多个IP时的解决方案。

2. 负载平衡器 是以一个特定IP地址进行侦听并将网络请求转发到集群服务器上的硬件设备。 一些大型的站点一般都会使用这种昂贵的高性能负载平衡器。

3. 地理 DNS … 阅读全文

httpwatch的常用功能1–警告信息应用

  categories:资料  tags:  author:

原创文档,转载请将原文url地址标明

HttpWatch是强大的网页数据分析工具,集成在Internet Explorer工具栏。包括网页摘要、Cookies管理、缓存管理、消息头发送/接受、字符查询、POST 数据和目录管理等功能及报告输出等,本篇文档简要介绍httpwatch的相关功能的使用。

关于这个软件的下载请大家自行在baidu搜索,安装也比较简单,本篇文章仅仅做一个简单介绍,后面还会专门介绍这个工具的使用。

一.启动httpwatch

Httpwatch集成到ie中,因此必须先启动ie浏览器后,在启动httpwatch(新版本的httpwatch已经提供了其他浏览器的插件例如firefox,但是笔者没用过,这里仍然用ie系列介绍),如下图

wps_clip_image-27716

启动ie后,在工具栏上面点击httpwatch的图标,即可。有的ie这个图标不可见,看看工具栏是否有向下的箭头等。有时候ie会隐藏些图标等等。这个应该不是难题

二.录制http请求

通过httpwatch进行http分析的第一件事情就是录制http的相关请求,如下图

wps_clip_image-5574

图中,

位置1:处button是录制http请求的按钮

点击这个按钮后,通过这个浏览器访问的http请求,包括ajax的请求都会被记录下来(当然不包括:applet,activex技术的非http的网络请求,或者未通过浏览器的其他网络请求)。

相关录制信息在按钮下面白色部分区域显示出来,默认按照请求的先后顺序显示,用户可以根据标题行进行排序。

位置2:处button是停止录制http的按钮

点击停止录制后,将不在录制http相关请求等数据,但是已经录制好的数据仍然存在。

一般情况由于网站都比较复杂,做过多的录制反而不容易发现问题,数据太多,用户会沉浸数据中找不到出路啦。因此一般都是找到特定页面,比如认为有问题的,或者有特别要求等的页面,然后录制,录制一段数据后就点击停止按钮,这样http内容就固定了,不在增长,这个时候用就可以专心分析已有数据了,否则数据列表总是在变化,有时候你也不找分析道哪里了。

位置3:处按钮清楚已经录制的http信息的按钮, http的录制状态不发生变化

清除按钮清除当前录制的屏幕,有时候,录制的http数据很多,但是这些数据又不是当前想看的,或者这些数据是分析过的,没有问题,想看看后面的内容,这个时候,适当清除当前数据是非常必要的。

注意:这里是非常重要的看红色大字体。从开始录制也可以减少http列表中数据的数量。但是同清除是非常有差别的。有时候一些问题是用户要在一个也没操作若干次后才出现的,而一开始是没有问题的。因此若是从头开始录制http等信息,很可能看不到问题的。需要长时间录制的,但是长时间录制,列表中数据又非常多,因此需要在录制一段时间后,在问题出现之前清除没有用或者不关心的http数据,然后后面专心分析可能有问题的数据。因此这个清除按钮是非常必要的。

三.查看http资源

我们这里以本站www.iigrowing.cn为例,进行录制,录制结果如下:

wps_clip_image-30299

大致可以分为3个区域

区域1:是浏览器的正常显示区域

区域2:是httpwatch录制下来的 相关http信息,默认以时间调用为先后顺序,用户可以自行排序,排序方法非常简单,双击标题栏,这个大家都都懂得。

区域3:是某一个http的具体相关详细信息,默认情况下是列表中第一个项目的详细信息(请求的总体情况)。

四.查看http信息

如下图,显示http的总体信息

wps_clip_image-1533

如上图,鼠标单击红色区域部分,然后检查下面蓝色区域部分:

网络部分情况:

Elapsed Time:相关网络请求花费时间,上图看总体花费时间4.5秒钟

Network Round Trips: 大致上是网络请求次数, 网络请求次数54次左右

Downloaded … 阅读全文




快乐成长 每天进步一点点      京ICP备18032580号-1