在http1.1中,引入了一种新的特性,即pipeline。那么什么是pipeline呢?pipeline其实就是流水线作业,它可以看作为keepalive的一种升华,因为pipeline也是基于长连接的,目的就是利用一个连接做多次请求。如果客户端要提交多个请求,对于keepalive来说,那么第二个请求,必须要等到第一个请求的响应接收完全后,才能发起,这和TCP的停止等待协议是一样的,得到两个响应的时间至少为2*RTT。而对pipeline来说,客户端不必等到第一个请求处理完后,就可以马上发起第二个请求。得到两个响应的时间可能能够达到1*RTT。nginx是直接支持pipeline的,但是,nginx对pipeline中的多个请求的处理却不是并行的,依然是一个请求接一个请求的处理,只是在处理第一个请求的时候,客户端就可以发起第二个请求。这样,nginx利用pipeline减少了处理完一个请求后,等待第二个请求的请求头数据的时间。其实nginx的做法很简单,前面说到,nginx在读取数据时,会将读取的数据放到一个buffer里面,所以,如果nginx在处理完前一个请求后,如果发现buffer里面还有数据,就认为剩下的数据是下一个请求的开始,然后就接下来处理下一个请求,否则就设置keepalive。

Nginx学习之keepalive

keep-alive pipeline区别相关推荐

  1. redis中multi和pipeline区别以及效率(推荐使用pipeline)

    手册得知 pipeline 只是把多个redis指令一起发出去,redis并没有保证这些指定的执行是原子的:multi相当于一个redis的transaction的,保证整个操作的原子性,避免由于中途 ...

  2. nginx+tomcat动静分离结构

    本文采用另一种策略对动静分离进行演示,它的大致结构如图 2 所示. 图 2. 本文设计的动静分离结构 在本文中,我们将静态资源放在 A 主机的一个目录上,将动态程序放在 B 主机上,同时在 A 上安装 ...

  3. Java Web 高性能开发,前端的高性能

    Java Web 高性能开发,第 2 部分: 前端的高性能 Web 发展的速度让许多人叹为观止,层出不穷的组件.技术,只需要合理的组合.恰当的设置,就可以让 Web 程序性能不断飞跃.Web 的思想是 ...

  4. 解读ASP.NET 5 MVC6系列(6):Middleware详解

    在第1章项目结构分析中,我们提到Startup.cs作为整个程序的入口点,等同于传统的Global.asax文件,即:用于初始化系统级的信息(例如,MVC中的路由配置).本章我们就来一一分析,在这里如 ...

  5. Redis从入门到集群分布式实践

    Redis 分布式实践 一. Redis 初识 1.1 Redis 导学 Redis有哪些特点? 高性能的key-value服务器 多种数据结构 丰富的功能 高可用分布式支持 适合人群: 初学者 进阶 ...

  6. Http Keep-Alive和Tcp keepalive介绍

    Http Keep-Alive和Tcp keepalive介绍 1.TCP连接介绍 1.1 建立连接-三次握手 1.2 释放连接-四次挥手 2. KeepAlive与Keep-Alive介绍 2.1 ...

  7. 面试面经|Java面试Redis面试题

    序言 凡事预则立,不预则废.能读到这里的人,我相信都是这个世界上的"有心人",还是那句老话:上天不负有心人!我相信你的每一步努力,都会收获意想不到的回报. 1.Redis 为何这么 ...

  8. Redis面试题(五十六道)

    1.什么是Redis Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库. Redis 可以存储 ...

  9. pipeline和java的区别_总结:四个Pipeline脚本式与声明式语法差异

    如果您阅读此博客文章,则很有可能正在寻找有关脚本化和声明性管道之间的实际差异的信息,对吗?那你找不到更好的地方了.我将向您展示这两者之间的四个最实际的区别.和我待几分钟,享受旅程! 为什么要有两种管道 ...

  10. sklearn之pipeline:pipeline函数/make_pipeline函数的简介及其区别联系、使用技巧、案例应用之详细攻略

    sklearn之pipeline:pipeline函数/make_pipeline函数的简介及其区别联系.使用技巧.案例应用之详细攻略 目录 sklearn.pipeline函数简介 1.Why pi ...

最新文章

  1. redis主从配置 从而实现数据备份和读写分离
  2. 漫谈可视化Prefuse(四)---被玩坏的Prefuse API
  3. Bzoj4817:[SDOI2017]树点涂色
  4. java windows系统监控_Windows资源监控工具大全
  5. 如何解决PIP命令不可用
  6. 深入分析 RestController 与 Controller 的区别,你真的了解吗?
  7. initShaders P30 在webgl内部建立和初始化着色器
  8. 数据结构——>二叉树
  9. 如何在知网直接下载PDF格式的硕博士论文
  10. Zabbix Server 5.2安装教程
  11. 运营者想针对公众号吸粉做一些运营活动,怎么做?
  12. python通过线程实现定时器timer的方法
  13. 利用“串口调试助手”等软件调试 PROTEUS 环境中 51单片机 的串行通信
  14. python 身份证号码有效性验证
  15. 电脑的视频太大,如何压缩视频
  16. 学习博士答辩之后的感想:
  17. C#winform小demo-串口传输实现硬件数据回传(数据处理/输出txt文件保存)
  18. vi/vim简介及使用教程
  19. 项目一众筹网03_5_工作模式探讨同步和异步探讨
  20. 集成支付宝支付出现{resultStatus=4000, result=, memo=系统繁忙,请稍后再试}

热门文章

  1. Oracle 10g 数据库连接出现The Network Adapter could not establish the connection解决办法
  2. android 广播 飞行模式,Android 开启飞行模式的几种方式
  3. root用户配置免密登录_ssh免密登录(普通用户和root用户)
  4. pcb板可挖孔吗_PCB板上的过孔的种类及打孔注意事项
  5. 在centos中如何用yum安装最新的yum源
  6. Java访问剪切板API控制台输出莫名异常
  7. ucla计算机科学和数学专业,UCLA的CS「加州大学洛杉矶分校计算机科学系」
  8. win10同时安装jdk8和jdk11带来的小坑
  9. 尚硅谷Docker---docker安装及简介
  10. 01--DNS服务器2