http(第四周+第七周)

示例:箭头函数1、箭头函数o-计算1-100的和、箭头函数2、箭头函数-计算机
1.客户端:client
2.服务器端:server
3.请求:request
4.响应:response
-在 Web 开发中,这四个概念构成了基础的交互模型,通常被称为 Client-Server Model(客户端 - 服务器模型)。

5在fiddler中
5.1查找状态码:
。点击导航栏‘’查找/ctrl+f‘’
。或者左侧菜单栏右键状态码第一个查找
5.2右下侧菜单栏还可以查看图片。
5.3右上侧是’数据‘是’请求体‘,右下侧‘数据‘是’响应体‘。

6.http的请求方法:
6.1有15种左右
。http/1.0定义了3种方法:get、post、head
。http/1.1定义了5种:options、put、delete、trace、connect
。其他方法:(如patch、move、copy等)由扩展标准(如webdav引入)
6.2常用的4种:
。get
。post
。put
。delete

7.cache缓存:(此处讲的是http的)
7.1目的:减少网络请求,加快加载速度,降低服务器压力,提升用户体验。
7.2本质:浏览器在本地存储资源副本,下次请求时直接复用,或确认是否要更新。
7.3分类:freshness强缓存(不用问服务器)、Validation协商缓存(需要问服务器)。
-304状态,表示使用了缓存就没有响应体(no response body)
-f5(有304,直接刷新)、ctrl+f5(无304强制刷新不使用缓存)

8.全局断点
全局断点:菜单栏->规则->自动断点->在请求前

9.单个断点:
9.1通过快捷键alt+q可以将焦点定位到命令输入框(小黑框)中。
9.2命令行中输入命令:bpu+空格+服务器地址,然后按enter键。
9.3命令行中输入:bpu 退出断点

10.cache、entity、modified、since、match、cookies
缓存、 实体、 已修改、 自从、 匹配、 服务器发送给客户端(浏览器)的 “小型文本文件”

11.浏览器缓存判定流程:
11.1是否有强缓存(expires/cache-cotrol)且未过期
。命中-直接用本地副本
。过期/没有-进入协商缓存
11.2是否有协商缓存的标识(etag/last-modified)
。发送请求,带上标识
。资源没改-返回304,用本地缓存
。资源更新-返回200,替换本地缓存
。没有标识,只能重新请求。

12.缓存存放位置
12.1 memory cache(内存缓存,页面关闭即失效)Windows powershell窗口输入命令:wmic memcache list
12.2disk cache(磁盘缓存,长期有效)

13.前端应用设置

14.apl数据:
14.1静态数据(如字典表)
14.2动态数据(如用户协议)

15.http压缩(适不适合讲的是压缩比)

16.查找定向图片:先定向,再查找(排序、search)

17.ctrl+f5刷新才能自动转发实现替换效果(抓包前也需要这样刷新一次,抓包后也需要这样刷新一次,所以一共需要抓包2次才可以实现效果。)
17.1操作步骤:
a.找到需要操作的网站,打开fiddler,准备好需要替换的素材(需要替换的是图片,可以检查另存为时复制素材地址。)
b.ctrl+f5刷新网址,然后fiddler抓包
c.找到要替换的图片的位置,然后找到导航栏上的'自动转发',把抓包到的材料拖到下面的白色空白处,这个拖过来的素材也需要勾选上。
d.在‘自动转发’需要勾选上面的启用规则+unmatched requests passthrough,勾选完成后点击加入规则。
e. 然后替换第二行的保存地址,改成你想替换的素材,然后点击保存。
f.最后重新打开网页,ctrl+f5刷新。

18.修包
18.1常用修包方法:
a.手动修改(请求前):
。设置断点:Rules → Automatic Breakpoints
。Before Requests:修改请求参数、头部、body
。After Responses:修改响应内容
b.AutoResponder(自动响应):
。匹配特定请求
。返回本地文件或自定义响应
。可用于模拟接口、替换资源
c.Fiddler Script(CustomRules.js):

image

