http2/http3了解

2022-6-24 17:41:28 星期五

http协议进化图

 

http2:

1. 使用二进制传输, 而不是文本, 可以方便控制传输块的大小

2. 一个域名下的访问都通过一个链接

3. 必须要配合SSL使用, 监听443端口:

nginx:  
listen 443 ssl http2;

 

4. 服务器推送(资源加载的少了, 性能提升的不多, 浏览器缓存也需要考虑). 

nginx: 
http2_push index.css
http2_push_preload on;

php:
function pushImage($uri) {
    header("Link: <{$uri}>; rel=preload; as=image", false);
    return <<<HTML
    <img src="{$uri}">
    HTML;
}

 

http3:

1. 用UDP+QUIC 代替了TCP协议

1.1 其中 QUIC 意思是快速UDP网络链接, 起到了类似TCP的可靠性功能

1.2 但是 QUIC 不是在传输层作用, 而是在上一层, 也就是说, 如果升级了http3, 服务器和终端(电脑, 手机)之间的这些路由器, 交换机, 以及服务器和电脑上的操作系统都不用做什么改变, 便于推广

1.3 UDP+QUIC 减少了握手次数, 减少了丢包重传的概率, 减少了重传序号的歧义, 减少了阻塞

1.4 增加安全性, QUIC 将数据包拆的更小(不会超过每次最大的传输窗口大小MTU), 以每个小包为单位, 做加密解密;  不像是TCP, 把每次传输的数据(tcp计算出的最大窗口量, 可能有多个包)整个进行加密解密, 丢了一个数据, 就得等着重传, 全部接收完才能解密;

(安全分两种: 一种是不会被篡改, 一种是只要篡改, 接收端就会知道)

 

参考原文: 

HTTP/2 服务器推送(Server Push)教程 - 阮一峰的网络日志 (ruanyifeng.com)

Using HTTP/2 Server Push with PHP (cloudflare.com)

http3: https://www.jianshu.com/p/dd9719c4c2c1

quic协议: https://www.jianshu.com/p/8f0b8d0a4832

posted @ 2022-06-24 17:59  myD  阅读(100)  评论(0编辑  收藏  举报