收藏 分享(赏)

5G核心网SBA架构协议简介.ppt

上传人:精品资料 文档编号:10303570 上传时间:2019-10-29 格式:PPT 页数:66 大小:5.66MB
下载 相关 举报
5G核心网SBA架构协议简介.ppt_第1页
第1页 / 共66页
5G核心网SBA架构协议简介.ppt_第2页
第2页 / 共66页
5G核心网SBA架构协议简介.ppt_第3页
第3页 / 共66页
5G核心网SBA架构协议简介.ppt_第4页
第4页 / 共66页
5G核心网SBA架构协议简介.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

1、,RESTful API简介,目录:,OpenAPI 3.0,JSON及其语法简介,HTTP/2概述,RESTful API简介,议题REST是什么REST式服务的特点REST式服务的优点云学堂RESTful API,REST是什么 REST(Representational State Transfer):表示性状态转移,分布式超媒体软件的一种架构风格 -源自2000年Roy Thomas Fielding的博士论文。 一套简单的设计原则、一种架构风格(或模式),不是一种具体的标准或架构。 基于使用HTTP、URI等现有的广泛流行的协议和标准 对Web的本质回归,一种真实描述Web的方式 R

2、EST目的:寻找Web特性,然后使用这些特性来指导Web设计,议题REST是什么REST式服务的特点REST式服务的优点云学堂RESTful API,REST式服务的特点 网络上的所有事物都被抽象为资源, 每个资源对应一个唯一的资源标识URI 通过HTTP协议方法作连接器对资源进行操作 对资源的任何操作不改变资源标识URI 所有的服务器操作都是无状态的,议题REST是什么REST式服务的特点REST式服务的优点云学堂RESTful API,REST式服务的优点 可以利用缓存Cache来提高响应速度 通讯本身的无状态性可以让不同的服务器的处理一系列请求中的不同请求,提高服务器的扩展性 浏览器即可

3、作为客户端,简化软件需求 相对于其他叠加在HTTP协议之上的机制,REST的软件依赖性更小 不需要额外的资源发现机制 在软件技术演进中的长期的兼容性更好,议题REST是什么REST式服务的特点REST式服务的优点云学堂RESTful API,云学堂RESTful API 架构设计 http:/ API 协议HTTPS更佳,条件限制时采用HTTP 域名专用域名 版本 URI集合资源 http:/ (英文单词复数)单个资源 http:/ (唯一标识这个资源的id,不限于uuid)从属关系 http:/ http:/ http:/ http:/ API HTTP方法GET:获取(SELECT)POS

4、T:新建(CREATE)PUT:更新(UPDATE)DELETE:删除(DELETE) HTTP方法 + URI APIPOST+集合资源URI:在服务器新建一个资源。GET+集合资源URI:从服务器取出资源列表。GET+单个资源URI:在服务器取出特定资源。PUT+单个资源URI:在服务器更新特定资源。DELETE+单个资源URI:从服务器删除资源。,云学堂RESTful API 请求头Source 标识调用方的类别 (101,102,103,201,202.)Token 标识当前操作者的身份Content-Type 标识请求体内容格式 (application/json)Origin 用于

5、设定js跨域访问时允许的域名User-agent 标识当前请求所用的操作系统和浏览器信息X-FORWARDED-FOR IIS服务器端调用RESTful API时需要传递客户端ip,云学堂RESTful API 请求参数主要用于获取资源列表类型的API排序 ?order=email%20asc 参数值为字段名+%20+asc或desc分页 ?offset=30&limit=10 分别用于指定返回记录的开始位置和每页记录数 请求体HTTP方法为POST/PUT时需要具体定义需看API文档,云学堂RESTful API 响应状态码200 OK - GET:服务器成功返回用户请求的数据。201 CR

6、EATED - POST/PUT:用户新建或修改数据成功。204 NO CONTENT - DELETE:用户删除数据成功。400 INVALID REQUEST - POST/PUT:用户发出的请求有错误。401 Unauthorized - *:表示用户没有权限(令牌、用户名、密码错误)。403 Forbidden - * 表示用户得到授权(与401错误相对),但是访问是被禁止的。404 NOT FOUND - *:用户发出的请求针对的是不存在的记录。500 INTERNAL SERVER ERROR - *:服务器发生错误,用户将无法判断发出的请求是否成功。 响应体HTTP方法为GET/

