Http protocal
1. 状态码:status code
2. 消息类型:content-type
3. 消息长度:entity-length
4. 长连接:keepalive
- 持久化的http连接:http/1.1产生并默认
- 频繁的tcp连接:增加性能开销。网络负担,内存消耗及时效性浪费
- 节省端点(routers、hosts(clients、servers、proxies、gateways、tunnels、caches))cpu消耗
- TCP control block memory used saved in hosts 节省主机TCP控制块内存消耗
- pipelined操作,可以连续发送请求,而不必等待每一个回复。较小的elapsed time,使的单条TCP连接使用更有效率。
- 减少频繁tcp握手连接,关闭产生的报文对网络的影响,因为不需要每一次的握手建立连接,减少了后续请求延迟。
- 错误信息反馈不需要关闭当前TCP连接,再重新打开连接发送。发送错误信息后,连接依然维持
- Connection:close 关闭连接,如果客户端指向发送单次请求,然后关闭连接,则需要在头信息里添加Connection:close。
- 持久化连接发送的消息必须写到消息长度
5. Pipeline:客户端顺序发送请求,服务器按相同的顺序发送回复。
- pipeline消息只能建立在持久TCP连接上,并做好重发准备,如果服务器没有回复pipeline请求的所有消息,客户端也应该重发请求。
- pipeline的请求必须是幂等的,
6. proxy:
- 对于代理,是分别和客户端和服务器建立了持久的连接,
- 客户端,服务器,代理需要能够从不同的连接关闭事件中恢复。
- 客户端需要重新打开连接,发送丢失的请求
- 服务端一个连接需要至少回复一个请求,在回复所有请求前,不应该关闭连接
- 客户端需要限制同时连接到服务器的请求N,一般限制为N=2个;代理则至多使用2N个连接
7. 监控连接错误信息:
- 当接收到错误信息后,应该立马终止消息传送;
- 当以 chunk 编码发送时,应该发送一条长度为0的chunk,结合 empty trailer 来告知接收方消息的结束。
- 当Content-length 头信息存在时,客户端需要立马关闭连接
8. status:100
9. http/1.1 host 头信息需求。
其它:
Http protocal的更多相关文章
- [转]Objective-c中@interface、@implementation、@protocal
原处:http://blog.csdn.net/l271640625/article/details/8393531 以下Objective-c简称OC 从事java开发的程序员们都知道,在java中 ...
- 从C#到Objective-C,循序渐进学习苹果开发(3)--分类(category)和协议Protocal的理解
本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本文继续上一篇随笔<从 ...
- IOS Delegate & protocal
总结一下: delegate是一个方式,程序组成单元之间分工的一种协调思想 protocal 这个东西不能单独说,要与它相关的两个主要东西一起说,一个是 委托者 通常是VIEW, 一个是被委托者 通常 ...
- Google Protocal Buffer
Google Protocal Buffer 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化或者说序列化.它很适合做数据存储或RPC数据交换格式. 串行化(序列化):将对象存储到解释中式 ...
- websocket protocal
same-orgins:浏览器同源策略的安全模型 持久化协议 双向双工 多路复用, 同时发信息 区别HTTP连接特点: http只能由客户端发起,一个request对应一个respon ...
- IRC(Internet Relay Chat Protocol) Protocal Learning && IRC Bot
catalogue . Abstract . INTRODUCTION . 通信协议Connection Registration Action . 通信协议Channel operations Ac ...
- Objective-c中@interface、@implementation、@protocal
以下 void print(); }; class AC{ }; 这时候,AI和AC是独立存在,AC不会因为没有和AI建立关系而编译错误,将AC做以下修改后,AI才和AC建立了关系,AC必须实现AI中 ...
- SMB(Server Message Block) Protocal Research
catalogue . 什么是SMB . 基础SMB协议 . SMB Clients and Servers 1. 什么是SMB 全世界有很多的客户端和服务端软件实现了SMB协议,全部windows工 ...
- facebook api & oauth protocal
http://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-10.5 http://stackoverflow.com/questions/14 ...
随机推荐
- [MongoDB]------windos远程服务器部署连接
1.连接前的准备 这里就省略了服务器上安装的操作,跟上一节是一样的流程. 连接到远程服务器,首先需要到远程服务器上在mongoDb安装根目录下的bin文件夹(默认安装目录是C:\Program Fil ...
- Git操作(基础篇)
Git操作(基础篇) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git的读音为/gɪt/.Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常 ...
- jquery与json的结合
通过AJAX异步减少网络内容传输,而JSON则可以把传输内容缩减到纯数据:然后利用jQuery内置的AJAX功能直接获得JSON格式的数据:在客户端直接绑定到数据控件里面,从而达到最优. 1 2 3 ...
- python decorator的本质
推荐查看博客:python的修饰器 对于Python的这个@注解语法糖- Syntactic Sugar 来说,当你在用某个@decorator来修饰某个函数func时,如下所示: @decorato ...
- Javascript能做什么 不能做什么。
JavaScript可以做什么?用JavaScript可以做很多事情,使网页更具交互性,给站点的用户提供更好,更令人兴奋的体验. JavaScript使你可以创建活跃的用户界面,当用户在页面间导航时向 ...
- Codeforces 1133 F2. Spanning Tree with One Fixed Degree 并查集+生成树
好久没更新博客了,一直懒得动,这次更新一下. 题意大概是:给出一个图,求它的一个一号节点的度数恰好为D的生成树的方案. 一开始随便水了个乱搞贪心,不出意外并没有过. 仔细思考之后,对于这个问题我们可以 ...
- /dev/urandom非阻塞的发生器
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom" /dev/urandom /dev/urandom ...
- JavaScript里的创建对象(一)
一.序 面向对象有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.ECMA-262把对象定义为“无序属性的集合,其属性可以包含基本值.对象或者函数”. 使用Obje ...
- 新手搭建 x-boot 编译环境笔记
1.需要先搭建交叉编译环境,即制作交叉编译工具链,这个过程比较复杂,所以我在这里使用别人做好的交叉编译工具链. 2018年8月27日15:03:37 2.X-boot 源码github地址:htt ...
- 学习JavaSE TCP/IP协议与搭建简易聊天室
一.TCP/IP协议 1.TCP/IP协议包括TCP.IP和UDP等 2.域名通过dns服务器转换为IP地址 3.局域网可以通过IP或者主机地址寻找到相应的主机 4.TCP是可靠的连接,效率低,且连接 ...