19.indexof(包含一定是个大于等于0的数,(osession.方法.indexof(‘拦截的名’)>-1))
19.1使用方法:在 FiddlerScript 中判断字符串是否包含特定内容:
19.2区别:关键点解析:
a.indexOf() > -1 与 >= 0 的区别:
indexOf() 返回找到子串的起始索引(0 或正整数)
未找到时返回 -1
> -1 和 >= 0 在此场景下功能完全相同
都是判断"是否找到"(找到时为 true)
b.为什么用 > -1 而不是 >= 0?
个人编码习惯差异
逻辑上都是"索引值不是 -1"
两种写法都可以,选择一种保持一致性即可
c.更简洁的写法(推荐):

image
19.3实践建议:
a.优先使用 Fiddler 内置方法:uriContains()、HostnameIs() 等更语义化
b.复杂匹配用正则表达式:oSession.utilFindInResponse() 功能更强大
c.性能考虑:indexOf 对简单字符串查找效率足够
d.代码可读性:选择团队或个人习惯的写法并保持一致
e.这些技巧在接口测试、安全测试、性能分析等场景中非常实用。

第七周:
fiddler(导航栏的‘请求编辑’):
1.请求方法:
1.1请求方法:
a.get:
1.用途:请求一个指定的资源。
2.特点:只应用于检索数据,不应产生任何副作用。请求是幂等的(多次执行效果相同)且可被缓存。
b.post:
1.用途:向指定资源提交数据。
2.特点:通常用于创建新资源或执行一个会改变服务器状态的操作(如提交表单)。不是幂等的,通常不被缓存。
c.put:
1.用途:用请求负载完整替换目标资源的所有当前显示。
2.特点:如果资源不存在,可以创建它,是幂等的。
d.head:
1.用途:与get相同,但服务器不返回响应体。
2.特点:用于检查资源是否存在、获取其元数据(如内容类型、大小、修改时间)而无需传输整个内容。
e.trace:
1.用途:执行一个消息环回测试,返回服务器收到的请求。
2.特点:主要用于诊断,因安全风险通常被禁用。
f.delete:
1.用途:删除指定的资源。
2.特点:操作是幂等的。
g.search:
1.用途:一种实验性的方法,用于在远程目录中执行搜索查询
2.
h.connect:
1.用途:建立一个到目标资源的隧道,通常用于通过代理加密通讯(SSL/TLS)
2.
i.propfind:
1.用途:检索与资源关联的属性(如创建者、修改日期)
2.
j.proppatch:
1.用途:原子性的设置和删除多个资源属性
2.
k.patch:
1.用途:用于对资源应用部分修改。与put(整体替换)不同,patch只发送需要更改的部分。
2.
l.mkcol:
1.用途:创建一个集合(类似于目录)。
2.
m.copy:
1.用途:将资源从源url复制到目标url。
2.
n.move:
1.用途:将资源从源url移动到目标url。
2.
o.lock:
1.用途:在资源上设置一个锁,以防止并发修改。
2.
p.unlock:
1.用途:解除由lock方法设置的锁。
2.
q.options:
1.用途:查询目标资源支持的通讯选项(如支持http的方法)。
2.特点:常用于cors预检请求。

1.2区别:

