HTTP ,即超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它基于TCP协议且工作于应用层。
它无连接(每次只处理一个请求),媒体独立(任何类型的数据都可以发送),无状态(对于事物处理没有记忆能力,在服务器不需要先前信息时,它的反应就比较快)
HTTP的演变
从HTTP协议诞生到现在已经经过了数个版本,从HTTP1.0到HTTP1.1,HTTP1.1支持长连接和请求的流水线处理,这样减少了建立和关闭连接的消耗和延迟; HTTP1.1支持只发送header信息,如果后续认为客户端有权限可再发送请求体; HTTP1.0中认为每台服务器都有绑定唯一的IP地址,HTTP1.0没有host域,HTTP1.1中,若请求消息里没有host域会报错; HTTP1.1中引入了多种缓存控制策略,新增24个错误状态响应码
而从HTTP1.1到HTTP2.0,新增了多路复用的技术,做到一个连接并发处理多个请求并且数量比HTTP1.1大了几个数量级; HTTP2.0使用了HPACK算法对header数据压缩,传输更快; 引入server push,允许服务端推送资源至浏览器
请求方法
- GET:请求一个指定资源的表示形示,使用GET请求只用于获取数据
- POST: 用于将实体提交到指定的资源(如提交表单),通常导致在服务器上的状态变化或副作用
- PUT: 用请求有效载荷替换目标资源的所有当前表示
- DELETE: 请求服务器删除指定的资源
- HEAD: 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头(没有响应体)
- CONNECT: 建立一个到目标资源标识的服务器的隧道
- OPTIONS: 用于描述目标资源的通信选项
- TRACE: 沿着到目标资源的路径执行一个消息环回测试,用于测试或诊断
- PATCH: 用于对资源进行部分修改
常用请求头
常用响应头
实际观察
使用GET方法,返回内容的类型为css格式,文档的编码方法为br,所有资源都可以访问该网站的资源,对象在缓存代理中存贮的时长为13557877秒,缓存存储的最大周期为31536000,消息的大小