HTTP2.0协议中英文对照版

合集下载

http各个版本(11.12)对比

http各个版本(11.12)对比

http 各个版本(11.12)对⽐⽬录:参考的⽂章:http1.1 长连接HTTP1.1默认使⽤长连接,可有效减少TCP 的三次握⼿开销。

HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建⽴⼀个TCP 连接,服务器完成请求处理后⽴即断开TCP 连接当⼀个⽹页⽂件中包含了很多图像的地址的时候,那就需要很多次的http 请求和响应,每次请求和响应都需要⼀个单独的连接,每次连接只是传输⼀个⽂档和图像,上⼀次和下⼀次请求完全分离。

即使图像⽂件都很⼩,但是客户端和服务器端每次建⽴和关闭连接却是⼀个相对⽐较费时的过程,并且会严重影响客户机和服务器的性能。

当⼀个⽹页⽂件中包含JavaScript ⽂件,CSS ⽂件等内容时,也会出现类似上述的情况。

为了克服HTTP 1.0的这个缺陷,HTTP 1.1⽀持持久连接(HTTP/1.1的默认模式使⽤带流⽔线的持久连接),在⼀个TCP 连接上可以传送多个HTTP 请求和响应,减少了建⽴和关闭连接的消耗和延迟。

⼀个包含有许多图像的⽹页⽂件的多个请求和应答可以在⼀个连接中传输,但每个单独的⽹页⽂件的请求和应答仍然需要使⽤各⾃的连接。

HTTP 1.1还允许客户端不⽤等待上⼀次请求结果返回,就可以发出下⼀次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容,这样也显著地减少了整个下载过程所需要的时间。

通过请求头中connection 字段在表明是否⽀持长链接在http1.1中,client 和server 都是默认对⽅⽀持长链接的(即connection 的值默认我Keep-Alive), 如果client 使⽤http1.1协议,但⼜不希望使⽤长链接,则需要在header 中指明connection 的值为closer(connection 默认为Keep-Alive);如果server ⽅也不想⽀持长链接,则在response 中也需要明确说明connection 的值为closer 。

1、http协议基础及IO模型

1、http协议基础及IO模型

1、http协议基础及IO模型Nginx (web server,web reverse proxy):http协议:80/tcp,HyperText Transfer Procotolhttp协议版本:HTTP/0.9:原型版本,功能简陋HTTP/1.0:第⼀个⼴泛使⽤的版本,⽀持MIMEHTTP/1.1: 增强了缓存功能spdyHTTP/2.0 下⼀次流⾏MIME:Multipurpose Internet Mail Extesion 多⽤途互联⽹邮件扩展major/minor:text/plain, text/html, image/jpegURI: Uniform Resource Identifier 同⼀资源标识符URL: Uniform Resorce Locator(统⼀资源定位符),⽤于描述某服务器某特定资源的位置;URL包括三部分:URL⽅案:scheme//服务器地址:ip:port资源路径:Scheme://Server:Port/path/to/resourceURN: Uniform Resource Naminghttp事务:httpd⼀次请求和响应的过程请求:request //请求是由请求报⽂来请求响应:response//响应是由响应报⽂来构建报⽂语法格式:request报⽂<method> <request-URL> <version> //起始⾏<headers> //有可能由众多的头部组成<entity-body> //请求主体部分,有可能为空Response响应报⽂<version> <status> <reason-phrase>原因短语<headers><entity-body>//响应实体请求报⽂语法解析:method:请求⽅法,标明客户端希望服务器对资源执⾏的动作GET(表⽰客户端希望服务器把资源打包发给客户端)、HEAD、POST version://请求报⽂和响应报⽂都⼀样HTTP/<major>.<minor>//主版本号.次版本号status:三位数字,如200,301, 302, 404, 502; 标记请求处理过程中发⽣的情况;reason-phrase:status状态码所标记的状态的简要描述;headers:⾸部每个请求或响应报⽂可包含任意个⾸部;每个⾸部都有⾸部名称,后⾯跟⼀个冒号,⽽后跟上⼀个可选空格,接着是⼀个值;entity-body:请求时附加的数据或响应时附加的数据;有⽤的数据块,请求报⽂entity-body可能为空method(⽅法):GET:从服务器获取⼀个资源;HEAD:只从服务器获取⽂档的响应⾸部,⽽不是响应内容;POST:向服务器发送要处理的数据,放在<entity-body>中;PUT:将请求的主体部分存储在服务器上,上传数据到服务器;DELETE:请求删除服务器上指定的⽂档;TRACE:追踪请求到达服务器中间经过的代理服务器;OPTIONS:请求服务器返回对指定资源⽀持使⽤的请求⽅法,如get等;status(状态码):1xx:100-101, 额外信息提⽰;2xx:200-206, 成功类的响应;3xx:300-305, 重定向类的状态;4xx:400-415, 错误类信息,客户端错误(客户端请求根本不存在的资源)5xx:500-505, 错误类信息,服务器端错误(服由于⾃⼰内部问题,导致运⾏不成功)常⽤的状态码:200:成功,请求的所有数据通过响应报⽂的entity-body部分发送;OK301:请求的URL指向的资源已经被删除;但在响应报⽂中通过⾸部Location指明了资源现在所处的新位置;Moved Permanently,永久重定向302:与301相似,但在响应报⽂中通过Location指明资源现在所处临时新位置;Found,资源有,需要重新找304:客户端发出了条件式请求,但服务器上的资源未曾发⽣改变,则通过响应报⽂此响应状态码通知客户端;Not Modified401:需要输⼊账号和密码认证⽅能访问资源;Unauthorized未认证403:请求被禁⽌;Forbidden404:服务器⽆法找到客户端请求的资源;Not Found500:服务器内部错误,原因很多;Internal Server Error502:代理服务器从后端服务器收到了⼀条伪响应;504 Gateway Timeout 是⼀种HTTP协议的服务器端错误状态代码,表⽰扮演⽹关或者代理的服务器⽆法在规定的时间内获得想要的响应。

HTTP2.0学习与Nginx和Tomcat配置HTTP2.0

