• 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系列

  • 相关阅读:
    POJ1275 Cashier Employment 【二分 + 差分约束】
    POJ1201 Intervals 【差分约束】
    BZOJ1563/洛谷P1912 诗人小G 【四边形不等式优化dp】
    BZOJ4197 [Noi2015]寿司晚宴 【状压dp】
    thusc2018酱油记
    HDU 4734
    Codeforces 55D
    HDU 3652
    HDU 4352
    HDU 3709
  • 原文地址:https://www.cnblogs.com/demingblog/p/8359314.html
Copyright © 2020-2023  润新知