分类导航

Keep-Alive 是什么?

发布时间:2021-01-12 发布网站:编程之家
编程之家收集整理的这篇文章主要介绍了Keep-Alive 是什么?编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Keep-Alive 是什么?

概观

默认情况下,HTTP链接通常在请求完成之后关闭。这意味着服务端在完成响应的交付之后便关闭了TCP链接。为了让链接保持打开,来满足多请求,可以使用keep-alive 头信息。

没有Keep-Alive的情况下,HTTP是怎么工作的

  • 1.客户端需要重新创建一个链接和服务器交互,用以接收一个文件。
  • 2.客户端使用一个新的链接来向服务器请求HTML文件,这个连接在接收完文件的时候就会被关闭。
  • 3.浏览器解析HTML文件并检查完成网页的展示是否还需要其他文件。(例如css文件,js文件,图片)
  • 4.经过彻底的分析,浏览器再重新创建链接来请求这每一个文件。

我们需要Keep-Alive

创建多个链接可能会降低加载速度,同时也会利用服务器更多资源。我们可以通过启用Keep-Alive来克服这个问题,通过单个链接来传递这些文件,如此就避免了重复的创建和关闭新连接。如果没有启用Keep-Alive,展示一个网页的过程可能需要相当长的时间。

如何开启Keep-Alive

Keep-Alive的启用是通过在HTTP 头信息中明确声明来完成的。以apache web server为例,如果你有权限访问Apache的配置文件(httpd.conf),你可以在这里打开keep-alive。配置方法见下文。

3个影响Keep-Alive功能的属性。

Keep-live

使用“KeepAlive On”来启用,使用“KeepAlive Off”来禁用。开启之后的响应头大概如下:

HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Date: Thu,15 Jan 2017 16:45:29 GMT
Content-Length: 1845
Keep-Alive: timeout=10,max=20
Server: Apache/2.4.9 (Unix) PHP/5.6.2

MaxKeepAliveRequests

用来设置KeepAlive链接的最大数量。合适的值取决于实际的情况。

KeepAliveTimeout

这个设置可以防止未使用的链接占用太长久。其实就是链接需要keep多久的问题。比如设置7到10秒通常就可以了。在流量较高的情况下这个值可能就得设置大一点了,以确保没有频繁的TCP链接重新启动。如果这个值设置太小了,那么也许就是去了keep-alive本身的目的了。

Keep-Alive的益处

  • 1.减少CPU使用:创建一个新的TCP链接会消耗一些资源,例如CPU和内存的使用。使链接保持存活的时间长一点可以避免频繁的创建新链接,从而减少资源使用。
  • 2.网页加载速度:使用同一个链接来加载多个文件可以是网页加载的快点。
  • 3.HTTPS:https非常消耗资源,所以强烈建议对https开启keep-alive,并尽可能使用HTTP/2进行一些调整。

如果你使用的是HTTP/1.1,它的实现方式与HTTP/1.0的keek-live不同,HTTP/1.1的链接默认是保持活跃的,它假定所有的链接都是持久的,除非响应头中包含:“Connection:close”头。但是如果不发送“Connection:close”头并不意味着链接会永远持续,链接还是会被关闭的。

Lua脚本在redis分布式锁场景的运用

CORS详解,CORS原理分析

Keep-Alive 是什么?

spring如何启动的?这里结合spring源码描述了启动过程

SpringMVC是怎么工作的,SpringMVC的工作原理

spring 异常处理。结合spring源码分析400异常处理流程及解决方法

Mybatis Mapper接口是如何找到实现类的-源码分析

使用Netty实现HTTP服务器

Netty实现心跳机制

Netty开发redis客户端,Netty发送redis命令,netty解析redis消息

Netty系列

总结

以上是编程之家为你收集整理的Keep-Alive 是什么?全部内容,希望文章能够帮你解决Keep-Alive 是什么?所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478
编程之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!