HTTP2.0学习与Nginx和Tomcat配置HTTP2.0

HTTP2.0学习与Nginx和Tomcat配置HTTP2.0⽬录⼀、HTTP2.01.1 简介1.2 新的特性1.3 h2c 的⽀持度⼆、Nginx 对 http2.0 的⽀持2.1 Nginx 作为服务端使⽤http2.02.2 Nginx 作为客户端使⽤ http2.0三、Tomcat 对 HTTP2.0 的⽀持3.1.1、依赖环境3.1.2、h2c 配置(⾮加密)3.1.3、h2 配置(加密)3.1 、Tomcat 8.5四、扩展问题解决⽅法⼀(没⾏通)⽅法⼆(可⾏)4.1、测试 h2c4.2、查看浏览器是否⽀持 http2.04.3、查看⽹站是否⽀持 http2.04.4、JAVA8 如何⽀持 HTTP2.0 TLS⼀、HTTP2.01.1 简介HTTP/2(超⽂本传输协议第2版,最初命名为HTTP 2.0),简称为h2(基于TLS/1.2或以上版本的加密连接)或h2c(⾮加密连接),是HTTP协议的的第⼆个主要版本。

1.2 新的特性具体可以看这篇⽂章:https:///a/11900000134207841. 头数据压缩 Data compression of HTTP headers2. 服务器推送 HTTP/2 Server Push3. 管线化请求 Pipelining of requests.4. 对数据传输采⽤多路复⽤,让多个请求合并在同⼀ TCP 连接内 Multiplexing multiple requests over a single TCP connection,因为每⼀个tcp 连接在创建的时候都需要耗费资源,⽽且在创建初期,传输也是⽐较5. 采⽤了⼆进制⽽⾮明⽂来打包、传输客户端<——>服务器间的数据。

1.3 h2c 的⽀持度HTTP/2 的设计本⾝允许⾮加密的 HTTP 协议,也允许使⽤TLS 1.2或更新版本协议进⾏加密。

协议本⾝未要求必须使⽤加密,惟多数客户端 (例如 Firefox, Chrome, Safari, Opera, IE, Edge) 的开发者声明,他们只会实⼆、Nginx 对 http2.0 的⽀持2.1 Nginx 作为服务端使⽤http2.0使⽤ http2.0 的条件1. Nginx 版本⼤于或等于 1.9.5 。

最详细的http协议、tcpip协议(转)

最详细的http协议、tcpip协议(转)

最详细的http协议、tcpip协议(转)最详细的http协议、tcp/ip协议(转⾃头条号猪哥亮额)图解传说中的HTTP协议先扒⼀扒HTTP协议背景?HTTP(HyperText Transfer Protocol) 即超⽂本传输协议,现在基本上所有web项⽬都遵从HTTP协议(协议就是⼀种⼈为的规范)。

⽬前绝⼤部分使⽤的都是HTTP/1.1版本(1.0太⽼,2.0仍在制订中。

)。

因为HTTP协议是属于TCP/IP协议簇的,所以先简单介绍下与HTTP相关的TCP/IP知识。

TCP/IP简介。

TCP/IP是⼀个协议簇,是由许多协议组成的。

TCP/IP四层模型。

TCP/IP按照层次从上⾄下分为四层:应⽤层,传输层,⽹络层,数据链路层。

(实际上最初理论上OSI模型是分的七层,我们程序猿的话通常只⽤分四层就⾏了。

)1. 应⽤层:应⽤层决定了向⽤户提供应⽤服务时通信的活动。

TCP/IP协议族内预存了各类通⽤的应⽤服务。

⽐如,FTP(File Transfer Protocol,⽂件传输协议)和DNS(Domain Name System,域名系统)服务就是其中两类。

HTTP协议也处于该层。

1. 传输层:传输层对上层应⽤层,提供处于⽹络连接中的两台计算机之间的数据传输。

在传输层有两个性质不同的协议:TCP(Transmission ControlProtocol,传输控制协议)和UDP(User Data Protocol,⽤户数据报协议)。

1. ⽹络层:⽹络层⽤来处理在⽹络上流动的数据包。

数据包是⽹络传输的最⼩数据单位。

该层规定了通过怎样的路径(所谓的传输路线)到达对⽅计算机,并把数据包传送给对⽅。

与对⽅计算机之间通过多台计算机或⽹络设备进⾏传输时,⽹络层所起的作⽤就是在众多的选项内选择⼀条传输路线。

1. 链路层(⼜名数据链路层,⽹络接⼝层):⽤来处理连接⽹络的硬件部分。

包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,⽹络适配器,即⽹卡),及光纤等物理可见部分(还包括连接器等⼀切传输媒介)。

ONVIF2.0中文协议原版

ONVIF2.0中文协议原版

