Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url RESTful web服务所需的属性?_Url_Rest - Fatal编程技术网

Url RESTful web服务所需的属性?

Url RESTful web服务所需的属性?,url,rest,Url,Rest,我希望这不是一个愚蠢的问题,但今天我收到一条评论,说必须通过用户友好的url访问PHPWeb服务才能被认为是RESTful的。这是真的吗 谢谢 当然,这不是全部,但根据定义的约束,用户友好的url不是其中之一 REST体系结构样式描述了应用于体系结构的以下六个约束,同时让各个组件的实现自由设计: 客户机-服务器 统一的接口将客户端与服务器分开。这种关注点分离意味着,例如,客户机不关心数据存储,数据存储仍然是每个服务器的内部存储,因此客户机代码的可移植性得到了改进。服务器与用户界面或用户状态无关,

我希望这不是一个愚蠢的问题,但今天我收到一条评论,说必须通过用户友好的url访问PHPWeb服务才能被认为是RESTful的。这是真的吗

谢谢

当然,这不是全部,但根据定义的约束,用户友好的url不是其中之一

REST体系结构样式描述了应用于体系结构的以下六个约束,同时让各个组件的实现自由设计:

客户机-服务器

统一的接口将客户端与服务器分开。这种关注点分离意味着,例如,客户机不关心数据存储,数据存储仍然是每个服务器的内部存储,因此客户机代码的可移植性得到了改进。服务器与用户界面或用户状态无关,因此服务器可以更简单、更具可扩展性。服务器和客户端也可以独立更换和开发,只要它们之间的接口没有改变

无国籍

客户端与服务器之间的通信还受到请求之间服务器上没有存储客户端上下文的限制。来自任何客户端的每个请求都包含为请求提供服务所需的所有信息,并且任何会话状态都保存在客户端中。服务器可以是有状态的;此约束仅要求服务器端状态可通过URL作为资源寻址。这不仅使服务器更易于监控,而且使它们在部分网络故障时更可靠,并进一步增强了可扩展性

可缓存

与万维网一样,客户端可以缓存响应。因此,响应必须隐式或显式地定义自己是否可缓存,以防止客户端在响应进一步请求时重用过时或不适当的数据。管理良好的缓存部分或完全消除了一些客户机-服务器交互,进一步提高了可扩展性和性能

分层系统

客户端通常无法判断它是直接连接到终端服务器,还是连接到中间层。中间服务器可以通过实现负载平衡和提供共享缓存来提高系统的可伸缩性。它们还可以强制执行安全策略

按需编码(可选)

服务器可以通过传输可执行代码临时扩展或自定义客户端的功能。这方面的示例可能包括编译组件(如Java小程序)和客户端脚本(如JavaScript)

均匀界面

下面讨论的客户机和服务器之间的统一接口简化和解耦了体系结构,使每个部分都能够独立地发展。该接口的四个指导原则详述如下

REST体系结构的唯一可选约束是按需编码。如果服务违反了任何其他约束,则不能严格地将其视为RESTful

遵守这些约束,从而遵守REST体系结构风格,将使任何类型的分布式超媒体系统都具有理想的紧急特性,例如性能、可扩展性、简单性、可修改性、可见性、可移植性和可靠性


用户友好的url没有明确定义,因此不可能有这样的约束。用户友好取决于用户。没有这样的约束,HTTP是RESTful的,并且有大量非“用户友好”URL。

不,不是这样。一致且可读的URL有助于编写、理解和记录服务,但绝对不是必需的。@Multitut,我认为您需要阅读有关REST接口的内容并理解它是什么。这不仅仅是URL的问题。可能是URL的重复