在http1.1中,引入了一种新的特性,即pipeline。那么什么是pipeline呢?pipeline其实就是流水线作业,它可以看作为keepalive的一种升华,因为pipeline也是基于长连接的,目的就是利用一个连接做多次请求。如果客户端要提交多个请求,对于keepalive来说,那么第二个请求,必须要等到第一个请求的响应接收完全后,才能发起,也就是说,请求是串行进行的,一个请求接着下一个请求。注意,一个完整的请求,包括发送请求,处理请求,响应请求。而对pipeline来说,客户端不必等到第一个请求处理完后,就可以马上发起第二个请求。我们知道,tcp连接是全双工的,发送与接收可以同时进行,所以,我们可以将多个请求头依次发送出去,在服务端依次处理,客户端再依次接收,这样就多个请求就是同时进行的了。nginx是直接支持pipeline的,但是,nginx对pipeline中的多个请求的处理却不是并行的,依然是一个请求接一个请求的处理,只是在处理第一个请求的时候,客户端就可以发起第二个请求。这样,nginx利用pipeline减少了处理完一个请求后,等待第二个请求的请求头数据的时间。其实nginx的做法很简单,前面说到,nginx在读取数据时,会将读取的数据放到一个buffer里面,所以,如果nginx在处理完前一个请求后,如果发现buffer里面还有数据,就认为剩下的数据是下一个请求的开始,然后就接下来处理下一个请求,否则就设置keepalive。

nginx基础概念(100%)之pipe相关推荐

  1. nginx基础概念(100%)之lingering_close

    lingering_close,字面意思就是延迟关闭,也就是说,当nginx要关闭连接时,并非立即关闭连接,而是先关闭tcp连接的写,再等待一段时间后再关掉连接的读.为什么要这样呢?我们先来看看这样一 ...

  2. nginx基础概念(100%)之request

    这节我们讲request,在nginx中我们指的是http请求,具体到nginx中的数据结构是ngx_http_request_t.ngx_http_request_t是对一个http请求的封装. 我 ...

  3. nginx基础概念(100%)之connection

    在nginx中connection就是对tcp连接的封装,其中包括连接的socket,读事件,写事件.利用nginx封装的connection,我们可以很方便的使用nginx来处理与连接相关的事情,比 ...

  4. nginx基础概念(100%)之keepalive

    当然,在nginx中,对于http1.0与http1.1也是支持长连接的.什么是长连接呢?我们知道,http请求是基于TCP协议之上的,那么,当客户端在发起请求前,需要先与服务端建立TCP连接,而每一 ...

  5. 私钥经过哈希计算可以产生公钥_「区块链基础概念100」:公钥和私钥 | 027

    免责声明:本文旨在传递更多市场信息,不构成任何投资建议.文章仅代表作者观点,不代表火星财经官方立场. 小编:记得关注哦 投资区块链,猛戳:火星财经App下载 来源:学习区块链 原文标题:「区块链基础概 ...

  6. nginx基础概念及配置解析

    nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...

  7. gRPC 基础概念详解

    作者:jasonzxpan,腾讯 IEG 运营开发工程师 gRPC (gRPC Remote Procedure Calls) 是 Google 发起的一个开源远程过程调用系统,该系统基于 HTTP/ ...

  8. Nginx基础应用配置小结 - 运维笔记

    Nginx基础应用配置小结 - 运维笔记 在linux系统下使用nginx作为web应用服务,用来提升网站访问速度的经验已五年多了,今天在此对nginx的使用做一简单总结. 一.nginx服务简介 N ...

  9. 运维之DNS域名解析服务基础概念与Bind9安装

    ​0x00 前言简述 基础概念 基础术语 记录类型 0x01 DNS服务介绍 原理流程 实验目标 0x02 DNS服务之Bind9 Ubuntu 安装 CentOS 安装 Docker 容器 1) 源 ...

最新文章

  1. C++ Primer 5th笔记(2)chapter 2变量和基本类型:constexpr 、auto、类型别名、decltype
  2. 江苏关于领取软考2021年上半年合格证书的通知
  3. “让Keras更酷一些!”:层中层与mask
  4. 【渝粤教育】电大中专学前儿童科学教育1作业 题库
  5. java界面中显示图片_java中怎样在界面中显示图片?
  6. [你必须知道的.NET] 第五回:深入浅出关键字---把new说透(转载)
  7. 以 B 站为例,聊聊站内消息系统的设计
  8. 百度发起遥感图像农作物识别大赛—8.5万总奖池邀你建设“美丽乡村”
  9. [总结]SqlServer中如何实现自动备份数据!
  10. @using (Html.BeginForm())参数示例
  11. IE兼容/IE5兼容踩过的坑
  12. 大数据教育 | 王元卓:大数据专业建设与人才培养方案(PPT)
  13. 深度神经网络——中文语音识别
  14. comsol操作技巧
  15. openwrt reboot流程
  16. CCIE理论-第十二篇-IPV6-NDP协议
  17. JetsonXavierAGX配置Yolov5环境
  18. 华为无线wifi设备连接到服务器,华为wifi路由器安装上网的方法
  19. ife2018 task1
  20. 【2 - 数据库是如何存储数据的】Sql Server - 郝斌(字段、记录、表;图形化界面及sql语句建表;六种约束;一对一、一对多、多对多、数据库关系图;主外键)

热门文章

  1. 查看pcl版本 linux,成功安装 linux pcl (1.8.1版本) python-pcl
  2. 由windows/linux转向使用Mac的适应期教程
  3. python计算while循环次数_python-----运算符及while循环
  4. elasticsearch 报表统计_螺丝ERP销售管理系统,螺丝企业专业管理统计
  5. cmb网站服务器失去响应代码,3.5.2 连接到服务器并响应各种连接事件(2)
  6. shell export 命令
  7. Mac OS X 显示和隐藏文件
  8. Kafka、 RabbitMQ、Redis、 ZeroMQ、 ActiveMQ、 Kafka/Jafka 对比
  9. 数据机构与算法:书籍介绍
  10. 一群喵星人把他家包围了。。