HTTP协议总结

HTTP协议总结

协议背景

层次结构讲,http协议是面向服务的应用层协议,建立在TCP可靠链接协议基础上的。

发展历程

1.0 到1.1

1.0的协议是面向服务的,因此每次连接看做单次服务。同时,协议本身是无连接的,且协议是无状态的。

问题:同一个页面的大量http请求的进行,是非常消耗资源的,主要是占用文档的传输时间。

1.每一次请求都要占用2倍RTT开销+文档传输时间。而一个页面的文档上多个链接的对象需要依次进行链接,时间开销大。

2.客户和服务器连接时,服务器对于每个客户的TCP请求的都会分配内存和变量,服务器开销大

解决一、 浏览器能同时进行5-10个TCP链接,加快时间开销。

http1.1 使用持续时间

持续时间的工作方式

1、流水线式

2、非流水线

1.1到2.0 http2.0

总结:

●对1.x协议语意的完全兼容

2.0协议是在1.x基础上的升级而不是重写,1.x协议的方法,状态及api在2.0协议里是一样的。

●性能的大幅提升

2.0协议重点是对终端用户的感知延迟、网络及服务器资源的使用等性能的优化

具体优化点
01 二进制分帧(Binary Format)- http2.0的基石

http 1.X 采用aicⅡ码 ,采用二进制进行分帧,显而易见的高效的多

02 多路复用 (Multiplexing) / 连接共享

1.X版本中,并行的方式有多个TCP链接请求 和 流水线工作方式两种。

而2 版本中,采用了流的机制。可以在收到流后,通过序列号等方式。大大提高并行效率

03 头部压缩(Header Compression)

头部信息的压缩

原理:

用header字段表里的索引代替实际的header。

http/2的HPACK算法使用一份索引表来定义常用的http Header,把常用的 http Header 存放在表里,请求的时候便只需要发送在表里的索引位置即可。

例如 :method=GET 使用索引值 2 表示,:path=/index.html 使用索引值 5 表示

04 请求优先级(Request Priorities)

把http消息分为很多独立帧之后,就可以通过优化这些帧的交错和传输顺序进一步优化性能。每个流都可以带有一个31比特的优先值

●优先级最高:主要的html

●优先级高:CSS文件

●优先级中:js文件

●优先级低:图片

05 服务器推送

服务器可以对一个客户端请求发送多个响应,服务器向客户端推送资源无需客户端明确地请求。并且,服务端推送能把客户端所需要的资源伴随着index.html一起发送到客户端,省去了客户端重复请求的步骤。

正因为没有发起请求,建立连接等操作,所以静态资源通过服务端推送的方式可以极大地提升速度


协议头部内容

请求报文头部的方法

post , option, get , head , put , delete

post 向服务器添加信息

option 请求一些选项信息

get 请求服务器读取url 中的信息

head 请求读取url 信息中的首部


post 和 get 的区别

安全性区别

传输数据的大小区别

(url长度限制)

请求报文与回复报文

请求报文,methods + url + 版本

首部行

回复报文

版本 + 状态码 + 短语(结束状态码)

状态码分类

1 开头通知消息

2 开头 成功

3 开头 重定向 (完成请求需要进一步操作)

4 开头 客户 错误

5 开头 服务器差错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值