和我一起学《HTTP权威指南》——连接管理
连接管理
1.TCP连接
几乎所有的HTTP通信都是由TCP/IP承载的。
浏览网页时客户端执行的操作:
如浏览http://www.joes-hardware.com:80/power-tools.html
浏览器收到这个URL时,会执行如下图的步骤。
- 第1-3步会将服务器的IP地址和端口号从URL中分离出来
- 第4步建立到Web服务器的TCP连接,在第5步通过这条连接发送一条请求报文
- 第6步读取响应,第7步关闭连接
1.1TCP的可靠数据管道
HTTP连接实际上是TCP连接和一些使用连接的规则
TCP连接是互联网上的可靠连接,TCP为HTTP提供一条可靠的比特传输管道,从TCP连接一端以原有的顺序正确的传送出来
1.2TCP流是分段的,有IP分组传送
TCP的数据是通过IP分组的小数据块发送的。
HTTP就是
HTTP over TCP over IP
这个协议栈中最顶层的协议了。而HTTPS则是在HTTP和TCP之间插入一个(TLS或SSL)的密码加密层
HTTP传送报文,以流的形式将报文数据的内容通过一条打开的TCP连接按序传输。TCP收到数据流后,将数据流砍成段(小数据块),并将段封装到IP分组中,通过互联网传输。
1.3保持TCP连接的正确运行
TCP通过端口号来保持TCP连接的正确运行
IP地址和端口号类似于公司总机号码和分机号
TCP连接通过4个值来识别:
<源IP地址,源端口号,目的IP地址,目的端口号>
这四个值唯一确定一条连接。
串行连接
缺点:
TCP的性能时延叠加
用户对网页的加载速度一无所知
并行连接
缺点:
- 在有限的带宽内,并行加载多个对象,带来的性能提升很小
- 打开大量连接会消耗很多内存资源
浏览器将并行连接的总数限制为一个较小的数值。服务器可随意关闭来自特定客户端的超量连接。
持久连接
站点本地性(site locality)
客户端经常打开同一个站点的连接,初始化对某服务器的HTTP请求的应用程序可能在不久后对那台服务器发起更多请求
持久连接
HTTP/1.1(以及HTTP/1.0的各种增强版本)允许HTTP设备在事务处理结束后将TCP连接保持打开状态,以便未来的HTTP请求重用现存的连接。
- 避免缓慢的连接建立阶段
- 避免慢启动的拥塞适应阶段
- 易累积大量的空闲连接,耗费本地和服务器的资源
持久连接和并行连接配合使用可能是最高效的方式。
现在很多Web应用程序:少量的并行连接,每个都是持久连接。
两种类型:
HTTP/1.0+ "keep-alive"
HTTP/1.1 "persistent"
关闭连接
所有的客户端、服务器或代理都可以在任意时刻关闭一条TCP传输连接。
正常关闭连接
双向的,每端都有一个输入一个输出队列
- 关闭连接的输出信道是安全的,连接另一端的对等实体从缓冲区读出所有数据后收到通知,说明流结束。它就知道流关闭了。
- 关闭连接的输入信道比较危险,向已关闭的输入信道发送数据,操作系统会向另一端回送一条
TCP连接被重置的报文
和我一起学《HTTP权威指南》——连接管理的更多相关文章
- HTTP权威指南-连接管理
现在已经开始学习到第四章咯,坚持就是胜利哟~!ok,废话少说,继续写笔记. 本章中我们要介绍到HTTP的连接.好,现在有几个问题,我列出来了,带着这几个问题,我们进入本章的学习. 1.HTTP是如何使 ...
- 《HTTP权威指南》之HTTP连接管理及对TCP性能的考虑
在上一篇博客中(<HTTP权威指南>之HTTP相关概念详解)我们简单对HTTP相关的基本概念做了一些简单的了解,但未对HTTP连接管理的内容做一些详细的介绍.本篇博客我们就一起来看一下HT ...
- [从源码学设计]蚂蚁金服SOFARegistry网络操作之连接管理
[从源码学设计]蚂蚁金服SOFARegistry网络操作之连接管理 目录 [从源码学设计]蚂蚁金服SOFARegistry网络操作之连接管理 0x00 摘要 0x01 业务领域 1.1 应用场景 0x ...
- Netty权威指南
Netty权威指南(异步非阻塞通信领域的经典之作,国内首本深入剖析Netty的著作,全面系统讲解原理.实战和源码,带你完美进阶Netty工程师.) 李林锋 著 ISBN 978-7-121-233 ...
- Android开发权威指南(第2版)新书发布
<Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...
- 《http权威指南》读书笔记13
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记5
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记3
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《Netty权威指南》
<Netty权威指南> 基本信息 作者: 李林锋 出版社:电子工业出版社 ISBN:9787121233432 上架时间:2014-5-29 出版日期:2014 年6月 开本:16开 页码 ...
随机推荐
- splitter 使用
splitter1.Width = ; splitter1.Height = ; Label l = new Label(); l.Text = "···"; //写入的字,具体指 ...
- 【转】Java计算文件的hash值
原文地址:http://blog.csdn.net/qq_25646191/article/details/78863110 如何知道一个文件是否改变了呢?当然是用比较文件hash值的方法,文件has ...
- EnumUtil
EnumUtil.cs using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...
- C语言 · 最长公共子序列 · 最长字符序列
算法提高篇有两个此类题目: 算法提高 最长字符序列 时间限制:1.0s 内存限制:256.0MB 最长字符序列 问题描述 设x(i), y(i), z(i)表示单个字符,则X={x( ...
- Javascript全栈技术架构
https://worktile.com/tech/basic/the-worktile-tech-stack https://worktile.com/tech/basic/worktile-rea ...
- android开发(45) 自定义软键盘(输入法)
概述 在项目开发中遇到一个需求,”只要数字键盘的输入,仅仅有大写字母的输入,某些输入法总是会提示更新,弹出广告等“,使得我们需要自定义输入. 关联到的知识 KeyboardView 一个视图 ...
- im ui框架调研,对比
1, https://github.com/jpush/aurora-imui 极光的 支持 Android/iOS/RN 提供了消息列表.输入视图 功能不多, 2,https://github.co ...
- R语言 如何用IF语句判断 一个数字的奇偶
jishu <- function(x){ ifelse(x%%2 ==0,F,T)}
- 使用javascript实现浏览器全屏
HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做 全屏API,游戏呀,等都很有用.先看常见的API 1 element.requestFullSc ...
- 【转】MySQL count(*)速度慢优化
select count(*)是MySQL中用于统计记录行数最常用的方法. count方法可以返回表内精确的行数,每执行一次都会进行一次全表扫描, 以避免由于其他连接进行delete和insert引起 ...