最近在优化web页面, 自然少不了与网络传输,请求相关的一些考虑,在做了gzip压缩,设置JS/css/image的expired或max-age时间后,用测试工具做了分析,效果确实好多了,不过工具也给出了一些建议,比如CDN,http keep-alive, CDN是做不了了。
查阅了一些有关keep-alive的资料,Keep-Alive在http1.0版本默认不支持,需要显示的设置头信息Connection:Keep-Alive,在http1.1版本中,请求端默认开启。http本身是基于TCP的无状态的连接,每次交互都是请求->响应->关闭连接, 若打开了此功能,则在第一次请求时打开,同时保持为一个长连接,后续的请求过来时,就不用再打开,关闭消耗资源了。个人觉得这是一把双刃剑,看你如何去均衡了。如果长时间打开,它会一直占用这个连接,在大并发量时,显然不合适,最好是设置一个超时时间,如下为JAVA示例。
1.服务端必须显示的告知客户端启用Keep-Alive
response.addHeader("Connection", "keep-alive");
2.设置超时时间,为10s后关闭连接,同时在这段时间内最大支持50个请求.
response.addHeader("keep-alive","timeout=10,max=50");
同时有不错的工具,可以免费测试:
http://www.webpagetest.org/
https://addons.mozilla.org/en-US/firefox/addon/yslow/
https://developers.google.com/speed/pagespeed/?hl=zh-CN
分享到:
相关推荐
HTTP 协议 Keep-Alive 模式详解 Keep-Alive 模式是 HTTP 协议中的一种机制,它使客户端到服务器端的连接保持有效,从而避免了每个请求和应答都新建一个连接,并立即断开连接。下面是关于 Keep-Alive 模式的详细...
Vue Keep-Alive 请求数据的方法示例 Vue Keep-Alive 是 Vue 框架中的一个功能强大且实用的机制,可以缓存组件的状态,减少不必要的组件重渲染,提高应用程序的性能。但是,在使用 Keep-Alive 时,可能会遇到一些...
总结来说,"springboot-keepalive设置测试"涉及到的关键知识点包括:Spring Boot的HTTP连接池配置,特别是与keepalive相关的`keep-alive-timeout`属性;使用Jodd HttpClient进行HTTP客户端测试,以及理解HTTP长连接...
在HTTP协议中,Keep-Alive模式是一种用于优化网络通信的技术,它允许客户端和服务器在同一TCP连接上进行多次请求和响应,而不是每次交互都创建新的连接。这种模式显著提高了效率,减少了网络延迟,降低了资源消耗,...
"Keep-alive" 是一种网络通信技术,主要应用于TCP协议中,用于保持连接状态,避免因长时间无数据传输导致的连接中断。Keepalive工具包,如提到的"Keepalive 1.3.5",是实现这一技术的软件实现,主要用于服务器端,以...
react-keep-alive 缓存demo,网上很少有可用的案例,此demo 包括生命周期都有,可以直接搬到项目中使用! 免 C 币 下载地址: http://download.lllomh.com/cliect/#/product/J804099672377354
TCP Keepalive 和 HTTP Keep-Alive 的区别和实现机制 TCP Keepalive 和 HTTP Keep-Alive 是两个不同的概念,虽然它们的名称相似,但它们的实现机制和作用域完全不同。下面我们将详细介绍 TCP Keepalive 和 HTTP ...
在处理Keep-Alive模式下的HTTP请求时,判断请求结束的方法有所不同。以下是两种主要的判断策略: 1. **根据Content-Length字段**: 当服务器在响应头部提供了`Content-Length`字段时,这个字段表明了响应主体的...
为了提升HTTP连接的性能,Nginx提供了对HTTP持久连接的支持,也就是所谓的keep-alive功能。持久连接允许在同一TCP连接中传输多个HTTP请求和响应,减少了频繁建立和拆除TCP连接所带来的开销。 Keep-alive机制改善了...
首先,我们要明确我们谈的是TCP的 KeepAlive 还是HTTP的 Keep-Alive。TCP的KeepAlive和HTTP的Keep-Alive是完全不同的概念,不能混为一谈。实际上HTTP的KeepAlive写法是Keep-Alive,跟TCP的KeepAlive写法上也有不同。...
HTTP 1.0版本默认不开启Keep-Alive,需要在HTTP头中添加"Connection: Keep-Alive"来启用。相反,HTTP 1.1版本默认开启Keep-Alive,除非在HTTP头中明确指定"Connection: close"来关闭。 2、启用Keep-Alive的优点 ...
"线上问题分析:The target server failed to respond(目标服务器返回失败)" ...我们了解了HTTP协议、Keep-Alive机制、服务器配置和客户端配置的重要性,并了解了如何使用tcpdump和netstat工具来诊断网络问题。
理解HTTP协议的基本原理、通用头域的作用以及Keep-Alive机制的工作方式,对于开发高效可靠的网络应用至关重要。通过深入研究HTTP协议的细节,开发者可以更好地优化网络通信流程,提升用户体验。
- **HTTP Keep-Alive**: 也称为HTTP长连接,由应用程序层面实现。它允许客户端和服务端之间保持一个TCP连接,用于发送和接收多个HTTP请求/响应,从而减少了建立和关闭连接的开销。 - **TCP Keep-Alive**: 也称为TCP...
通过使用keep-alive机制,可以减少tcp连接建立次数,也意味着可以减少TIME_WAIT状态连接,以此提高性能和提高httpd服务器的吞吐率(更少的tcp连接意味着更少的系统内核调用,socket的accept()和close()调用)。
5. **设置连接方式为keep-alive**:HTTP Keep-Alive允许在单个TCP连接上处理多个HTTP请求,避免了每次请求都建立新的连接,显著提高了数据传输效率。在游戏的网络通信中,启用Keep-Alive可以降低延迟,提升玩家的...
- **低内存消耗**:Nginx以低内存占用支持大量并发连接,例如,10000个非活跃的HTTP Keep-Alive连接仅消耗2.5MB的内存。 - **支持大量并发连接**:单机支持10万以上的并发连接,理论上并发连接上限取决于内存。
- **HTTP Keep-Alive**: 使用 `--keep-alive` 参数启用HTTP Keep-Alive功能。 - **HTTP NULL连接**: 使用 `--null-connection` 参数启用HTTP NULL连接。 - **并发HTTP(S)请求**: 使用 `--threads` 参数设置并发HTTP...