HTTP的场景实践
一、前言
HTTP(Hypertext Transfer Protocol)是一种用于在计算机之间传输超文本和其他资源的应用层协议。它是构建在TCP/IP协议之上的,用于在客户端和服务器之间进行通信。HTTP协议主要用于在Web上获取和传输资源,如HTML文档、图像、样式表、脚本等。
HTTP常见请求方法:
- GET: 用于获取指定资源的信息。通常用于请求网页、图像、文档等内容。
- POST: 用于提交数据给服务器,通常用于在Web表单中发送数据。
- PUT :用于将数据存储在服务器上,通常用于更新资源。
- DELETE: 用于删除指定的资源。
二、实践 - 新浪网站
首先打开新浪网 (sina.com.cn),右击进入检查页面,选择Network进行查看。当前页面如下:
通过刷新页面可以捕获报文。如下图:
选择www.sina.com.cn来进行分析。在标头中分为三类,常规,响应标头和请求标头。
1.常规
常规标头包含了请求和响应中都可能会用到的一些标头信息,不管是在请求还是响应中,这些信息都是有意义的。
- 请求 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响应头包含了服务器返回给客户端作为响应的一些元数据信息。以下对一些较重要的数据进行分析:
-
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请求的头部信息,其中包含了一系列用于描述客户端请求的各种字段。
-
: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浏览器的信息。