ONVIF2.0中文协议原版1 范围 (17)2 引用标准 (20)3 术语与定义 (27)3.1定义 (27)3.2缩写 (31)4 概述 (38)4.1W EB 服务 (39)4.2IP配置 (41)4.3设备发现 (41)4.4设备类型 (42)4.5设备管理 (43)4.5.1 功能 (43)4.5.2 网络 (45)4.5.3 系统 (45)4.5.4 系统信息检索 (46)4.5.5 固件升级 (46)4.5.6 系统还原 (47)4.5.7 安全 (47)4.6设备IO (47)4.7图像配置 (49)4.8媒体配置 (50)4.8.1 媒体配置文件 (50)4.9实时流 (56)4.10事件处理 (58)4.11PTZ控制 (58)4.12视频分析 (60)4.13分析设备 (63)4.14显示 (64)4.15接收器 (65)4.15.1 同步点 (66)4.16存储 (66)4.16.1 存储模式 (67)4.16.2 记录 (69)4.16.3 查找 (70)4.16.4 回放 (72)4.17安全 (72)5 WEB服务框架 (74)5.1服务概述 (75)5.1.1 服务要求 (76)5.2WSDL概述 (77)5.3命名空间 (78)5.4类型 (91)5.5消息 (92)5.6操作 (93)5.6.1 单向操作 (95)5.6.2 要求-应答操作类型 (96)5.7端口类型 (98)5.8绑定 (98)5.9端口 (99)5.10服务 (99)5.11错误处理 (99)5.11.1 协议错误 (100)5.11.2 SOAP错误 (100)5.11.2.1常见的故障 (104)5.11.2.2 具体的错误 (106)5.11.2.3 HTTP错误 (106)5.12安全 (107)5.12.1 基于用户访问控制 (109)5.12.2 用户令牌配置文件 (109)5.12.2.1密码推导 (110)5.12.2.1.1 例子 (111)6 IP配置 (113)7 设备发现 (114)7.1概述 (115)7.2操作模式 (115)7.3发现定义 (116)7.3.1 终端参考 (116)7.3.2 服务地址 (117)7.3.3 Hello (117)7.3.3.1类型 (117)7.3.3.2范围 (117)7.3.3.2.1例子 (122)7.3.3.3 地址 (123)7.3.4 探头和探头匹配 (123)7.3.5 解决和解决匹配 (124)7.3.6 BYE (124)7.3.7 SOAP错误信息 (124)7.4远程发现扩展 (126)7.4.1 网络情景 (126)7.4.2 发现代理 (129)7.4.2.1 直接的DP地址配置 (131)7.4.2.2 域名服务记录的查找 (131)7.4.3 远程hello和探头行为 (132)7.4.4 客户端行为 (133)7.4.4.1 NVC 本地DP配置 (134)7.4.5 安全 (135)7.4.5.1 本地发现 (135)7.4.5.2 远程发现 (135)8设备管理 (136)8.1功能 (137)8.1.1获取WSDL的URL (137)8.1.2交换的功能 (138)8.2网络 (150)8.2.1获取主机 (150)8.2.2设置主机名 (151)8.2.3 获取 DNS配置 (152)8.2.4设置DNS (154)8.2.5获取NTP配置信息 (155)8.2.6 对设备设置NTP (157)8.2.7获取动态的DNS设置 (158)8.2.8设置设备动态DNS (160)8.2.9 获取网络接口配置 (161)8.2.10 设置网络接口配置 (162)8.2.11 获取网络协议 (166)8.2.12 设置网络协议 (167)8.2.13 获取默认的网关 (168)8.2.14 设置默认网关 (169)8.2.15 获取0配置 (170)8.2.16 设置0配置 (172)8.2.17 获取IP地址过滤 (173)8.2.18 对IP地址过滤进行配置 (175)8.2.19 增加IP地址过滤 (176)8.2.20 移除IP地址过滤 (178)8.2.21 IEEE 802.11配置 (180)8.2.21.1 SSID (181)8.2.21.2 基站模式 (181)8.2.21.3 多种无线网络配置 (182)8.2.21.4 安全配置 (183)8.2.21.4.1 None 模式 (184)8.2.21.4.2 PSK模式 (184)8.2.21.4.3 IEEE 802.1X-2004 模式 (185)8.2.21.5 获取DOT11的性能 (185)8.2.21.6 GetIEEE802.11状态 (186)8.2.21.7 扫描可用的IEEE802.11网络 (188)8.3系统 (190)8.3.1设备信息 (190)8.3.2获取系统的URL (191)8.3.3备份 (193)8.3.4恢复 (194)8.3.5开始恢复系统 (195)8.3.6获取系统日期以及时间 (197)8.3.7设置系统日期以及时间 (200)8.3.8 出厂默认配置 (202)8.3.9 固件升级 (204)8.3.10 开始固件升级 (206)8.3.11 获取系统日志 (208)8.3.12 获取支持信息 (210)8.3.13 重启 (212)8.3.14 获取范围参数 (212)8.3.15设置范围参数 (214)8.3.16 添加范围参数 (215)8.3.17 移除范围参数 (216)8.3.18 获取发现模式 (217)8.3.19 设置发现模式 (218)8.3.20 获取远程发现方式 (219)8.3.21 设置远程发现方式 (220)8.3.22 获取远程DP地址 (221)8.3.23 配置远程DP地址 (222)8.4安全 (223)8.4.1获取访问策略 (223)8.4.2 设置访问策略 (224)8.4.3 获取用户 (225)8.4.4 创建用户 (226)8.4.5 删除用户 (228)8.4.6 对用户进行配置 (230)8.4.7 IEEE 802.1X配置 (231)8.4.7.1创建IEEE802.1X配置 (233)8.4.7.2对IEEE802.1X配置 (235)8.4.7.3 获取IEEE802.1X配置 (236)8.4.7.4获取IEEE802.1X配置 (237)8.4.7.5 删除IEEE802.1X配置 (239)8.4.8 创建签名证书 (240)8.4.9 获取证书 (242)8.4.10 获取CA证书 (243)8.4.11获取证书状态 (244)8.4.12 设置证书状态 (245)8.4.13获取证书请求 (246)8.4.14 获取客户证书状态 (248)8.4.15 设置客户认证状态 (249)8.4.16 下载设备证书 (250)8.4.17 利用私有密钥来链接下载设备证书 (252)8.4.18 获取证书信息请求 (254)8.4.19 下载CA证书 (256)8.4.20 删除证书 (257)8.4.21 获取远程用户 (259)8.4.22 设置远程用户 (260)8.4.23获取终端参数 (261)8.5输入与输出 (262)8.5.1获取继电器输出 (263)8.5.2 对继电器输出进行配置 (263)8.5.3继电器触发输出 (265)8.5.4 辅助操作 (267)8.6与服务相关的错误代码 (268)9设备IO服务 (283)9.1视频输出 (284)9.1.1 获取视频输出集 (284)9.2视频输出配置 (285)9.2.1 获取视频输出配置 (285)9.2.2 设置视频输出配置 (286)9.2.3 获取视频输出配置选项集 (287)9.3视频源 (289)9.3.1 获取视频源 (289)9.4视频源配置 (291)9.4.1 获取视频源配置 (291)9.4.2 设置视频源配置 (292)9.4.3 获取视频源多个配置选项 (294)9.5音频输出 (296)9.5.1 获取多个音频输出 (296)9.6音频输出配置 (297)9.6.1 获取音频输出配置 (297)9.6.2 设置音频输出配置 (299)9.6.3 获取音频输出多个配置选项 (301)9.7音频源 (302)9.7.1 获取音频源 (302)9.8音频源配置 (304)9.8.1 获取音频源配置 (304)9.8.2 设置音频源配置 (305)9.8.3 获取音频源多个配置选项 (307)9.9继电器输出 (309)9.9.1 获取多个继电器输出 (309)9.9.2 设置继电器输出设置 (310)9.9.3 触发继电器输出 (312)9.10服务错误码 (314)10图像配置 (317)10.1图像设置 (317)10.1.1 获取图像设置 (321)10.1.2 设置图像设置 (323)10.1.3 获取选项 (326)10.1.4 移动 (327)10.1.5 获取运行选项 (330)10.1.6 停止 (332)10.1.7 获取图像状态 (333)10.2服务错误码 (335)11媒体配置 (337)11.1音视频编解码器 (338)11.2媒体文件 (339)11.2.1 创建媒体文件 (340)11.2.2 获取多个媒体文件 (342)11.2.3 获取媒体文件 (343)11.2.4 添加视频源配置 (345)11.2.5 添加视频编码器配置 (346)11.2.6 添加音频源配置 (348)11.2.7 添加音频源编码器配置 (349)11.2.8 添加云台配置 (351)11.2.9 添加视频分析配置 (353)11.2.10 添加元数据配置 (356)11.2.11 添加音频输出配置 (358)11.2.12 添加音频解码器配置 (359)11.2.13 移除视频源配置 (361)11.2.14 移除视频源编码器配置 (362)11.2.15 移除音频源编码器配置 (364)11.2.16 移除音频编码器配置 (365)11.2.17 移除云台配置 (367)11.2.18 移除视频分析配置 (368)11.2.19 移除元数据配置 (370)11.2.20 移除音频输出配置 (371)11.2.21 移除音频编码器配置 (372)11.2.22 删除媒体文件 (374)11.3视频源 (375)11.3.1 获取视频源集 (375)11.4视频源配置 (376)11.4.1 获取视频源配置集 (376)11.4.2 获取视频源配置 (378)11.4.3 获取多个兼容视频源配置 (379)11.4.4 获取视频源配置选项 (380)11.4.5 设置视频源配置 (382)11.5视频编码器配置 (384)11.5.3 获取多个兼容视频解码器配置 (387)11.5.4 获取视频编码器配置选项集 (389)11.5.5 修改视频编码器配置 (392)11.5.6 获取有效的视频编码数量 (394)11.6音频源 (396)11.6.1 获取多个音频源 (396)11.7音频源配置 (397)11.7.1 获取多个音频源配置 (397)11.7.2 获取音频源配置 (398)11.7.3 获取兼容音频源配置集 (400)11.7.4 获取音频源配置选项集 (402)11.7.5 修改音频源配置 (404)11.8音频编码器配置 (407)11.8.1 获取多个音频编码器配置 (408)11.8.2 获取音频源编码器配置 (409)11.8.3 获取多个兼容音频编码器配置 (410)11.8.4 获取音频编码器配置选项集 (412)11.8.5 设置音频编码配置 (414)11.9视频分析配置 (417)11.9.1 获取多个视频分析配置 (418)11.9.2 获取视频分析配置 (419)11.9.3 获取多个兼容视频分析配置 (421)11.9.4 修改视频分析配置 (423)11.10元数据配置 (425)11.10.1 获取多个元数据配置 (426)11.10.2 获取元数据配置 (427)11.10.3 获取多个兼容元数据配置 (428)11.10.4 获取元数据配置选项集 (429)11.10.5 修改元数据配置 (431)11.11音频输出 (434)11.11.1 获取音频输出集 (434)11.12音频输出配置 (435)11.12.1 获取多个音频输出配置 (435)11.12.2 获取音频输出配置 (437)11.12.3 获取多个兼容音频输出配置 (438)11.12.4 获取音频输出配置选项集 (440)11.12.5 设置音频输出配置 (442)11.13音频解码器配置 (444)11.13.1 获取多个音频解码器配置 (444)11.13.2 获取音频解码器配置 (445)11.13.3 获取兼容音频解码器配置集 (447)11.13.4 获取音频解码器配置选项集 (449)11.15URI流 (454)11.15.1 获取Uri流 (454)11.16快照 (457)11.16.1 获取Uri快照 (457)11.17组播 (459)11.17.1 开始组播流 (459)11.17.2 停止组播流 (461)11.18同步点 (462)11.18.1 设置同步点 (462)11.19服务具体的错误码 (464)12 实时流 (470)12.1流媒体协议 (470)12.1.1传输格式 (470)12.1.1.1通过UDP的RTP数据传输 (471)12.1.1.2 通过TCP传输RTP数据 (471)12.1.1.3 RTP/RTSP/TCP (471)12.1.1.4 RTP/RTSP/HTTP/TCP (471)12.1.2 媒体传输 (472)12.1.2.1 RTP (472)12.1.2.1.1 RTP元数据流 (476)12.1.2.2 RTCP (478)12.1.2.2.1媒体同步 (479)12.1.3 同步点 (481)12.1.4 通过RTP传输JPEG (482)12.1.4.1所有包的结构 (482)12.1.4.2 逻辑解码规范 (484)12.1.4.3支持的彩色空间和采样因素 (487)12.1.4.4像素长宽比处理 (487)12.1.4.5 隔行扫描处理 (488)12.2媒体控制协议 (488)12.2.1流控制 (488)12.2.1.1 RTSP (489)12.2.1.1.1 保持RTSP会话的方法 (491)12.2.1.1.2 RTSP音频和视频同步 (492)12.2.1.1.4 RTSP消息的例子 (493)12.2.1.2 通过HTTP的RSTP (494)12.3往回通道连接 (495)12.3.1 RTSP协议请求的标签 (495)12.3.2双向连接的连接设置 (496)12.3.2.1 例一:没有往回支持的服务 (496)12.3.2.2 例二:使用ONVIF往回通道支持的服务 (497)12.3.3组播流 (499)12.3.3.1例:多播设置 (499)12.4错误处理 (499)13 接收端配置 (500)13.1持久性 (501)13.2接收端模式 (501)13.3接收命令 (501)13.3.1 获得多个接收器 (501)13.3.2 获得单个接收器 (502)13.3.3 创建接收器 (503)13.3.4 删除接收器 (504)13.3.5 配置接收器 (504)13.3.6 设计接收器模式 (506)13.3.7 获取接收机状态 (506)13.4事件 (507)13.4.1 改变状态 (507)13.4.2 连接失败 (508)13.5服务器错误码 (509)14 显示服务 (512)14.1窗格 (513)14.1.1 获得多个窗格配置 (515)14.1.2 获得单个窗格配置 (516)14.1.3 设置多个窗格配置 (517)14.1.4 设置单个窗格配置 (518)14.1.5 创建窗格配置 (520)14.1.6 删除窗格配置 (521)14.2布局 (522)14.2.1 获得布局 (523)14.2.2 设置布局 (524)14.3显示选项 (524)14.3.1 获取显示选项 (526)14.4事件 (526)14.4.1 解码错误事件 (527)14.5服务错误码 (528)15 事件处理 (532)15.1基本通知接口 (533)15.1.1 介绍 (534)15.1.2 要求 (536)15.2实时拉点通知接口 (537)15.2.1 创建 pull point subscription (540)15.2.2 pull 消息 (541)15.3通知流接口 (542)15.5通知结构 (544)15.5.1 通知消息 (547)15.5.1.1 事件例子 (548)15.5.2 消息格式 (549)15.5.3 属性举例,持续 (553)15.5.4 信息描述语言 (558)15.5.4.1 消息描述举例 (560)15.5.5 消息内容过滤器 (562)15.6同步点 (565)15.7主题结构 (567)15.7.1 ONVIF主题名字空间 (567)15.7.2 主题类型信息 (569)15.7.3 主题过滤器 (572)15.8获取事件属性 (575)15.9SOAP错误消息 (578)15.10通知例子 (578)15.10.1 获取事件属性请求 (578)15.10.2 获取事件属性应答 (579)15.10.3 创建PULLPOIT订阅 (583)15.10.4 创建PULLPOIT订阅应答 (586)15.10.5 拉消息请求 (588)15.10.6 拉消息应答 (590)15.10.7 退订请求 (594)15.10.8 退订应答 (596)15.11服务错误码 (597)16 PTZ控制 (597)16.1PTZ模型 (599)16.2PTZ节点 (602)16.2.1 获取所有节点(GetNodes) (603)16.2.2 获取节点(GetNode) (604)16.3PTZ配置 (605)16.3.1 读取所有配置命令(GetConfigurations) (608)16.3.2 读取配置命令(GetConfiguration) (609)16.3.3 读取配置选项(GetConfigurationOptions) (610)16.3.4 设置配置(SetConfiguration) (612)16.4移动操作 (614)16.4.1 绝对的移动(AbsoluteMove) (614)16.4.2 相对移动(RelativeMove) (617)16.4.3 连续移动(ContinuousMove) (620)16.4.4 停止(Stop) (623)16.4.5 读取状态(GetStatus) (624)16.5.2 读取所有预设值(GetPresets) (629)16.5.3 返回预设 (630)16.5.4 移除预设(RemovePreset) (632)16.6归位点操作 (634)16.6.1 转到归位点(GotoHomePosition) (634)16.6.2 设置归位点(SetHomePosition) (636)16.7辅助操作 (637)16.7.1 发送辅助命令(SendAuxiliaryCommand) (638)16.8预定PTZ空间 (640)16.8.1 绝对的位置空间 (640)16.8.1.1 泛化的全方位移动空间 (640)16.8.1.2 泛化的变焦位置空间 (641)16.8.2 相对的转换空间 (642)16.8.2.1 泛化的方位转换空间 (642)16.8.2.2 泛化的变焦转换空间 (643)16.8.3 连续的速率空间 (644)16.8.3.1 泛化的方位速率空间 (644)16.8.3.2 泛化的变焦速率空间 (646)16.8.4 速度空间 (646)16.8.4.1 泛化的方位速度空间 (647)16.8.4.2 泛化的变焦速度空间 (647)16.9服务错误码 (648)17 视频分析 (658)17.1场景描述接口 (659)17.1.1 概述 (659)17.1.2 画面相关内容 (660)17.1.2.1时间关系 (662)17.1.2.2 空间关系 (663)17.1.3 场景元素 (666)17.1.3.1 对象 (667)17.1.3.2 对象树 (674)17.1.3.3 形状描述符 (678)17.2规则接口 (680)17.2.1 规则陈述 (681)17.2.2 规则描述语言 (683)17.2.3 规则标准 (687)17.2.3.1 线性检测器 (687)17.2.3.2 域检测器 (689)17.2.4 规则操作 (691)17.2.4.1 读取支持的操作(GetSupportedRules) (692)17.2.4.2 读取规则(GetRules) (693)17.2.4.3 创建规则(CreateRules) (694)17.2.4.4 修改规则(ModifyRules) (696)17.4.4.5 删除规则(DeleteRules) (697)17.3分析模块接口 (699)17.3.1 分析模块配置 (699)17.3.2 分析模块描述语言 (701)17.3.3 分析模块操作 (703)17.3.3.1 读取支持的分析模块(GetSupportedAnalysticsModule) (703)17.3.3.2 读取模块分析(GetAnalyticsModules) (705)17.3.3.3 创建分析模块(CreateAnalyticsModules) (706)17.3.3.4 修改分析模块(ModifyAnalyticsModules) (708)17.3.3.5 删除分析模块(DeleteAnalyticsModules) (710)17.4服务错误码 (711)18分析设备 (719)18.1概述 (720)18.2分析引擎输入 (721)18.2.1获取分析引擎输入 (722)18.2.2获取分析引擎的输入 (723)18.2.3设置分析引擎的输入 (724)18.2.4 创建分析引擎输入 (726)18.2.5删除分析引擎输入 (728)18.3视频分析配置 (729)18.3.1 获取视频分析配置 (729)18.3.2 设置视频分析配置 (730)18.4分析引擎 (732)18.4.1获取分析引擎 (732)18.4.2 获取分析引擎 (733)18.5分析引擎控制 (734)18.5.1 GetAnalyticsEngineControls (735)18.5.2 获取分析引擎控制 (737)18.5.3设置分析引擎控制 (738)18.5.4 CreateAnalyticsEngineControl (739)18.5.5删除分析引擎控制 (741)18.6获取分析状态 (742)18.7输出流配置 (744)18.7.1 请求流的URL (745)19录制控制 (747)19.1介绍 (747)19.2一般要求 (750)19.3数据结构 (750)19.3.1 录制设置 (751)19.3.2 轨迹设置 (751)19.3.3 录制任务设置 (752)19.4创建录制 (754)19.5删除录制 (757)19.6获取录制集 (758)19.7设置录制配置 (759)19.8获取录制配置 (760)19.9创建轨道 (761)19.10删除轨道 (763)19.11获取轨道配置 (765)19.12设置轨道配置 (766)19.13创建录制任务 (768)19.14删除录制任务 (770)19.15获取录制任务集 (771)19.16设置录制任务配置 (772)19.17获取录制任务配置 (774)19.18设置录制模式 (775)19.19获取录制任务状态 (777)19.20事件 (780)19.20.1 录制任务状态变化 (780)19.20.2 设置变化 (781)19.20.3 删除数据 (784)19.20.4 录制和轨道的建立与删除 (785)19.21示例 (787)19.21.1 例1:单摄像头的安装录制 (787)19.21.2 例2:从一台摄像机录制多个流到一个单录制 (789)20 记录搜索 (791)20.1介绍 (791)20.2概念 (792)20.2.1 搜索方向 (792)20.2.2 记录事件 (792)20.2.3 查找对话 (793)20.2.4 查找范围 (794)20.2.4.1 包括的数据 (794)20.2.4.2 记录信息滤波器 (795)20.2.5 搜索过滤器 (795)20.3数据结构 (795)20.3.1 记录信息结构 (795)20.3.2 记录源信息结构 (796)20.3.3 跟踪信息结构 (796)20.3.4 列举查找状态 (797)20.3.5 媒体属性结构 (797)20.3.6 找事件结果结构 (798)20.3.7 找PTZ位置结果结构 (798)20.3.8 PTZ位置过滤结构 (799)20.3.9 元数据过滤结果 (799)20.3.10 找元数据结果结构 (799)20.4获取记录概要(G ET R ECORDING S UMMARY) (800)20.5读取记录信息(G ET R ECORDING I NFORMATION) (801)20.6读取媒体属性(G ET M EDIA A TTRIBUTES) (802)20.7找记录(F IND R ECORDINGS) (804)20.8获取记录搜索结果(G ET R ECORDING S EARCH R ESULTS) (806)20.9找事件(F IND E VENTS) (808)20.10读取事件搜索结果(G ET E VENT S EARCH R ESULTS) (811)20.11查找PTZ位置(F IND PTZP OSITION) (814)20.12读取PTZ位置搜索结果(G ET PTZP OSITION S EARCH R ESULTS) (818)20.13查找元数据(F IND M ETADATA) (821)20.14读取元数据搜索结果(G ET M ETADATA S EARCH R ESULTS) (824)20.15获取搜索状态(G ET S EARCH S TATE) (827)20.16结束搜索(E ND S EARCH) (828)20.17记录事件说明 (829)20.18XP ATH习惯用法 (834)21 重放控制 (837)21.1使用RTSP协议 (837)21.1.1 RTSP描述 (838)21.2RTP协议头部扩展 (839)21.2.1 NTP时间戳 (841)21.2.2 压缩JEPG头扩展的兼容 (841)21.3RTSP特性标签 (842)21.4启动播放 (843)21.4.1 领域范围 (844)21.4.2 速度控制头领域 (846)21.4.3 帧头字段 (846)21.4.4 同步点 (848)21.5回放 (848)21.5.1 数据包传输顺序 (848)21.5.2 RTP传输顺序号 (849)21.5.3 RTP时间戳 (849)21.6RTSP长连接 (850)21.7当前记录片段 (851)21.8结束片段 (851)21.9拖放 (852)21.10使用RTCP协议 (853)21.11重放命令 (853)21.11.1 重放命令 (853)21.11.2 重播配置 (855)21.11.3 设置重播配置 (856)21.11.4 获取重播配置 (857)21.11.5 服务指定的误码 (857)22 安全 (861)22.1传输层安全 (862)22.1.1 支持密码套 (863)22.1.2 服务器身份验证 (863)22.1.3 客户端认证 (864)22.2消息安全 (864)22.3IEEE802.1X (865)介绍ONVIF的目标是为了实现完全标准化的、可互操作性的网络视频服务,即使是由不同的网络视频供应商组成的产品。

