学习笔记-Spring Boot 开发 RESTful Web API(一)

题记:

本篇是Spring Boot 开发学习系列中基础知识学习的一部分,为 RESTful Web API 相关基础知识,为实践操作奠定理论基础。

REST不是一个标准,而是一种软件应用架构风格。基于SOAP的Web服务采用RPC架构,如果说RPC是一种面向操作的架构风格,而REST则是一种面向资源的架构风格。

REST是目前业界更为推崇的构建新一代Web服务(或者Web API)的架构风格。由于REST仅仅是一种架构风格,所以它是与具体的技术平台无关的,也就是说采用REST架构的应用未必一定建立在Web之上。

Web为我们提供获取和操作网络资源的方式,资源包括文字、图片、音频、视频。

Web的核心体现在三个方面,即HTTP、超文本(Hypertext)和超媒体(Hypermedia)。

超文本和超媒体规范了网络信息的表现形式,而HTTP则提供了网络访问的标准协议。

 

一、网络协议(TCP/IP与HTTP)

TCP/IP是以IP和TCP协议为核心的一整套网络协议的总称,所以有时候我们也称其为TCP/IP协议簇。毫不夸张地说,TCP/IP支撑着整个互联网,因为它就是互联网采用的网络协议。

IP协议利用IP地址来定位数据报发送的目的地,而利用域名系统(DNS)可以实现域名与IP地址之间的转换。TCP协议利用端口号标识应用程序,所以某个应用程序在使用TCP协议进行通信的时候必须指定目标应用的IP地址(或者域名)和端口号。HTTP默认采用的端口号为80,而HTTPS(利用TLS/SSL为HTTP提供传输安全保障)的默认端口号则为443,当然在网络可达的前提下,我们可以指定任意的端口。

 

 

(1)、IP协议:处于网络层,无链接的网络协议,传输不可靠且无序,数据完整性不能保证。

不可靠性:即不能保证发送出去的数据报文成功到达目的地。

无序:即每次数据报文处理都是独立的。

数据不完整性:接收方没有根据报文段的校验和来检查数据在传输过程中是否被篡改。

(2)、TCP协议:位于网络层之上的传输层,基于连接的传输协议,解决了IP协议不可靠性,无序性,不完整性三个问题。数据交换双方在在数据报文传输前先建立一个双工连接,双方都可以用它来发送数据,在报文传输结束后关闭连接。
可靠性:借助“接收确认”和“超时重传” 机制来实现,发送方有个缓冲区,用来存放发送出去但还未确认的保文,超过指定时限会重发,接收到确认消息就在缓冲区删除。

有序性:报文编号机制,每个数据报文都有个编号,其体现了报文的顺序,接收方接收到一个报文后,根据其编号先确认其之前编号的报文都接收了,才往应用层提交报文数据,判断标准是其记录一个上次成功递交给应用层的报文编号,如果此次接收报文的编号和上次是连续的说明是有序的,否则说明之前还有报文未接收。接收方也有个缓冲区,用来存放接收但不能向应用层提交的保文,等之前发送的所有报文都接收到之后,按序号顺序往应用层提交报文,再从缓冲区中把其删除。另外,重复的报文会被丢弃,判断重复的标准是,报文的序号小于最后递交给应用层的报文编号或者添加到缓冲区的报文编号。

数据完整性:报文段有个16位的校验和(Checksum),接收方可以根据它来确认数据在传输过程中是否被篡改。

报文不丢失:借助“流量控制”机制,发送和接收方缓冲区大小不一致会导致发送后的报文会丢失,如果发送方缓冲区比接收方大,其实根据缓冲区大小来发送报文的,因为缓冲区存放了发送的而且未接收的,接收方缓冲区满了后,不能处理后续接收的报文,所以接收方会及时通知发送方缓冲区剩余大小,发送方根据其来控制流量。

(3)、HTTP协议:位于传输层之上的应用层,其基于传输层的TCP可靠传输协议,提供了可靠数据传输的保障。是一种无状态的网络协议,采用简单的“请求/响应”消息交换模式,不会保存多次消息交换的会话状态,每次消息交换都是相互独立的,开始于请求发送,止于响应接收,每次消息交换都是一次完整的事物。

 

二、Web资源

1、定义:寄宿于Web(服务器)、通过HTTP协议获取或操作的“事物“,可以是磁盘上的文件、数据库里的记录,算法计算出的结果,可以使具体的事物,也可以是抽象的流程。

2、标识:可操作资源应该具有一个或多个唯一标识。标识的类型可以采用GUID,但是URI是达成共识的公认标准。URL和URN都是URI的一种表现形式。

3、URL:统一资源定位符,用来定义资源的唯一标识、位置、获取方式(协议,如HTTP)。

如:http://www.myhost.com/employees/001,表示00

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值