阶段性测试-问答&操作题

一、简答题

1.简述HTTP请求方法中GET和POST的主要区别。

(1)参数位置:

GET 请求的参数附在 URL 之后,以 ? 开头,形如 ?key1=value1&key2=value2;
POST 请求的参数通常放在请求体(body)中传递。

(2)长度限制:

GET 有长度限制(受浏览器和服务器对 URL 长度的限制,通常为 2KB~8KB);
POST 理论无长度限制(实际受服务器配置限制)。

(3)安全性:

两者都不加密,但 GET 参数在 URL 中可见,易被缓存、日志记录,因此更不安全;POST 参数在请求体中,相对隐蔽(但仍需 HTTPS 保证安全)。

(4)缓存机制:

GET 请求可被缓存、保留在浏览器历史记录中;
POST 请求默认不会被缓存。

(5)用途场景:

GET 用于获取数据,幂等且安全(不修改服务器数据);
POST 用于提交数据,常引起服务器状态变化(如登录、下单)。

2.请解释HTTP状态码的分类及各类别的主要含义。

HTTP 状态码分为五大类,用三位数字表示:

1xx(信息类):

含义:请求已被接收,需要继续处理。这是一个临时响应,仅包含状态行和某些可选的响应头信息,服务器在完成请求处理后会发送一个最终响应。
常见例子:100 Continue(客户端应继续发送请求体)。

2xx(成功类):

含义:请求已成功被服务器接收、理解并接受。
常见例子:

  • 200 OK:请求成功。
  • 201 Created:请求成功且服务器创建了新的资源。
  • 204 No Content:请求成功,但响应报文中不含实体的主体部分(例如,删除操作成功)。

3xx(重定向类):

含义:需要客户端采取进一步的操作才能完成请求。通常用于URL重定向。
常见例子:

  • 301 Moved Permanently:永久重定向。请求的资源已被永久移动到新位置。
  • 302 Found:临时重定向。请求的资源临时从不同的URI响应。
  • 304 Not Modified:所请求的资源未修改,客户端可以直接使用缓存的版本。

4xx(客户端错误类):

含义:客户端请求中包含语法错误或无法完成请求。
常见例子:

  • 400 Bad Request:请求报文存在语法错误,服务器无法理解。
  • 401 Unauthorized:请求需要用户认证(如未登录)。
  • 403 Forbidden:服务器理解请求,但拒绝执行(权限不足)。
  • 404 Not Found:服务器找不到请求的资源。

5xx(服务器错误类):

含义:服务器在处理请求的过程中发生了错误。
常见例子:

  • 500 Internal Server Error:服务器内部发生了未知错误。
  • 502 Bad Gateway:作为网关或代理的服务器,从上游服务器收到了无效的响应。
  • 503 Service Unavailable:服务器暂时处于超负载或正在进行停机维护,无法处理请求

3.简述Fiddler的主要功能和在开发中的应用场景。

主要功能:流量捕获与监控, 协议分析与调试, 性能分析与优化, 请求/响应修改与构造, 安全与渗透测试, 自动化和脚本

应用场景:前端开发与调试,后端开发,移动开发,性能测试与优化,安全测试

4.如何使用Fiddler设置断点来修改一个HTTP请求的参数?请描述具体步骤。

(1)启动 Fiddler 并配置代理

    • 确保浏览器 / 应用已将代理设置为 Fiddler 的默认代理(通常是 127.0.0.1:8888)
    • Fiddler 会自动捕获所有经过代理的 HTTP/HTTPS 流量

(2)设置请求断点

    • 方法一:在 Fiddler 菜单栏点击Rules → Automatic Breakpoints → 选择Before Requests(所有请求都会触发断点)
    • 方法二:使用快捷键设置条件断点,在命令行输入:
      • bpu [URL关键字]:只对包含特定 URL 的请求设置断点
      • 例如输入bpu api.example.com只会拦截访问该域名的请求
    • 方法三:点击工具栏上的 "断点" 图标(看起来像暂停按钮),选择请求断点选项

(3)触发并拦截目标请求

    • 在浏览器或应用中操作,触发需要修改的 HTTP 请求
    • 当请求被 Fiddler 拦截时,该请求会以黄色高亮显示,并且在左侧会话列表中会有一个红色的暂停图标

(4)修改请求参数

    • 选中被拦截的请求,切换到右侧的Inspectors标签页
    • 选择Request选项卡查看请求详情
    • 根据请求类型修改参数:
      • GET 请求:在Headers或Raw视图中修改 URL 后的查询参数
      • POST 请求:在WebForms视图(表单数据)或Raw视图(原始数据)中修改参数值
    • 可以修改任何请求信息,包括 URL、 headers、表单数据、cookie 等

(5)发送修改后的请求

    • 修改完成后,点击 Fiddler 菜单栏上的Run to Completion按钮(看起来像播放按钮)
    • 或者按 F9 键发送修改后的请求到服务器

(6)取消断点

    • 若要取消所有断点:Rules → Automatic Breakpoints → Disabled
    • 若要取消特定条件断点:在命令行输入bpu(不带参数)

