文章目录
HTTP 是什么
全称是 超文本传输协议。
HTTP 属于是 应用层 最广泛使用的协议之一,浏览器获取到网页基于的就是 http。
换句话也就是,HTTP 就是浏览器和服务器之间的桥梁。
HTTP 往往是基于传输层的 TCP 协议实现的。
我们平时就是通过 HTTP 协议传输数据,来打开一个网站的。
当我们在浏览器中输入一个搜狗搜索的 “网址” (URL) 时,浏览器就给搜狗的服务器发送了一个 HTTP 请求,
搜狗的服务器就会返回了一个 HTTP 响应。
这个响应结果被浏览器解析之后,就展示成我们看到的页面内容。
(这个过程中浏览器可能会给服务器发送多个 HTTP 请求,服务器会对应返回多个响应,这些响应里就包含了页面 HTML、CSS、JavaScript、图片、字体等信息)
当我们在浏览器中输入一个 “网址”,此时浏览器就会给对应的服务器发送一个 HTTP 请求。
对方服务器收到这个请求之后,经过计算处理,就会返回一个 HTTP 响应。
HTTP 协议报文格式
HTTP 协议格式
1 抓包工具的使用
抓包工具有很多,这里使用 fiddler,因为这是专注于 http 的,使用起来会更加的方便。
可以自上网下载安装,过程非常简单。
启动以后就会立即显示出当前电脑上某个程序使用 http 的服务器交互的过程。
2 抓包工具的原理
fiddler 的本质是一个代理程序,使用的时候有两个注意事项。
1、可能和别的代理程序冲突,使用的时候就要关闭其他的代理程序(包括一些浏览器插件)。
2、要向正确抓包,还需要开启 https 功能。
https 是基于 http 搞出来的进化版协议,当前互联网上却大多部分的服务器都是 https 的。
fiddler 默认不能抓 https 的包,需要手动启动 https 并且安装证书。
2.1 什么是代理
代理其实就是找个人帮你干活儿。
比如说,我想要吃饭,但是我又懒得去买,我就和室友说:“你去食堂吃饭的时候帮我带一份饭,ok?”
当他吃完饭回来的时候,就会把饭带给我,我再把前交给他。
如果是我自己去食堂,也是可以买到饭的,但是因为我比较懒,所以让室友帮我带了。
此时室友就是一个 “代理”,换个说法也就是,室友就是帮我干活的,在我不方便的时候,就需要派一个代理去。
在上述的过程中,我和食堂老板进行了什么样的交易,室友是非常清楚的,他就可以拿出一个小本本记下来。
fiddler 就是这样一个代理。
2.2 正向与反向代理
代理还分为 正向代理 与 反向代理,
代表着客户端的代理,叫做正向代理,代表着服务器的代理,叫做反向代理。