can2.0协议中文版

can2.0协议中文版
z 传输层是 CAN 协议的核心。它把接收到的报文提供给对象层,以及接收来自对象层的报文。传输 层负责位定时及同步、报文分帧、仲裁、应答、错误检测和标定、故障界定。
z 对象层的功能是报文滤波以及状态和报文的处理。 这本技术规范的目的是为了定义传输层及定义 CAN 协议在周围各层中所发挥的作用(所具有的意义)。
这本技术规范的目的是为了在任何两个 CAN 仪器之间建立兼容性。可是,兼容性有不同的方面,比如 电气特性和数据转换的解释。为了达到设计透明度以及实现柔韧性,CAN 被细分为以下不同的层次:
• CAN 对象层(the object layer) • CAN 传输层(the transfer layer) • 物理层(the phyical layer) 对象层和传输层包括所有由 ISO/OSI 模型定义的数据链路层的服务和功能。对象层的作用范围包括: z 查找被发送的报文。 z 确定由实际要使用的传输层接收哪一个报文。 z 为应用层相关硬件提供接口。 在这里,定义对象处理较为灵活。传输层的作用主要是传送规则,也就是控制帧结构、执行仲裁、错 误检测、出错标定、故障界定。总线上什么时候开始发送新报文及什么时候开始接收报文,均在传输层里 确定。位定时的一些普通功能也可以看作是传输层的一部分。理所当然,传输层的修改是受到限制的。 物理层的作用是在不同节点之间根据所有的电气属性进行位信息的实际传输。当然,同一网络内,物 理层对于所有的节点必须是相同的。尽管如此,在选择物理层方面还是很自由的。 这本技术规范的目的是定义传输层,并定义 CAN 协议于周围各层当中所发挥的作用(所具有的意义)。
3.1 帧类型 ................................................................................................................................................... 6 3.1.1 数据帧............................................................................................................................................ 6 3.1.2 远程帧............................................................................................................................................ 9 3.1.3 错误帧.......................................................................................................................................... 10 3.1.4 过载帧.......................................................................................................................................... 11 3.1.5 帧间空间...................................................................................................................................... 11

