目录

1.fiddler 的基本用法

2.HTTP 协议的基本格式

2.1请求和响应的基本格式

2.2HTTP 请求 (Request)

2.3urlencode

2.4认识“方法”(method)


1.fiddler 的基本用法

下载好fiddler Classic之后对其进行基本配置,点击左上角Tools ——>Options——>HTTPS,将当中的选型全部勾选。

注意:在点击OK之后,会弹出一个对话框,这个是提示是否需要信任根证书,一定要选YES,否则要重新下载软件,再进行上述操作。

配置完成之后在页面左侧是当前的请求/响应列表(fidder只会抓取http)。

点击任意请求/响应,在右边上角点击Inspectors + Raw就可以显示请求的原始数据,再点击右下角的View in Noterad,就可以查看。

在右下角就是响应数据,这个经常是压缩后传输的,目的是为了节省网络宽带。

点击Raw便是压缩后传输的响应数据,点击上边的黄色格子,就会进行解压缩,再点击右下角的View in Noterad,就可以查看。

以上就是fiddler进行抓包的基本操作。

2.HTTP 协议的基本格式

2.1请求和响应的基本格式

请求:

我们使用fiddler进项抓包操作

响应:

因此HTTP协议是一个“文本格式的协议”

请求:首行,请求头,空行,正文。

响应:首行 ,响应头,空行,正文。

2.2HTTP 请求 (Request)

认识 URL 

基本格式:

举一个具体的例子:https://v.bitedu.vip/personInf/student?userId=10000&classId=100

https:协议名称,常见的有http,https,在访问mysql时用jdbc:mysql。
v.bitedu.vip:要访问的服务器的域名或ip地址,此处为域名,ip和域名之间可以相互转换,这个过程通过DNS域名解析系统来完成。( v.bitedu.vip 的真实 IP 地址为 118.24.113.28)
student?userId=10000&classId=100:查询字符串,对要访问的资源进行补充说明,也是键值对结构,键值对之间用&分割,键和值之间使用=分割。
/personInf:带有层次的结构路径,每一层就相当与一个目录。
URL 中的可省略部分:
协议名: 可以省略, 省略后默认为 http://
ip地址 / 域名: 在 HTML 中可以省略(⽐如 img, link, script, a 标签的 src 或者 href 属性). 省略后表
⽰服务器的 ip / 域名与当前 HTML 所属的 ip / 域名⼀致.
端⼝号: 可以省略. 省略后如果是 http 协议, 端⼝号⾃动设为 80; 如果是 https 协议, 端⼝号⾃动设为
443.
带层次的⽂件路径: 可以省略. 省略后相当于 / . 有些服务器会在发现 / 路径的时候⾃动访问
/index.html
查询字符串: 可以省略
⽚段标识: 可以省略

2.3urlencode

urlencode的作用是把数据中二进制内容的每一个字符提取出来,用十六进制表示,再在前面加上%。

例如:"+" 被转义成了 "%2B”

具体可以访问网站:UrlEncode编码/UrlDecode解码 - 站长工具

2.4认识“方法”(method)

谢灵运有句话说得好:天下才子十斗,曹子建独占八斗,我占一斗,天下人共分一斗

那么method可以说成:天下方法十斗,GET独占八斗,POST占一斗,剩下方法共分一斗。

所以GET和POST就是最常见的请求

GET:

获取html,css,js等操作,都是GET并且GET请求一般没有正文,如果需要通过GET给服务器发送一些数据,通过query string传递过去。

POST:

登录,上传文件这两个典型场景都是POST

上传文件的请求时带有正文的

GET和POST的区别(典型面试题)

1.语义上的区别:语义上可以混着用。

2.携带数据的方式:POST主要通过正文携带,也是可以带有query string(少部分)

                                GET:通过query string携带,少部分通过正文携带。

3.GET的请求通常设置成幂等,POST无要求

4.GET设置成幂等,就可以运行GET请求的结果被缓存,POST没有设置成幂等,不可以运行GET请求的结果被缓存。

PUT和DELETE:

这两个在实现Restful格式的api时会用到

 PUT 请求的特点: 幂等性,需要完整的资源表示.

DELETE 请求的特点: 具有幂等性 ,可能返回缓存或验证问题.

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