06 HTTP的场景实践 | 豆包MarsCode AI刷题

42 阅读3分钟

实践基础

了解HTTP

什么是HTTP?

  • HTTP(超文本传输协议)是一种用于在网络上进行数据传输的协议。它是Web(万维网)的基础,允许客户端(如浏览器)和服务器之间进行通信。

HTTP基本概念

  • 请求-响应模型:HTTP使用请求和响应的方式进行通信。客户端发送请求,服务器处理请求并返回响应。
  • 无状态:每个HTTP请求都是独立的,服务器不会保存之前请求的状态。

HTTP 方法

常见的HTTP方法包括:

  • GET:请求指定资源,通常用于获取数据。
  • POST:向服务器提交数据,通常用于表单提交。
  • PUT:更新指定资源。
  • DELETE:删除指定资源。
  • 补充
    • image.png

常见状态码

HTTP响应中包含状态码,用于指示请求的结果。常见的状态码包括:

  • 200 OK:请求成功。
  • 404 Not Found:请求的资源未找到。
  • 500 Internal Server Error:服务器内部错误。
  • 补充
    • image.png

HTTP缓存基础

缓存类型:

  • 强缓存:如果缓存策略指定的资源在有效期内,则浏览器直接使用缓存,不发起请求。常见的头部字段包括 Cache-ControlExpires

  • 协商缓存:当缓存过期或没有明确缓存策略时,浏览器会向服务器发送请求,询问该资源是否已更新。如果资源没有变化,服务器返回 304 Not Modified 响应,浏览器使用缓存的内容。常见的头部字段包括 Last-ModifiedETag

关键的HTTP头部:

  • Cache-Control: 通过该头部可以设置缓存的有效期、缓存策略等,例如 max-ageno-cachepublic 等。

  • Expires: 该头部指定资源的过期时间,通常是一个绝对时间点。它被 Cache-Control 中的 max-age 头部所覆盖。

  • Last-Modified:该头部表示资源的最后修改时间,服务器可以通过该时间来判断资源是否被修改。

  • ETag: 该头部表示资源的唯一标识符,服务器根据 ETag 判断资源是否变化。

实践的一般步骤

  1. 打开浏览器
  2. 输入网址
  3. 打开控制台
    • 右键->检查
    • F12

实践

分析静态资源场景

  • 以分析知乎网页版为例

查看缓存策略

image.png

  • 如图所示,我们可以看到该请求测率为强缓存,时间有效期为一年

分析访问控制

image.png

  • 如图所示:access-control-allow-origin:* 表示允许任意访问来源来请求 该资源

分析资源类型

image.png

  • 如图所示:该键值对表示 该资源类型为 css类型

image.png

场景分析-登录

  • 分析新浪新闻登录请求

1. 操作:打开检查,并输入账号和密码,尝试登录

image.png

  • 这样可以看到,我们成功 获取到login请求

2. 想什么地址做了什么动作?

  • 使用了POST方法
  • 目标域名:https://passport.weibo.com
  • 目标:/sso/v2/

3. 携带了哪些信息,返回了哪些信息

3.1 查看携带信息

image.png

  • 如图我们分析,请求头的 content-type:application/json
  • 可以得出 希望获取的数据格式为json
  • 同时由该图还可以得出:以下携带信息
    • Post body,数据格式为form
    • 希望获取的数据格式为json
    • 已有的cookie
3.2 查看返回信息

image.png

  • 如图我们可以得知 返回信息 数据格式为 json

总结

建议

  • 分析工具建议使用 Google Chrome,因为它的开发者工具非常强大,文档也很多,支持网络请求的深入分析。
  • 通过分析缓存策略,我们可以判断某些资源的缓存时间设置是否合理,或者是否可以使用版本控制来避免缓存过期问题。

参考