5.使用Fiddler捕获并分析特定网站的请求。

特定网站请求捕获

精准过滤配置

要只捕获目标网站的请求,需配置 Fiddler 的过滤规则,以百度(www.baidu.com)为例:

  1. 基础过滤设置:
    • 点击右侧Filters选项卡,勾选Use Filters启用过滤功能
    • 在Hosts过滤区域选择Show only the following Hosts
    • 输入目标主机地址,支持多种格式:
      • 单主机:www.baidu.com
      • 多主机:www.baidu.com;map.baidu.com(分号分隔)
      • 通配符:*.baidu.com(匹配所有百度子域名)
    • 点击Actions > Run Filterset now使过滤规则立即生效
  2. 高级过滤策略:
    • URL 过滤:使用Show only if URL contains筛选特定路径,如只显示搜索请求可输入/s?wd=
    • 请求类型过滤:在Request Headers区域可过滤特定 HTTP 方法(GET/POST)或状态码
    • 内容类型过滤:在Response Type and Size区域可选择只显示文档(HTML)或 API(JSON)请求,隐藏图片、CSS 等静态资源

自动捕获与保存

对于需要长期监控的场景,可配置 Fiddler 自动捕获并保存特定网站请求:

  1. 按Ctrl+R打开CustomRules.js文件

2.在OnBeforeRequest方法末尾添加过滤保存代码:

6.两种常用缓存的区别:

Memory Cache(内存缓存):

内存缓存将数据存储在服务器的RAM或浏览器的内存空间中。

  • 特点
    • 速度极致:因为数据直接在内存中,所以读写速度是所有缓存中最快的,适合对响应速度要求极高的场景。
    • 生命周期短:数据非持久化。对于服务器,重启服务缓存即消失;对于浏览器,关闭标签页或浏览器,缓存即失效。
    • 容量有限:受硬件内存限制,不能无节制使用。
  • 典型应用场景
    1. 浏览器:存储当前页面导航中已请求的资源,如图片、CSS、JS文件。当你刷新页面在同一标签页内跳转时,很多资源会从内存缓存加载,速度极快。
    2. 服务器/后端(如Redis, Memcached):
      • 缓存数据库查询结果,避免频繁查询数据库。
      • 存储用户Session会话信息。
      • 缓存热点数据,如电商网站的商品信息、秒杀活动的库存。

Disk Cache(磁盘缓存):

磁盘缓存将数据存储在硬盘上,如服务器的SSD/HDD或浏览器的专属缓存文件夹。

  • 特点
    • 速度较慢但容量大:虽然速度不及内存,但可以存储海量数据(几个GB甚至更多)。
    • 数据持久化:数据被保存在硬盘上,不会因为进程关闭而丢失。
    • 成本低廉:可以花费较低的成本获得巨大的缓存空间。
  • 典型应用场景
    1. 浏览器:存储那些跨会话需要使用的资源。当你完全关闭浏览器后再次打开同一个网站,很多静态资源(如大图片、字体文件、大型JS库)会从磁盘缓存加载,极大地提升了第二次及以后的访问速度。
    2. 服务器/后端
      • 缓存渲染后的完整页面HTML(即页面静态化)。
      • 存储用户上传的图片、视频等大型文件的处理副本。
      • 作为内存缓存的后备方案,当内存缓存满了或重启后,可以从磁盘缓存中"热加载"数据,加快应用启动速度。

二、操作题

1.请使用开发者工具完成以下操作:

(1)打开任意网页,找到页面中的第一个标题元素

(2)修改该标题的文本内容为"开发者工具练习"

(3)将标题的颜色修改为红色

(4)截图保存修改后的效果

(1)打开任意网页,按下 F12 或右键选择 "检查" 打开开发者工具

切换到 Elements 面板;

(2)在 DOM 树中找到第一个标题元素(通常是<h1>标签),或使用 Ctrl+F 搜索<h1>;

(3)右键点击该元素,选择 "Edit text",修改文本内容为 "开发者工具练习";

(4)在右侧 Styles 面板中,找到或添加color属性,设置值为red

确认修改后的效果,使用截图工具(如 Win+Shift+S)保存当前页面

2.按照要求依次将截图放到题目下方

(1)浏览器访问https://www.example.com,Fiddler 捕获请求

(2)筛选出主文档请求(Type 为 text/html)

(3)右键 “Copy → Just URL” 复制链接,对比浏览器地址栏

(4)找出页面中所有图片请求(Type 含 image),记录最大的图片 URL。https://ts1.tc.mm.bing.net/th?id=OADD2.1181975013747977_1P3FGSAH1QFVXQ9&pid=21.2&c=17&roil=0&roit=0.001&roir=1&roib=0.999&w=612&h=304&dynsize=1&qlt=90&dpr=1.50

3. 使用 Fiddler 修改抓包中的密码(通常是登录请求中的密码字段),需在合法授权的测试场景下进行

posted @ 2025-12-29 08:08  Ytttttttt  阅读(1)  评论(0)    收藏  举报