2.cookie机制
2.1主要功能:是在无状态的http协议中用于保持会话状态的一种机制,是服务器发送给浏览器的并存储用户信息,cookie是网站为识别用户身份而存储在本地。
a.会话管理:保持用户登陆状态,记录购物车内容、游戏分数等。
b.个性化:保存用户的偏好设置,如语言、主题、布局等。
c.追踪与分析:记录和分析用户在一个网站或跨网站的行为,用于广告投放和数据分析。
2.2使用流程:(分为3个阶段:设置、发送、管理)
a.第一阶段:
设置cookie(服务器->浏览器)当用户首次访问一个网站或执行特定动作(如登录)时,流程开始。
1.浏览器发出请求:用户访问网址。
2.服务器创建cookie:服务器为了识别这个用户,会生成一个唯一的标识符(类似html的id),并可能附带其它信息。
3.服务器发送cookie:服务器在它的http响应中,通过一个叫做set-cookie的响应头,将cookie的信息发送给浏览器。
(下面几个值使用英文分号;隔开)
a.设置cookie的名称和值(用‘=’赋值)。
b.max-age:设置cookie的有效期(用‘=’赋值)。
c.path:指定cookie在哪个路径下有效(用‘=’赋值)。
d.secure:要求只有通过https连接时才能发送此cookie。
4.浏览器储存cookie:浏览器收到这个响应后,会解析set-cookie头,并将cookie的内容(名称值、有效期等)存储在本地。通常,浏览器会为每个网站创建一个独立的‘cookie jar(cookie库)’
b.第二阶段:发送cookie(浏览器->服务器)
从此以后,在该cookie有效且符合路径、域等规则的情况下:
1.浏览器发起后续请求:当用户访问同一网站的任何一个页面时。
2.浏览器自动附加cookie:浏览器会检查自己的cookie存储,找到所有与该网站域名和路径匹配的、未过期的cookie
3.浏览器发送cookie:浏览器自动将这些cookie通过cookie请求头,包含在http请求中发送给服务器。
(注意:这里所有的相关的cookie都会被一并发送,用分号和空格隔开)
c.第三阶段:管理与会话保持:
1.服务器识别用户:服务器收到请求后,读取cookie头中的信息(即上述所有发送后被接收的cookie,eg:用户的id)
2.恢复会话状态:服务器通过这个(eg:id)在它的数据库或内存中找到之前为该用户保存的会话数据(如用户名、用户id、登陆状态等)。
3.返回个性化内容:服务器根据识别出的用户信息,返回对应的个性化页面。
4.更新与销毁cookie:
a.更新:服务器可以在任何响应中再次使用set-cookie来更新已有的cookie或者设置新的cookie。
b.销毁:要让cookie失效,服务器可以发送一个同名的、但设置了max-age=0或者过期日期为过去时间的cookie。

3.数据cookies的重发并编辑(右键fiddler详情页)-验证cookie是否有效,能成功保存用户信息:
3.1打开需要用户验证才可使用的网页
3.2在fiddler中找到相应的详情(类似加断点)
3.3然后右键,找到重做,并点击重发并编辑。
3.4此时该详情被加上断点,然后找到请求request的导航栏上的‘数据’
3.5打开数据,找到下面的cookies然后,找到相应要删除的代码,删掉然后运行。(此时如果觉得cookies不好看,可以自己调整。或者点击导航栏上的cookies进行查看。)
3.6如果此时该详情运行出现302,则验证成功,否则则重复上面操作。

4.1在fiddlerscript中,若需阻止某个请求发送可使用:oSession.Abort(),此方法用于终止对话,也就是阻止某个请求的发送。
4.2fiddlerscript的onBeforeresponse是在服务器响应返回之后、fiddler将响应呈现给用户端之前触发的。
4.3fiddler的AutoResponder功能无需编写代码即可实现简单的请求转发。
4.4在AutoResponder中规则的执行顺序是从上到下,可通过拖拽调整顺序(这样能灵活控制请求的响应匹配逻辑)。
4.5在fiddler中,AutoResponder面板是用于创建自动转发规则等相关操作的地方,点击‘add rule’可以创建一条自动转发规则。
4.6在fiddler中,‘save’是保存会话。
4.7在fiddler中,fiddlerobject.log(),用于日志记录。
4.8fiddler自动转发主要用于请求的重定向等操作(eg:线上请求转发到本地测试环境、模拟接口返回固定数据、屏蔽特定广告请求等。)
4.9在fiddler 的autoResponder中,规则是按顺序检查的,当某条规则的‘match’条件不满足时,fiddler会自动跳过该规则,继续执行下一条规则,直到找到所有的规则或者遍历完所有规则。
4.10 在fiddler中的autoresponder中,‘enable rules’选项的作用是启用所有已创建的自动转发规则,这样这些操作才会生效。
4.11fiddlerscript的核心脚本文件是customrules.js,在这个文件中可以编写各种脚本规则来控制fiddler的行为,
4.12fiddler.exe是fiddler的可执行程序。
4.13fiddler.dll是相关的动态链接库。
4.14config.ini是配置文件。

posted @ 2025-12-29 10:30  why练习  阅读(2)  评论(0)    收藏  举报