Go基础学习记录之REST(一)

{app.params.name}}{app.params.name}}{app.params.name}}

REST

REST是当今互联网上最流行的软件架构,因为它建立在明确定义的严格标准之上,并且易于理解和扩展。
越来越多的网站将他们的设计基于REST。
在本篇文章分享中,我们将仔细研究在Go中实现REST架构,并(希望)学习如何利用它来实现我们的利益。

什么是REST?

REST(REpresentational State Transfer)概念的第一次宣言是在2000年Roy Thomas Fielding的博士论文中,他也恰好是HTTP协议的共同创始人。
它指定了体系结构的约束和原则,使用此体系结构实现的任何内容都可以称为RESTful系统。

在我们了解REST之前,我们需要涵盖以下概念:

1. 资源(Resources)

REST是表示层状态转移,其中表示层实际上是资源表示层。那资源是什么?图片,文档或视频等都是资源的示例,可以通过URI定位。

2. 表示层(Representation)
资源是特定的信息实体,可以在表示层中以各种方式显示。例如,TXT文档可以表示为HTML,JSON,XML等;图像可以表示为jpg,png等。

URI用于标识资源,但我们如何确定其特定的表现形式?您将被引用到HTTP请求标头中的Accept和Content-Type;这两个字段描述了表示层。

3. State Transfer(状态转移)
每次访问网站的任何页面时,都会在客户端和服务器之间启动交互式过程。在此过程中,需要保存与当前页面状态相关的某些数据。但是,您会记得HTTP是无状态协议!很明显,我们需要在服务器端保存此客户端状态。
因此,如果客户端修改某些数据并希望保留更改,则必须有一种方法可以向服务器端通知新状态。

大多数情况下,客户端使用HTTP通知服务器状态更改。他们有四个操作来执行此操作:
-GET 用来获取资源
-POSTs 用于创建或更新资源
-PUT 更新资源
-DELETE 删除资源

总结以上内容:

1)每个URI代表一个资源。
2)有一个表示层,用于在客户端和服务器之间传输资源。
3)客户端使用四种HTTP方法来实现"表示层状态传输",允许它们在远程资源上运行。

实现REST的Web应用程序最重要的原则是客户端和服务器之间的交互是无状态的;
每个请求都应该封装所有必需的信息。
服务器应该能够在没有通知客户端的情况下随时重启。
此外,任何服务器都可以响应请求,这是云计算的理想选择。
最后,因为它是无状态的,所以客户端可以缓存数据以提高性能。

REST的另一个重要原则是系统分层,这意味着一层中的组件无法直接与其他层中的组件交互。
这可能会限制系统复杂性并鼓励底层组件的独立性。

当明智地遵守RESTful约束时,可以扩展Web应用程序以适应大量客户端。
使用REST架构还可以帮助减少客户端和服务器之间的延迟,简化系统架构并提高子系统端点的可见性。

版权声明

durban创作并维护的 小绒毛的足迹博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 博客( https://www.xiaorongmao.com ),版权所有,侵权必究。

本文永久链接: https://www.xiaorongmao.com/blog/100



版权声明

durban创作并维护的 小绒毛的足迹博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 小绒毛的足迹博客( https://www.xiaorongmao.com ),版权所有,侵权必究。

本文永久链接: https://www.xiaorongmao.com/blog/100