我正在尝试迁移到http/2.我已经设置了一个Wordpress网站并配置了NGINX来使用http/2(使用SSL/TLS)来服务它.
我对http/2的理解是,默认情况下,它使用一个连接来传输大量文件 - 而不是打开新连接并为每个文件重复SSL握手.
为了达到类似http/1.x的效果,NGINX提供了keepalive指令.
那么在使用http/2时使用keepalive指令是否有意义?使用"nginx -t"检查我的配置文件时,如果包含它,则报告没有错误.但它有什么影响吗?基准测试显示没有差异.
Bar*_*ard 15
你误解了它是如何工作的.
保持Alive 在请求之间的工作.
下载网页时,它会下载HTML页面并发现它需要另外20个资源(CSS文件,javascript文件,图像,字体......等).
在HTTP/1.1下,您只能同时请求其中一个资源,因此通常Web浏览器会激活另外5个连接(总共提供6个连接)并请求这20个资源中的6个.然后,当这些连接释放时,它会请求剩余的14个资源.是的,在这些请求之间保持联系,但这不是它的唯一用途,我们将在下面讨论.设置这些连接的开销很小但很明显,并且只能一次请求这20个资源中的6个资源.这就是为什么HTTP/1.1对于今天使用网络来说效率低的原因,其中典型的网页由100个资源组成.
在HTTP/2下,我们可以在同一个连接上同时触发所有20个请求,因此可以获得一些好处.从技术上讲,你并没有真正受益于那些之间的保持活动,因为连接仍在使用,直到它们全部到达 - 尽管仍然受益于第一个HTML请求和其他20个请求之间的小延迟.
但是,在初始加载之后,可能会有更多请求.要么是因为您正在浏览网站,要么是因为您与该页面进行了交互,而且它会增加XHR api调用.无论是在HTTP/1.1还是HTTP/2上,这些都将受益于保持活动.
所以HTTP/2并不否定对保持活动的需求.它不需要多个连接(除其他外).
所以答案是始终使用keep-alives,除非你有充分的理由不这样做.您正在做什么类型的基准测试来说它没有区别?
| 归档时间: |
|
| 查看次数: |
4094 次 |
| 最近记录: |