7、POST时返回有Error时返回具体定义需看API文档,云学堂RESTful API 响应头Location HTTP方法为POST时返回 用来表示新创建的资源URIAccess-Control-Allow-Origin 跨域访问时设置允许的域名 响应体HTTP方法为GET/POST时返回具体定义需看API文档,云学堂RESTful API 出错时的响应状态码 40050X 具体参见API文档中的Error列表响应体 格式 “error“: “key“: “$errorKey“,“message“: “$errorMsg“ 具体参见API文档中的Error列表,OpenAPI 3.0,Open

8、API,规范目标:定义标准的、独立于语言的指向 REST API 的接口,使得服务能力无需访问源代码、文档,或是借助于网络流量检查,就可被人类和计算机发现并理解。通过对 OpenAPI 做适当定义后,消费者可使用最小数量的实现逻辑理解远程服务,并与远程服务交互。,定义:Open API即开放API,也称开放平台。 所谓的开放API(OpenAPI)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列API(Application Programming Interface,应用编程接口)开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,所开放的API就被称作Open

9、API(开放API),新的 OpenAPI 规范 3.0 带来了如下重大改进,为实现更好的可重用性,对规范的整体架构进行了重构,重构后的架构如下图所示。 支持 oneOf、anyOf 和 not 的 JSON 模式。 可使用模式的参数。 引入了 Cookie 参数,去除了 dataForm 参数。 具有自身实体的主体参数(Body Parameter)。 可协商的内容类型。 多主机支持。 简化了安全定义,改进的 WebHooks 不再通过回调机制描述。,OpenAPI 3.0 基础URL结构,JSON及其语法简介,JSON简介,JSON (JavaScript Object Natation)

10、 一种轻量级的数据交换格式 和XML一样,基于纯文本的数据格式 可以表达String、Number、Boolean、数组、甚至对象等数据 适合于服务器与JavaScript客户端的交互,JSON基本语法,JSON实际上基于JavaScript语法的一个子集。 值的表示 字符串、数值、true、false、null、Object或数组等。 字符串 “abc“ 、 “rn“ 、 “u00A9“ 数值 123 、 -123.5 布尔 true 、 false null,JSON基本语法,数组表示使用 包含所有元素,每个元素用逗号分隔,元素可以是任意的值。 比如: “abc“ , 123 , true

11、, null 访问其中的元素,使用索引号,从 0 开始。,JSON基本语法,Object表示用 包含一系列无序的 Key-Value 键值对表示,其中Key和Value之间用冒号分割,每个key-value之间用逗号分割。比如: “bookname“:“Ajax基础“,“publisher“:“电子工业出版社“,“price“: 56.0 访问其中的数据,通过obj.key来获取对应的value,JSON基本语法,复杂数据表示Object或数组中的值还可以是另一个 Object 或者数组 ,以表示更复杂的数据 比如: List list=new ArrayList(); List.add(em

12、p) “name“:“张三“, “age“:18 , “loves“:“看书“,“玩游戏“,“name“:“王五“, “age“: 20,“loves“:“旅游“ ,HTTP/2概述,HTTP/2概述,CONTENTS,PART 1,PART 2,HTTP基础,Http/2协议,PART 3,Http/2支持情况,PART 4,Http/2疑虑,HTTP基础,1,1.1,缩略语,1.2,版本演进,1.3,HTTP概述,1.5,安全相关,1.4,HTTP现状与优化,1.1、HTTP基础缩略语,1,2,3,HTTP:超文本传输协议(HyperText Transfer Protocol),IETF

13、:互联网工程任务组(Internet Engineering Task Force ),RFC:Request For Comments,一系列以编号排定的文件几乎所有互联网标准都收录在RFC文件之中,4,HTTPS:HTTP的安全版(HTTP over Secure Socket Layer),5,SSL:安全套接层(Secure Sockets Layer) TLS:传输层安全协议(Transport Layer Security Protocol),1.2、HTTP基础版本演进(HTTP),SPDY,2009,HTTP/1.0 RFC 1945,1996.5,HTTP/0.9,1991,

