HTTP的场景实践 | 青训营

53 阅读4分钟

HTTP的场景实践

一、前言

HTTP(Hypertext Transfer Protocol)是一种用于在计算机之间传输超文本和其他资源的应用层协议。它是构建在TCP/IP协议之上的,用于在客户端和服务器之间进行通信。HTTP协议主要用于在Web上获取和传输资源,如HTML文档、图像、样式表、脚本等。

HTTP常见请求方法:

  • GET: 用于获取指定资源的信息。通常用于请求网页、图像、文档等内容。
  • POST: 用于提交数据给服务器,通常用于在Web表单中发送数据。
  • PUT :用于将数据存储在服务器上,通常用于更新资源。
  • DELETE: 用于删除指定的资源。

二、实践 - 新浪网站

首先打开新浪网 (sina.com.cn),右击进入检查页面,选择Network进行查看。当前页面如下:

2C0BWIVO${Z}UOZT86(7NLH.png

通过刷新页面可以捕获报文。如下图:

UW%%S0@8TLP@XVWU@$EF31P.png

选择www.sina.com.cn来进行分析。在标头中分为三类,常规,响应标头和请求标头。

1.常规

常规标头包含了请求和响应中都可能会用到的一些标头信息,不管是在请求还是响应中,这些信息都是有意义的。

XY3O}E$U`7GUNI_1THJE4PB.png

  • 请求 URL: 这是我所请求的目标URL,即新浪网站的主页(https://www.sina.com.cn/)。
  • 请求方法: 这里使用了HTTP的GET方法,它是一种常见的HTTP请求方法,用于获取指定资源的信息。
  • 状态代码: 这是服务器对你的请求所返回的HTTP状态码。在这里,状态代码是200,表示请求成功。服务器成功地响应了你的请求并返回了所请求的资源。
  • 远程地址: 这是一个IP地址和端口号的组合,指示我的本地计算机上用于网络通信的代理地址。在这里,IP地址是127.0.0.1,端口号是1080。
  • 引用者策略: 这可能是安全性策略的一部分,指示如何处理来自“不安全”URL的引用。unsafe-url可能表示允许来自不安全URL的引用。
2.响应标头

HTTP响应头包含了服务器返回给客户端作为响应的一些元数据信息。以下对一些较重要的数据进行分析:

pic.png

  • Age: 表示响应的年龄,指示响应在缓存中存在的时间,以秒为单位。这可以帮助客户端了解响应的新鲜度。该服务器的相应年龄为24。

  • Cache-Control: 控制缓存行为的指令,例如max-age=60表示资源可以在客户端缓存中保持60秒。

  • Content-Encoding: 表示响应主体所使用的编码方式,这里是gzip,说明主体经过了gzip压缩。

  • Content-Length :响应主体的长度,以字节为单位。

  • Content-Type: 响应主体的MIME类型,这里是text/html,表示响应是HTML文本。

  • Etag: 表示响应内容的实体标签,用于缓存验证。其中

    • "64e84416-666cc":这部分看起来是资源内容的某种标识,可能是一个哈希值或其他唯一的标识。
    • V=5965C31:这部分看起来可能是与版本相关的信息。
  • Expires: 响应过期的日期和时间,通常与Cache-Control中的max-age相结合。该响应将会在格林威治时间的2023年8月25号6:07:46过期,

  • X-Powered-By: 表示服务器所用的框架或技术。该服务器使用的框架或技术的名称为 "shci",版本为 "v1.13"。

3.请求标头

这是一个HTTP请求的头部信息,其中包含了一系列用于描述客户端请求的各种字段。

pic2.png

  • :authority: 指示请求的目标主机,这里是www.sina.com.cn

  • :path: 请求的路径,这里是根路径/

  • :scheme: 请求的协议方案,这里是https。

  • Accept: 指示客户端能够接受的媒体类型。这里包含了多种类型,例如HTML、XML、图像等。

  • Accept-Encoding: 指示客户端能够接受的内容编码方式,例如gzip、deflate、br(Brotli)等。

  • Cache-Control: 控制缓存行为的指令,这里是max-age=0,表示不使用缓存。

  • Cookie: 包含客户端的Cookie信息,用于状态管理。

  • Referer: 表示请求是从哪个页面链接过来的。

  • Sec-Ch-Ua: 指示浏览器和操作系统的User-Agent信息。

  • User-Agent: 表示发起请求的用户代理,这里是Chrome浏览器和Edge浏览器的信息。