REST学习理解

文章具体内容来源于以下两篇博客

对于Restful具体实例讲解

文章阐述来自以下链接: Rest由来与基本理解

传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,必须考虑,如何开发在互联网环境中使用的软件。
RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。但是,到底什么是RESTful架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTful架构

起源

REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。
Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。
他这样介绍论文的写作目的:
“本文研究计算机科学两大前沿----软件和网络----的交叉点。长期以来,软件研究主要关注软件设计的分类、设计方法的演化,很少客观地评估不同的设计选择对系统行为的影响。而相反地,网络研究主要关注系统之间通信行为的细节、如何改进特定通信机制的表现,常常忽视了一个事实,那就是改变应用程序的互动风格比改变互动协议,对整体表现有更大的影响。我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构。”

REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。
Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。
他这样介绍论文的写作目的:
“本文研究计算机科学两大前沿----软件和网络----的交叉点。长期以来,软件研究主要关注软件设计的分类、设计方法的演化,很少客观地评估不同的设计选择对系统行为的影响。而相反地,网络研究主要关注系统之间通信行为的细节、如何改进特定通信机制的表现,常常忽视了一个事实,那就是改变应用程序的互动风格比改变互动协议,对整体表现有更大的影响。我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构。”

名称

Fielding将他对互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写。我对这个词组的翻译是"表现层状态转化"。
如果一个架构符合REST原则,就称它为RESTful架构。
要理解RESTful架构,最好的方法就是去理解Representational State Transfer这个词组到底是什么意思,它的每一个词代表了什么涵义。如果你把这个名称搞懂了,也就不难体会REST是一种什么样的设计。

URL 和URI
URL

通用方案语法
//<用户名>:<密码>@<主机>:<端口>/<url路径>
可能会省略“<用户名>:<密码>@”,“ :<密码>”,“ :<端口>”,和“/<url路径>”这些部分的某些或者全部。这些方案的特定数据以双斜线“//”开头来表明它遵从通用因特网方案语法。各个部分分别遵守如下规则:
• 用户名:任意的用户名称。有些方案(例如:ftp)允许使用用户名称的描述。
• 密码:任意的密码。如果存在的话,它紧跟在用户名后面并用一个冒号隔开
用户名(和密码)如果存在的话,其后紧跟一个商用符号“@”。在用户名和密码字段中出现的任何“:”,“@”或者“/”都要进行编码。注意空的用户名或者密码不同于没有用户名和密码;决不能在没有指定用户名的情况下指定密码。例如:URL:ftp://@host.com/的用户名为空并且没有密码,URL:ftp://host.com/没有用户名,而URL:ftp://foo:@host.com/的用户名是“foo”并且密码为空。
• 主机:网络主机的域名,或者它的以“.”分隔的四组十进制数字集合形式的IP地址。域名的形式在RFC1034[13]的3.5节和RFC1123[5]的2.1节中进行了描述,即用“.”分隔的域标志串,域标志以字母或者数字开头和结束,也可能包含“-”字符。最右边的域标志不能以数字开头,这样就在语法结构上将域名和IP地址区分开来了。
• 端口:指明链接的端口。大部分方案都给协议指定一个默认的端口。也可以随意指定一个十进制形式的端口,并用冒号与主机隔开。如果忽略端口,那么这个冒号也要忽略。
• url路径:定位符的其他部分由方案的特殊数据组成,这些特殊数据被称为“url-路径”。它提供了如何对特定资源进行访问的详细信息。注意主机(或端口)与url-路径间的“/”不是url-路径的一部分。url-路径的语法依赖于所使用的方案。也依赖于它在方案中的解释方法。

HTTP

HTTP URL 方案是用来标志因特网上使用HTTP(HyperText Transfer Protocol,超文本传输协议)的可达资源。HTTP协议在其他的地方进行了详细说明。本文只介绍了HTTP URL的语法。HTTP URL的形式如下:
http://:/ ?
其中和已经在3.1节说明过了。如果:部分省略,那么就使用缺省的端口80。不需要用户名和密码。 是一个HTTP选择器,是查询字符串。 ,和它前面的“?”都是可选择的。如果 和部分都没有,则“/”也可以省略。 和部分中的“/”,“;”和 “?”都是保留字符。“/”字符可以在HTTP中用来表示层次结构

URL组成部分:方案://主机:端口号/路径名:参数?查询组件#片段

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值