完成第三小节的一部分
This commit is contained in:
22
8.3.md
22
8.3.md
@@ -1,4 +1,26 @@
|
||||
#8.3 REST
|
||||
RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。接下来让我们来了解这种架构到底是怎么样的?Go里面如何来实现RESTful。
|
||||
##什么是REST
|
||||
REST(REpresentational State Transfer)描述了一个架构样式的网络系统,比如Web应用程序。它首次出现在 2000年Roy Thomas Fielding的博士论文中,他是HTTP规范的主要编写者之一。REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。
|
||||
|
||||
Web应用程序最重要的REST原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。
|
||||
|
||||
在服务器端,应用程序状态和功能可以分为各种资源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每个资源都使用URI(Universal Resource Identifier)得到一个惟一的地址。所有资源都共享统一的界面,以便在客户端和服务器之间传输状态。使用的是标准的HTTP方法,比如 GET、PUT、POST 和 DELETE。
|
||||
|
||||
另一个重要的REST原则是分层系统,这表示组件无法了解它与之交互的中间层以外的组件。通过将系统知识限制在单个层,可以限制整个系统的复杂性,促进了底层的独立性。
|
||||
|
||||
我们看下图展示了REST的架构图,如何实现:
|
||||
|
||||

|
||||
|
||||
当REST架构的约束条件作为一个整体应用时,将生成一个可以扩展到大量客户端的应用程序。它还降低了客户端和服务器之间的交互延迟。统一界面简化了整个系统架构,改进了子系统之间交互的可见性。REST简化了客户端和服务器的实现。而且对于使用REST开发的应用程序更加容易扩展。
|
||||
|
||||
下图展示了REST的扩展新性:
|
||||
|
||||

|
||||
|
||||
##RESTful的实现
|
||||
|
||||
## links
|
||||
* [目录](<preface.md>)
|
||||
* 上一节: [WebSocket](<8.2.md>)
|
||||
|
||||
BIN
images/8.3.rest.png
Normal file
BIN
images/8.3.rest.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 317 KiB |
BIN
images/8.3.rest2.png
Normal file
BIN
images/8.3.rest2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 360 KiB |
Reference in New Issue
Block a user