关于"保持 HTTP 连接"和“连接超时N秒"的说明

本文深入探讨了HTTP连接在服务器性能优化中的作用,解释了非持久连接与持久连接的区别,阐述了连接超时机制如何帮助减少资源消耗,并介绍了配置数据库属性以提升服务器效率的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

保持 HTTP 连接

      先引用下网站上的一些说明如下:大多数 Web 浏览器要求服务器在多个请求中保持连接打开。这被称为保持 HTTP 连接。保持连接是一个 HTTP 规范,它能够显著增强服务器性能。如果没有它,浏览器将必须为包含多个元素(如图形)的页进行大量的连接请求。可能需要为每个元素进行单独连接。这些额外的请求和连接要求额外的服务器活动和资源,这将会降低服务器的效率。它们还会大大降低浏览器的速度和响应能力,尤其是在网络连接速度较慢的地方。引用自理想博客 ,不过光了解这个还不够,想要更好的理解保持HTTP连接,我们还需要了解HTTP协议里面的非持久连接持久连接的概念,

 

连接超时

 

连接超时有助于减少由空闲连接消耗的处理资源损失。启用连接超时时,IIS 会在连接级别执行以下类型的连接超时:

  • 客户端已向服务器发送了数据,现处于空闲状态造成的连接超时。
  • 已建立了与服务器的连接,但客户端未发送数据时造成的服务器侦听超时。
  • 响应超时(基于可配置的最小字节数/秒的值)。
  • 请求超时,它禁止客户端向服务器发送不合理的慢速请求(例如,1 比特/秒)。

要判断是否应该设置连接超时,请使用系统监视器记录万维网发布服务(WWW 服务)和 FTP 服务对象中的当前连接、最大连接和连接尝试总次数计数器。继续记录一段时间,直到完全把握常规范围;通常,这可能需要几天到一周或更长的时间,而且需要定期重复执行。有关详细信息,请参阅性能监视

ServerListenTimeout 配置数据库属性不再存在。ServerListenTimeout 已被以下配置数据库属性代替:

  • ConnectionTimeout:指定服务器断开非活动的连接前要等待的总时间数(以秒为单位)。
  • MinFileBytesPerSec:当 IIS 响应客户端请求时,MinFileBytesPerSec 属性决定了客户端接收整个响应的时间长短。如果客户机接收整个响应所花的时间太长,内核模式驱动程序 HTTP.sys 会根据超时值终止连接。超时值的计算方式是:将整个响应(包括标题)的大小除以 MinFileBytesPerSec 属性,获得最大的允许响应时间长短(以秒为单位)。例如,如果将 MinFileBytesPerSec 设置配置为 2048,那么大小为 2 KB 的响应需要在 1 秒内完成。默认值是 240 字节/秒。此时间段可防止客户机发送较大的响应请求(比如文件下载),然后故意以较慢的速度接收响应,消耗服务器上的资源,甚至有可能中断为其他客户机提供的服务。 

### Putty连接超时的解决方案 通过调整客户端服务器端的相关配置参数,可以有效解决PuTTY连接Linux服务器时因长时间无操作而导致的超时问题。以下是具体的实现方式: #### 客户端配置 在PuTTY软件中,可以通过修改其会话属性中的“Connection”设置来防止连接超时。具体做法如下: - 打开PuTTY,在左侧导航栏找到 **"Connection"** 部分。 - 设置 **"Seconds between keepalives (0 to turn off)"** 的值为一个正整数(例如60),这表示每隔多少服务器发送一次保持活动状态的消息[^1]。 此方法适用于大多数情况下简单的临时需求,无需更改服务器上的任何配置即可生效。 #### 服务端配置 对于更加稳定可靠的长期解决方案,则需要编辑SSH守护进程的服务配置文件 `/etc/ssh/sshd_config` ,添加或者修改以下两行内容: ```bash ClientAliveInterval 60 ServerAliveCountMax 3 ``` 其中 `ClientAliveInterval` 参数定义了服务器每隔多长时间向客户端发出探测信号;而 `ServerAliveCountMax` 则规定了允许的最大未回应次数之后才关闭连接[^5]。完成上述改动后记得重启SSH服务使新设定生效: ```bash sudo systemctl restart sshd ``` 以上两种途径都可以有效地缓解甚至彻底消除由于网络闲置所引发的意外掉线状况。实际运用当中可以根据具体情况单独采用某一种措施亦或是两者兼施以达到最佳效果。 ```python # 示例Python脚本用于自动化修改sshd_config并重启SSHD服务 import os def update_sshd_config(): config_path = '/etc/ssh/sshd_config' with open(config_path, 'a') as f: f.write('ClientAliveInterval 60\n') f.write('ServerAliveCountMax 3\n') os.system('sudo systemctl restart sshd') update_sshd_config() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值