14、1997.1,2015,HTTP/1.1 RFC 2616,HTTP/2 RFC 7540,1.2、HTTP基础版本演进(SSL/TLS),TLS 1.0,1999,NetScape公司发布SSL 2.0版,很快发现有严重漏洞,1995,NetScape设计SSL 1.0,但未发布,1994,1996,2006,SSL 3.0版问世,得到大规模应用,TLS 1.1,TLS 1.2,2008,2012,TLS 1.2 修订版,SSL 3.1,SSL 3.2,SSL 3.3,1.3、HTTP基础HTTP概述,1.4、HTTP基础HTTP现状与优化,1.5、HTTP基础安全相关,SSL,安全隐患,T

15、LS,窃听风险,篡改风险,冒充风险,加密传播,校验机制,CA证书,应对机制,安全隐患及应对机制,Https握手机制,客户端(一般为浏览器),服务端(一般为 Web应用),服务端响应(支持的协议版本不一致时直接关闭通信渠道) 传输数据:确定的协议版本和加密算法、证书(包含公钥)、随机数R2,客户端握手结束(证书验证通过或被信任之后) 传输数据:使用公钥加密后的随机数R3、编码改变通知、客户端握手结束通知(hash值),客户端加密请求 传输数据:支持的协议(如TLS 1.0)、加密算法(如RSA)、随机数R1,服务端握手结束 传输数据:编码改变通知、服务器握手结束通知(hash值),通讯双方使用三

16、个随机数一起产生对称加密的密钥,后续通讯全部加密传输,涉及4个相关概念 证书 非对称加密 对称加密 hash摘要算法,HTTPS安全相关算法,HTTP/2协议,2,2.1,概述,2.2,连接,2.3,帧,2.4,多路复用,2.6,头部压缩,2.7,中断,2.8,服务端推送,2.9,流量控制,2.5,优先级,2.10,NPN/ALPN,2.1、HTTP/2协议概述,2.2、HTTP/2协议连接(一),2.2、HTTP/2协议连接(二),1、连接(Connection)同域名下所有通信都在单个连接上完成,可以承接任意数量的双向数据流,2、流(Stream)具有唯一整数ID,以消息的形式发送,流(S

17、tream),4、Data,4、Headers,3、请求消息(Request Message),Data,Data,3、响应消息(Response Message),Headers,Data,Headers,请求消息(Request Message),Data,Data,响应消息(Response Message),Headers,消息由一个或多个帧组成,帧之间可以乱序发送,因为根据帧首部的流标识可以重新组装,2.3、HTTP/2协议帧,2.4、HTTP/2协议多路复用,2.5、HTTP/2协议优先级,2.6、HTTP/2协议头部压缩(一),原理:维护一份字典索引表,实际传输时只传输对应索引

18、如使用2表示:method=GET,5表示:path=/index.html等,常见的Header名称,常见的Header及取值,用于动态添加内容 和HTTP2连接关联,每个连接维护一个动态字典,2.6、HTTP/2协议头部压缩(二),2.7、HTTP/2协议中断,HTTP/1.1的有一个缺点是:当一个含有确切值的Content-Length的HTTP消息被送出之后,你就很难中断它了。当然,通常你可以断开整个TCP链接(但也不总是可以这样),但这样导致的代价就是需要通过三次握手来重新建立一个新的TCP连接。一个更好的方案是只终止当前传输的消息并重新发送一个新的。,在HTTP/2里面,可以通过发

19、送RST_STREAM帧来实现这种需求,从而避免浪费带宽和中断已有的连接。,2.8、HTTP/2协议服务端推送,这个功能通常被称作“缓存推送”。 主要思想:当一个客户端请求资源X,而服务器知道它很可能也需要资源Z的情况下,服务器可以在客户端发送请求前,主动将资源Z推送给客户端。 功能控制:服务器推送需要客户端显式的允许服务器提供该功能。 中止:如果不需要的话,客户端可以通过发送一个RST_STREAM帧来中止。,2.9、HTTP/2协议流量控制,每个http2流都拥有自己的公示的流量窗口,它可以限制另一端发送数据。 对于每个流来说,两端都必须告诉对方自己还有足够的空间来处理新的数据,而在该窗口