HTTP协议详解及http1.0与http1.1http2.0的区别

HTTP协议详解及http1.0与http1.1http2.0的区别

HTTP协议详解及http1.0与http1.1http2.0的区别HTTP协议介绍http(超⽂本传输协议)是⼀个属于应⽤层的⾯向对象的协议,由于其简捷、快速的⽅式,适⽤于分布式超媒体信息系统。

特点:(1)⽀持客户/服务器模式。

HTTP是⼀个客户端和服务器端请求和应答的标准(TCP)。

客户端是终端⽤户,服务器端是⽹站。

通过使⽤、或者其它的⼯具,客户端发起⼀个到服务器上指定端⼝(默认为80)的HTTP请求。

称这个客户端叫⽤户代理。

服务器则在那个端⼝监听客户端发送过来的请求。

应答的服务器上存储着(⼀些)资源,⽐如HTML⽂件和图像。

称这个应答服务器为源服务器。

⼀旦收到请求,服务器(向客户端)发回⼀个状态⾏,⽐如"HTTP/1.1 200 OK",和(响应的)消息,其消息体即为服务器上的资源。

HTTP使⽤TCP ⽽不是UDP的原因在于(打开)⼀个⽹页必须传送很多数据,⽽TCP协议提供传输控制,按顺序组织数据,和错误纠正。

