[日常] HTTP连接管理

HTTP连接管理:
1.误解的Connection首部
当http报文经过中间客户端到服务端中间的各种代理设备时,对标签中列出的头信息进行删除,close是事务结束后关掉此条连接

2.消除串行化的时延
并行连接:多条TCP连接发起并发的HTTP请求
持久连接:重用TCP连接,消除连接和关闭时延
管道化连接:通过并发的TCP连接发起并发的HTTP请求

3.打开少量的并行连接,每一个连接都是持久连接
HTTP/1.0+中的keep-alive 和 HTTP/1.1中的 persistent
客户端发送Connection:keep-alive 服务端响应Connection:keep-alive就是支持,否则就是不支持

4.HTTP/1.1的持久连接persistent
与keep-alive的区别是,这个默认就是打开的除非发送Connection:close显式关闭

5.连接会在任意的时候关闭掉,每条http响应都应该包含Content-Length以校对数据的完整性
6.连接的关闭和重试会带来一些副作用,如果是post的请求重试多次会有风险
7.正常关闭连接,会有完全关闭和半关闭两种
    完全关闭就是服务端输入输出全关了,半关闭是只关闭了输出或者输入
    当数据被发送到一条已经关闭的连接上时,会出现,连接被对端重置的错误
    关闭时应该先关闭输出通道,再关闭输入通道

  

原文地址:https://www.cnblogs.com/taoshihan/p/9925955.html

时间: 2024-10-09 14:19:16

[日常] HTTP连接管理的相关文章

Visual Studio2015下连接管理Global Azure Database

说到vistual studio相信大家已经不陌生了,当然对于开发人员来说.同时又说到windows azure的部分服务的部署,我们可以使用Visual Studio2015连接到windows azure,然后创建部分房屋.现在很多人应该用到了vistual studio2013,但是我是微软的粉丝.微软只要更新出新产品都会迫不及待的取尝试.现在微软vistual studio更新到了2015了,功能就不说了,需要大家自己去官网下载使用.在此我下载了vistual studio2015最新版

boost::asio 连接管理11 如何关闭连接

在实际产品运行中,对连接管理有了更新的认识,这里分享一下. shared_ptr管理连接对象的生命周期 shared_ptr的引用计数器决定了连接对象的生命周期.这里我说的连接对象就是在我的前文:http://blog.csdn.net/csfreebird/article/details/8522620 中的Client对象: [cpp] view plaincopyprint? #include "core/connection.h" #include <vector>

Openfire分析之三:ConnectionManager 连接管理(1)

Openfire是怎么实现连接请求的? XMPPServer.start()方法,完成Openfire的启动.但是,XMPPServer.start()方法中,并没有提及如何监听端口,那么Openfire是如何接收客户端的请求? 因为Openfire的核心功能,是通过Module来管理的,那么对应的连接管理应该就在Module中. 查看在XMPPServer.loadModules()方法中,有如下代码: //Load this module always last since we don't

常见存储的串口连接管理方法

各大存储厂商的存储大多有一个COM接口,作为存储工程师提供一些重要配置的接口,COM接口的功能非常强大,可以直接与设备连接,实现对设备的配置,调试,数据传输等一系列操作.本文我们主要讲解通过COM口对设备IP进行管理与配置.下面以常见IBM的DS4700存储和戴尔MD3200存储为例,讲解一下通过COM接口管理IP的步骤. DS4700串口管理IP配置 1.  串口线(console线)连接,COM线连接存储,其另一端是公头的9针接口,需要一条9针母头的接口转USB接口的COM线,连接到管理电脑

PLSQL_性能优化系列15_Oracle Connection Management连接管理

2014-09-25 BaoXinjian 一.摘要 在官方文档<oracle performance tuning guide>中提到Connecting to the database is an expensive operation that is highly unscalable. 数据库的连接操作是昂贵的,且难以扩展(支持大量并发). 感觉上一个数据库登录操作是瞬间的事,它有多昂贵呢? 简单说,监听器收到远程连接请求后,转给server process: 对于每个session数

用phpmyadimn来连接管理多个数据库

用phpmyadimn来连接管理多个数据库要修改配置文件,挺不爽的,并且连接远程数据库,速度不行.可以使用其他数据库管理工具, 请参考,navicat 结合快捷键 非常好用,开源,好用mysql 管理工具 HeidiSQL.如果非要用phpmyadmin,下面有二种方法连接,管理多个mysql服务器. 方法一,修改phpMyAdmin/libraries/config.default.php 修改配置文件前,最好先备份一下,万一改错地方了,显示不了,就郁闷了. /** * allow login

(转)OpenFire源码学习之十:连接管理(上)

转:http://blog.csdn.net/huwenfeng_2011/article/details/43415827 关于连接管理分为上下两部分 连接管理 在大并发环境下,连接资源 需要随着用户并发访问量的增加而增加,所以可伸缩的连接资源就是支持大访问量的关键技术.openfire系统通过增加独立部署的连接管理器程序提高并发的能力,连接管理的前端是一台负载均衡设备,它负责把用户访问分配到指定连接管理器,多台连接管理器在访问服务器.使用连接管理器后,服务器的连接池是提供给连接管理器连 接,

HttpClient4.3教程 第二章 连接管理

2.1.持久连接 两个主机建立连接的过程是很复杂的一个过程,涉及到多个数据包的交换,并且也很耗时间.Http连接需要的三次握手开销很大,这一开销对于比较小的http消息来说更大.但是如果我们直接使用已经建立好的http连接,这样花费就比较小,吞吐率更大. HTTP/1.1默认就支持Http连接复用.兼容HTTP/1.0的终端也可以通过声明来保持连接,实现连接复用.HTTP代理也可以在一定时间内保持连接不释放,方便后续向这个主机发送http请求.这种保持连接不释放的情况实际上是建立的持久连接.Ht

Android_ConnectivityManager连接管理

ConnectivityManager ConnectivityManager作为安卓网络连接管理类,主要功能如下: 1. 通知应用网络状态的改变,发送广播 ACTION:CONNECTIVITY_ACTION 2. WiFi,GPRS等网络的连接管理(是否可用,连接状态等) 3. 提供了一种api来让应用去请求或是选择网络来进行数据的传输 需要的权限: <uses-permission android:name="android.permission.ACCESS_NETWORK_STA