20、被扩大前,另一端只被允许发送这么多数据。 只有数据帧会受到流量控制。,2.10、HTTP/2协议NPN/ALPN,Next Protocol Negotiation (NPN)是一个用来在TLS服务器上协商SPDY的协议。IETF将这个非正式标准进行规范化,从而演变成了ALPN(Application Layer Protocol Negotiation)。ALPN和NPN的主要区别在于:谁来决定通信协议。在ALPN的描述中,是让客户端先发送一个协议优先级列表给服务器,由服务器最终选择一个合适的。而NPN则正好相反,客户端有着最终的决定权。 NPN:客户端决定 ALPN:服务端决定,HTTP/

21、2支持情况,3,3.1,总览,3.2,Firefox,3.3,Chrome,3.4,Nginx,3.5,Java,3.1、HTTP/2支持情况总览(一),3.1、HTTP/2支持情况总览(二),说明: h2:支持HTTP/2正式版 h2c:支持HTTP/2非加密通道 h2-14:支持HTTP/2第14号草案版(共有00-17等18个草案版) h2c-14:支持HTTP/2第14号草案的非加密通道版,3.2、HTTP/2支持情况Firefox,从Firefox35之后 默认支持HTTP/2,支持情况,HTTP/2.0,响应头,仅支持TLS,TLS,插件 HTTP/2 and SPDY Indic

22、ator,图形化,3.3、HTTP/2支持情况Chrome,HTTP/2 and SPDY Indicator,3.4、HTTP/2支持情况Nginx(一),从 Nginx 1.9.5 开始 提供http_v2_module,3.4、HTTP/2支持情况Nginx(二),https:/docs.spring.io/spring-boot/docs/2.0.0.BUILD-SNAPSHOT/reference/htmlsingle/#howto-configure-http2,3.5、HTTP/2支持情况Java,Java类库,HttpComponents 5.0-beta1 Netty,开发框

23、架,服务器,SpringBoot 2.0.0 SNAPSHOT,Apache Tomcat 8.5+Jetty,配置:server.http2.enabled 要求:JDK8+,和具体web容器有关 限制:不支持h2c,https:/hc.apache.org/httpcomponents-core-5.0.x/examples.html,http:/tomcat.apache.org/tomcat-8.5-doc/config/http2.html,配置: 要求:Java SE 7+,Tomcat Native library 限制:不支持h2c,HTTP/2疑虑,4,4、HTTP/2疑虑,

24、1、这个协议是Google设计制定 2、这个协议只在浏览器上有 3、这个协议只对大型网站有用 4、TLS让速度变得更慢 5、不基于ASCII是没法忍受 6、它根本没有比HTTP/1.1快 7、它并没有修复很多HTTP/1.1的短板,参考资料,【HTTP/2参考资料】http/2官网:https:/http2.github.io/ RFC7540: http:/httpwg.org/specs/rfc7540.html RFC7541: http:/httpwg.org/specs/rfc7541.html http/2实现情况: https:/ http/2浏览器支持情况: https:/ N

25、ginx的http/2白皮书: https:/ http/2讲解(中文版): https:/ http/2资料汇总(国内博客): https:/ Tomcat的http/2支持:http:/tomcat.apache.org/tomcat-8.5-doc/config/http2.html SpringBoot的http/2支持:https:/docs.spring.io/spring-boot/docs/2.0.0.BUILD-SNAPSHOT/reference/htmlsingle/#howto-configure-http2,TCP/IP,TCP/IP,TCP三次握手 TCP四次挥手 TCP的重传机制(超时重传机制、快速重传) TCP的窗口机制(窗口会滑动) TCP头部 TCP的序列号和确认号 IP数据分片与重组 TTL机制,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报