如果您不熟悉API(应用程序编程接口),那么在您遇到REST之前不久就会如此,REST是一种便于跨网络的运算机系统之间通信的架构风格。那么REST最重要的是什么?在本指南中,当我们深入研究万维网背后的基础技术时,我们将回答这些问题和其他问题。HTTP和万维网REST是一种体系结构样式,描述了分布式应用程序应如何相互交互。但要真正了解REST是什么,第一需要了解两个概念:资源,类似于Web的名词–它们描述了客户端可能想要从服务器中提取的“事物”(例如,组成网页的文档和文件)。HTTP谓词,它是Web的动词–它们描述了您可以对资源执行的“操作”,例如GET,POST,PUT和DELETE。在现实世界中,将动词应用于名词是我们人类每天都在做的事情,没有什么麻烦。你可以从咖啡桌上“取出”遥控器,“喝”咖啡,然后“松开”松饼,没有任何混淆。人机界面能够区分在时空约束下我们能做什么和不能做什么。在万维网上,您需要更具体。需要统一资源标识符(URI)来标识应用程序要访问的资源。需要HTTP(超文本传输协议),以便客户端知道可以将哪些“动词”应用于该资源。在浏览器中键入一种称为URL(统一资源定位符)的特别类型的URI并按Enter键,它会启动一系列事件,这些事件会导致向服务器发送GET请求,该服务器会响应您想要的网页访问,您现在拥有HTTP和万维网规范的标准实现。这一切都很好,但REST在哪里?要回答这个问题,请在世纪之交(1999年至2000年)将自己置于普通网络开发人员的角度。您知道如何使用HTTP和WWW规范设计Web应用程序。您的下一个逻辑问题是:设计良好的Web应用程序是什么样的?环绕这些规范设计软件的最佳实践是什么?REST是什么?因此,在2000年,HTTP规范的主要作者之一RoyT.Fielding发表了他着名的博士论文。它引入了REST的概念,并作为设计良好的Web应用程序应该是什么样子的首先个正式描述之一:REST提供了一组体系结构约束,当作为一个整体应用时,强调组件交互的可伸缩性,接口的通用性,组件的独立部署以及中间组件,以减少交互延迟,实施安全性并封装遗留系统。在接下来的部分中,我们将详细介绍RESTAPI的概念和约束。关注点分离:客户端和服务器所有RESTful应用程序必须尊重客户端和服务器之间的关注点分离。这意味着客户端和服务器可以完全互操作。只要客户端和服务器都同意数据格式(通常是JSON)和消息传递协议(HTTP),就可以在不影响服务器操作的情况下更改客户端的代码,并且可以在不影响服务器端的代码的情况下更改代码客户端。这种模块化使RESTful应用程序更加灵活,更易于扩展。可以采用面向组件的开发方法,只要它们访问正确的REST端点,不同的客户端和服务器就可以相互交互。无国籍RESTful应用程序是无状态的。客户端不需要知道服务器处于什么状态,反之亦然。这意味着服务器和客户端可以相互理解而无需查看以前的消息。这种约束背后的想法是,从客户端到服务器的每个请求都应该包含服务器理解请求所需的所有上下文,而不依赖于存储在服务器上的任何上下文。换句话说,会话状态完全保留在客户端上。无国籍约束有明确的权衡。您可以通过重复数据传输的形式增添每次交互的网络开销,从而获得可见性,可靠性和可扩展性。幸运的是,有一个解决方案:缓存。可缓存为了弥补无状态约束对客户端–服务器交互所带来的网络效率,RESTful服务必须支持缓存,即能够沿请求路径存储频繁访问的数据的副本。高速缓存约束要求将对请求的响应中的数据标记为可高速缓存或不可高速缓存。可缓存的响应打开了排除整个响应树的可能性。当发出请求时,第一检查高速缓存或一系列高速缓存以查找频繁访问的数据。仅当网络请求无法在任何缓存中找到它正在查找的数据时,网络请求才会传送到服务器。缓存可减少服务器上的带宽,延迟和总体负载。它还可以屏蔽用户的网络故障,因为他们仍旧可以查看存储在缓存中的网页。这就是您的ISP将缓存数据存储在其服务器上的浏览习惯上的原因。分层系统REST通过支持分层系统进一步分离了关注点。这是一种体系结构样式,涉及将行为封装到遵循系统层次结构的组件层中。例如,您可能有三个服务器,X,Y和Z.API部署在服务器X上,数据存储在服务器Y上,身份验证在服务器Z上处理。但是,就最终用户而言,他或她只是发送请求(例如,点击链接)并接收响应(指向新网页)。分层系统可以与请求路径上的共享中介处的高速缓存配对,通过跨多个网络和处理器的服务负载平稳来提高网络性能。统一界面RESTful应用程序的核心和灵魂是组件之间统一接口的想法。REST由四个接口约束定义:请求中的资源标识,可以命名的任何信息都是资源,可以通过URI识别资源,这与资源类型无关。通过表示来处理资源。这些资源的表示不是直接操纵资源,而是在整个系统中传递。HTML,XML,SVG,JSON和PNG是资源表示格式的示例。自我描述性的信息,每个客户端请求和服务器响应都包含作用于资源所需的所有上下文。基本上,每个响应都通过为每个响应中的答应操作提供URI来描述API的使用方式。有点争议的是,许多自称为RESTful的API都跳过了这个要求。但要真正的RESTful原始论文,HATEOAS是一个艰巨的要求。总而言之,组件之间有一个统一的接口,可以将实现与它们提供的服务分离,并激励独立的发展。换句话说,您实现了分布式网络中的应用程序之间的互操作性–RESTfulAPI。相关文章推举APPIUM–用于测试的自动化工具 Appium最初由DanCueller开发,用于利用AppleiOS的UI自动化框架对本机挪动应用程序运行[…]...谈天机器人开发框架 Chatbot也被称为IMBot,人工会话实体,谈话机器人和谈天机器人。它是一个自动化软件程序,通过音频谈天[…]...OAuth2.0:掩护客户端凭据的节点API 掩护服务器客户凭据可能很棘手,OAuth2.0是将用户身份验证卸载到其他服务的绝佳方法,但如果没有用户进行身[…]...php是什么?为什么要使用php? PHP(PHP的递归首字母缩写:HypertextPreprocessor)是JavaScript和Pyth[…]...Kubernetes教程–基础见识入门 Google创建了Kubernetes,以帮助开发人员更好地跨集群治理其容器化应用程序。尽管测试版于2014年[…]...RESTful,API初学者指南
以太网接口是运算机上答应使用以太网连接器的插口或插座,这些端口对于答应创建局域网(LANs)是必不可少的。以太网端口通常可以在网络设备上找到,包括运算机、路由器、视频游戏机、调制解调器和电视。以太网是一个通信系统,它答应多个本地设备共享信息并协同工作。例如,在一个办公室里,可能有6个工作人员,每个人都有自己的运算机,他们都需要访问相同的数据库、程序和外部设备,如打印机和扫描仪。通过使用以太网技术将每个设备连接到一个中央服务器或集线器,所有设备将能够访问相同的信息,并有效地与网络上的所有其他设备“交谈”。以太网接口答应使用有线连接创建网络,这个插座看起来很像一个大的电话插孔,可以插入以太网电缆。插口和电缆通常只用于近距离连接设备,比如在同一栋建筑中,因为跨城市铺设数百公里的电缆或跨大陆铺设数百或数千公里的电缆是不切实际的。运算机和打印机等设备通常有一个端口,答应它们加入网络,而调制解调器等网络设备可能有多个端口,答应连接多个组件。没有物理端口的设备仍旧可以通过以下两种方式之一连接到以太网,第一,许多较新的计算机都有一个内置的以太网卡,它答应创建不需要布线的无线以太网,从而取代了无线技术。第二,对于没有以太网卡或专用端口的设备,有时可以通过将无限网卡附加到USB端口来创建端口。物理以太网端口的一个缺点是容易损坏和难以修复,从端口插入或移除电缆时一定要非常小心,因为端口的物理元件可能会被损坏。修复以太网端口通常需要将设备发送回制造商或电子修理服务,这可能会非常昂贵。大多数人抉择购买一个新的以太网适配器,或者用一个USB端口连接到网络。相关文章推举SOAP是什么意思? SOAP全称“SimpleObjectAccessProtocol”,代表“简陋对象访问协议”,SOA[…]...营销是什么意思? 营销是教导消费者为什么抉择你的产品或服务而不是竞争对手的过程,如果你不这样做,那就不是营销。关键是找到正确的营[…]...NGINX是什么,以及它是如何工作的 NGINX,发音类似于“engine-ex”,是一个开源Web服务器,自从它最初作为Web服务器成功以来,现在[…]...HTTP是什么意思? HTTP代表“超文本传输协议”,HTTP是用于在web上传输数据的协议。它是Internet协议套件的一部分,[…]...SRAM是什么? SRAM表示“静态随机存取存储器”,SRAM是一种使用静态方法存储数据的RAM,在这种方法中,只要向内存芯片供[…]...以太网接口是什么?