Keep-Alive模式
  Ysot1xdt9qNS 2023年11月02日 52 0

Keep-Alive模式下当一个请求发起后,客户端和服务器之间的TCP连接不会关闭重新建立连接,会一直保持连接,如果客户端再次访问相同资源,会继续使用者一条建立的连接,启用Keep-Alive模式更高效,性能更高。   http 1.0中默认是关闭的,需要在http头加入"Connection: Keep-Alive",才能启用Keep-Alive;从HTTP/1.1开始,浏览器都默认开启了keep-live,保持连接特性,如果加入"Connection: close ",才关闭。目前大部分浏览器都是使用HTTP1.1。keep-live不会永久保持连接,它有一个保持时间,可以在不同服务器软件(如 nginx)中设定。   开启Keep-Alive的优缺点如下:

  • 优点:开启后更高效,避免了连接建立和关闭释放的性能开销。
  • 缺点:长时间的TCP连接容易导致系统资源的无效占用,浪费系统资源。  

当保持长连接时,如何判断一次请求已经完成? ①消息首部字段Content-Length,它表示实体内容的长度。浏览器通过该字段来判断当前请求的数据是否已经全部接收。如果服务器知道返回内容的长度时(如静态页面或者图片),可以通过设置Content-Length来控制请求的结束;如果服务器不知道请求结果的长度时,如动态页面或者数据,就不能使用Content-Length,就需要使用第二种方法Transfer-Encoding字段。   ②消息首部字段Transfer-Encoding,它指传输编码。如果服务器不知道请求结果的长度时,就可以使用Transfer-Encoding:chunked来告诉浏览器当前的编码是将数据分块传递,Chunked编码将使用若干个Chunk串连而成,由一个标明长度为0的chunk标示结束。最后当浏览器接收到一个长度为0的chunked时,就知道当前请求内容已全部接收。  

文章转载HTTP Keep-Alive模式

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

Ysot1xdt9qNS
最新推荐 更多