(2)简单快捷。

客户向服务器请求服务时,只需传送请求⽅法和路径。

请求⽅法常⽤的有GET、HEAD、POST。

每种⽅法规定了客户与服务器联系的类型不同。

由于HTTP协议简单,使得HTTP服务器的程序规模⼩,因⽽通信速度很快。

(3)灵活。

HTTP允许传输任意类型的数据对象。

正在传输的类型由Content-Type加以标记。

(4)⽆连接。

意思限制每次连接只处理⼀个请求。

服务器处理完客户的请求,并收到客户的应答后,即断开连接。

采⽤这种⽅式可以节省传输时间。

(5)⽆状态。

HTTP协议是⽆状态协议。

⽆状态是指协议对于事务处理没有记忆能⼒。

缺少状态意味着如果后续处理需要前⾯的信息,则它必须重传,这样可能导致每次连接传送的数据量增⼤。

另⼀⽅⾯,在服务器不需要先前信息时它的应答就较快。

认识URL 通过HTTP协议请求的资源由统⼀资源定位器(URL)来标识。

URL是⼀种特殊类型的URI(统⼀资源标识符,⽤来唯⼀的标识⼀个资源。

HTTP协议-最新RFC文档-中文版

HTTP协议-最新RFC文档-中文版

内容协商(content negotiation) 任 当服务一个请求时选择资源的一种适当的表示形式的机制(mechanism),如第 12 节所述。 何响应里实体的表现形式都是可协商的(包括错误响应)。 变量(variant) 在 某 个时 刻 ,一个资源对应的表现形式( representation )可以有一个或多个(译注:一个 URI 请求一个资源,但返回的是此资源对应的表现形式,这根据内容协商决定)。每个表现形 式 ( representation ) 被 称 作 一 个 变 量 。 ‘ 变 量 ’ 这 个 术 语 的 使 用 并 不 意 味 着 资 源 (resource)是由内容协商决定的.。 客户端(client) 为发送请求建立连接的程序.。 用户代理(user agent) 初始化请求的客户端程序。常见的如浏览器,编辑器,蜘蛛(可网络穿越的机器人),或其他 的终端用户工具. 服务器(Server) 服务器是这样一个应用程序,它同意请求端的连接,并发送响应( response)。任何给定的程 序都有可能既做客户端又做服务器;我们使用这些术语是为了说明特定连接中应用程序所担当 的角色,而不是指通常意义上应用程序的能力。同样,任何服务器都可以基于每个请求的性质 扮演源服务器,代理,网关,或者隧道等角色之一。 源服务器(Origin server) 存在资源或者资源在其上被创建的服务器(server)被成为源服务器(origin server)。 代理( Proxy) 代理是一个中间程序,它既可以担当客户端的角色也可以担当服务器的角色。代理代表客户端 向服务器发送请求。客户端的请求经过代理,会在代理内部得到服务或者经过一定的转换转至 其 他 服务器。一个代理必 须 能同时实现本规范 中 对 客 户端和服务器 所 作的要求。 透 明代理 ( transparent proxy )需要代理 认证 和代理识 别 , 而 不修 改 请求或响应。 非透 明代理( nontransparent proxy)需修改请求或响应,以便为用户代理( user agent)提供附加服务,附加 服务包括组注释服务,媒体类型转换,协议简化,或者匿名过滤等。除非透明行为或非透明行 为经被显式地声明,否则,HTTP 代理既是透明代理也是非透明代理。 网关(gateway) 网关其实是一个服务器,扮演着代表其它服务器为客户端提供服务的中间者。 与代理(proxy) 不同,网关接收请求,仿佛它就是请求资源的源服务器。请求的客户端可能觉察不到它正在同 网关通信。 隧道(tunnel) 隧道也是一个中间程序,它一个在两个连接之间充当盲目中继(blind relay)的中间程序。 一旦 隧道处于活动状态,它不能被认为是这次 HTTP 通信的参与者,虽然 HTTP 请求可能已经把它 初始化了。当两端的中继连接都关闭的时候,隧道不再存在。 缓存(cache) 缓存是程序响应消息的本地存储。 缓存是一个子系统,控制消息的存储、 获取和删除。 缓存里存 放可缓存的响应( cacheable response)为的是减少对将来同样请求的响应时间和网络带宽消 耗。 任一客户端或服务器都可能含有缓存,但缓存不能存在于一个充当隧道(tunnel)的服务器 里。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

超文本传输协议版本 2IETF HTTP2草案(draft-ietf-httpbis-http2-13)摘要本规范描述了一种优化的超文本传输协议(HTTP)。

HTTP/2通过引进报头字段压缩以及多路复用来更有效利用网络资源、减少感知延迟。

另外还介绍了服务器推送规范。

本文档保持对HTTP/1.1的后向兼容,HTTP的现有的语义保持不变。

1 介绍The Hypertext Transfer Protocol (HTTP) is a wildly successful protocol. However, the HTTP/1.1 message format ([RFC7230], Section 3) was designed to be implemented with the tools at hand in the 1990s, not modern Web application performance. As such it has several characteristics that have a negative overall effect on application performance today.超文本传输协议(HTTP)是一个非常成功的协议。

但是HTTP/1.1 是针对90年代的情况而不是现代web应用的性能而设计的,导致它的一些特点已经对现代应用程序的性能产生负面影响。

In particular, HTTP/1.0 only allows one request to be outstanding at a time on a given connection. HTTP/1.1 pipelining only partially addressed request concurrency and suffers from head-of-line blocking. Therefore, clients that need to make many requests typically use multiple connections to a server in order to reduce latency.特别是,HTTP/1.0只允许在一个连接上建立一个当前未完成的请求。

HTTP/1.1管道只部分处理了请求并发和报头阻塞的问题。

因此客户端需要发起多次请求通过数次连接服务器来减少延迟。

Furthermore, HTTP/1.1 header fields are often repetitive and verbose, which, in addition to generating more or larger network packets, can cause the small initial TCP [TCP] congestion window to quickly fill. This can result in excessive latency when multiple requests are made on a single new TCP connection.此外,HTTP/1.1的报头字段经常重复和冗长。

在产生更多或更大的网络数据包时,可能导致小的初始TCP堵塞窗口被快速填充。

这可能在多个请求建立在一个新的TCP连接时导致过度的延迟。

This specification addresses these issues by defining an optimized mapping of HTTP's semantics to an underlying connection. Specifically, it allows interleaving of request and response messages on the same connection and uses an efficient coding for HTTP header fields. It also allows prioritization of requests, letting more important requests complete more quickly, further improving performance.本协议通过定义一个优化的基础连接的HTTP语义映射来解决这些问题。

具体地,它允许在同一连接上交错地建立请求和响应消息,并使用高效率编码的HTTP报头字段。

它还允许请求的优先级,让更多的重要的请求更快速的完成,进一步提升了性能。

The resulting protocol is designed to be more friendly to the network, because fewer TCP connections can be used in comparison to HTTP/1.x. This means less competition with other flows, and longer-lived connections, which in turn leads to better utilization of available network capacity.最终协议设计为对网络更友好,因为它相对HTTP/1.x减少了TCP连接。

这意味着与其他流更少的竞争以及更长时间的连接,从而更有效地利用可用的网络容量。

Finally, this encapsulation also enables more efficient processing of messages through use of binary message framing.最后,这种封装也通过使用二进制消息帧使信息处理更具扩展性。

2 HTTP / 2协议概述HTTP/2 provides an optimized transport for HTTP semantics. HTTP/2 supports all of the core features of HTTP/1.1, but aims to be more efficient in several ways.HTTP/2 提供了HTTP语义的传输优化。

HTTP/2支持所有HTTP/1.1的核心特征,并且在不同的方面做的更高效。

The basic protocol unit in HTTP/2 is a frame (Section 4.1). Each frame type serves a different purpose. For example, HEADERS and DATA frames form the basis of HTTP requests and responses (Section 8.1); other frame types like SETTINGS, WINDOW_UPDATE, and PUSH_PROMISE are used in support of other HTTP/2 features.HTTP/2中基本的协议单位是帧。

每个帧都有不同的类型和用途。

例如,报头(HEADERS)和数据(DATA)帧组成了基本的HTTP 请求和响应;其他帧例如设置(SETTINGS),窗口更新(WINDOW_UPDATE), 和推送承诺(PUSH_PROMISE)是用来实现HTTP/2的其他功能。

Multiplexing of requests is achieved by having each HTTP request-response exchanged assigned to a single stream (Section 5). Streams are largely independent of each other, so a blocked or stalled request does not prevent progress on other requests.请求多路复用是通过在一个流上分配多个HTTP请求响应交换来实现的(章节5)。

流在很大程度上是相互独立的,因此一个请求上的阻塞或终止并不会影响其他请求的处理。

Flow control and prioritization ensure that it is possible to properly use multiplexed streams. Flow control (Section 5.2) helps to ensure that only data that can be used by a receiver is transmitted. Prioritization (Section 5.3) ensures that limited resources can be directed to the most important requests first.流量控制和优先级能确保正确使用复用流。

流量控制(章节5.2)有助于确保只传播接受者需要使用的数据数据。

优先级(章节5.3)能确保有限的资源能优先被重要的请求使用。

HTTP/2 adds a new interaction mode, whereby a server can push responses to a client (Section 8.2). Server push allows a server to speculatively send a client data that the server anticipates the client will need, trading off some network usage against a potential latency gain. The server does this by synthesizing a request, which it sends as a PUSH_PROMISE frame. The server is then able to send a response to the synthetic request on a separate stream.HTTP/2添加了一种新的交互模式,即服务器能推送消息给客户端。

服务器推送允许服务端预测客户端需要来发送数据给客户端,交换网络的使用来阻止潜在的延迟增长。

服务器通过复用一个以PUSH_PROMISE帧发送的请求来实现推送,然后服务端可以在一个单独的流里面发送响应给这个合成的请求。

相关文档
最新文档