Fiddler资料之基本信息

◆ Fiddler抓包的原理:

Fiddler本质上是一个Web代理服务器,它的默认工作端口是8888。Fiddler启动的时候,会偷偷把Internet选项中的代理修改为127.0.0.1,端口:8888。当Fiddler退出的时候,它会自动在Internet选项中取消代理,这样就不会影响别的程序。如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动Fiddler。

◆ 代理服务器:

代理服务器是网络信息的中转站,它具有以下功能:

  • 共享网络:能解决仅仅有一条线路、一个公有IP的问题。在公有IP资源严重不足的情况下,可以满足局域网大量用户同时共享上网的需求。
  • 提高了访问速度:因为大部分的代理服务器都有缓冲功能,可以直接读取,无须再连接到远程Web服务器。这样可以达到加快访问网站的速度、节约通信带宽的目的。
  • 突破了访问限制:当访问权限受到限制时,可以使用有权限的代理服务器。
  • 隐藏身份:内部网的用户要对外发布信息,就需要使用代理服务器的反向代理功能。这样就不会影响内部网络的安全性能,起到隐藏身份的目的。

◆ URI:

统一资源标识符(Uniform Resource Identifier),用来唯一地标识一个资源,URL是一种具体的URI。

◆ URL中的锚点:

URL中的锚点(Anchor)是一种超链接,只是它是页面内部的超链接。假如有一个网页很长,而且里面的内容可以分为N个部分。我们可以在网页的顶部设置一些锚点,以便浏览者单击相应的锚点,快速到达本页内相应的位置,而不必在一个很长的网页里自行寻找。

锚点在URL的最右边,前面有一个字符“#”。比如下面的#source:http://www.cnblogs.com/TankXiao/p/7087990.html#source。

◆ URL编码:

URL Encode就是把所有非英文字母、数字字符都替换成百分号(%)后加两位十六进制数,比如空格的编码为“%20”。

◆ HTTP协议是无状态的:

HTTP协议是无状态的,对于浏览器的每一次请求,服务器都会独立处理,不与之前或之后的请求发生关联。即使是同一个浏览器发送了3个请求,服务器也会独立处理这3个请求,服务器并不知道这3个请求是来自同一个浏览器。

◆ HTTP请求(Request)报文:

  • 起始行(Request line)
  • 首部(Request Header)
  • 主体(Body)

◆ HTTP响应(Response)报文:

  • 响应行(Response Line
  • 响应首部(Response Header)
  • 主体(Body)

Fiddler资料之基本信息

◆ HTTPS:

HTTPS = HTTP+TLS或者SSL,采用HTTPS的网站需要去数字证书认证机构(Certificate Authority,CA)申请证书。

◆ 网页打开的过程:

打开一个网页,浏览器需要发送很多个请求在浏览器中,打开一个网页的过程如下:
(1)在浏览器输入URL。
(2)浏览器会发送第一个HTTP请求去获取页面布局的HTML,这个请求叫作“父请求”。然后服务器把HTTP响应发回给浏览器。
(3)浏览器会分析HTTP响应中的HTML。如果发现HTML中引用了很多其他文件,比如图片、CSS文件、JS文件等,浏览器会自动再次发送很多HTTP请求,去获取图片、CSS文件或者JS文件。这些HTTP请求叫作“子请求”。
(4)当所有子请求的响应都返回后,浏览器会把1个父请求加上多个子请求渲染出来。这样就形成了一个页面,网页就在浏览器上显示出来。

◆ HTTP压缩:

简单来说,gzip压缩是在一个文本文件中找出类似的字符串,并临时替换它们,从而使整个文件变小。HTTP压缩的过程如下:

(1)浏览器发送HTTP请求给Web服务器,请求中的Header能Accept-Encoding: gzip, deflate(告诉服务器,浏览器支持gzip压缩)。
(2)Web服务器接到HTTP请求后,生成原始的HTTP响应,其中有原始的Content-Type和Content-Length。
(3)Web服务器通过gzip来对HTTP响应进行编码,编码后Header中有Content-Type和Content-Length(压缩后的大小),并且增加了Content-Encod:gzip,然后把HTTP响应发送给浏览器。
(4)浏览器接到HTTP响应后,根据Content-Encoding:gzip来对HTTP响应进行解码,获取到原始HTTP响应后显示出网页。

◆ 缓存文件的有效性判断:

浏览器可以通过缓存文件的修改时间来判断缓存的新鲜度。具体步骤如下:

(1)如果浏览器客户端想请求一个文档,它首先检查本地缓存,发现存在这个文档的缓存,获取缓存中文档的最后修改时间,通过“If-Modified-Since”发送HTTP请求给Web服务器。
(2)Web服务器收到HTTP请求,将服务器的文档修改时间(Last-Modified)跟HTTP请求Header中的If-Modified-Since相比较。如果时间是一样的,说明缓存还是最新的,Web服务器将发送状态码304(Not Modified)给浏览器客户端,告诉客户端直接使用缓存里的版本。
(3)假如该文档已经被更新了,Web 服务器将发送该文档的最新版本给浏览器客户端。

使用【Ctrl+F5】快捷键强制刷新浏览器,可以让浏览器不使用缓存。