增加图注释
This commit is contained in:
6
08.3.md
6
08.3.md
@@ -37,17 +37,23 @@ Web应用要满足REST最重要的原则是:客户端和服务器之间的交互
|
||||
|
||||

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

|
||||
|
||||
图8.6 REST的扩展性
|
||||
|
||||
## RESTful的实现
|
||||
Go没有为REST提供直接支持,但是因为RESTful是基于HTTP协议实现的,所以我们可以利用`net/http`包来自己实现,当然需要针对REST做一些改造,REST是根据不同的method来处理相应的资源,目前已经存在的很多自称是REST的应用,其实并没有真正的实现REST,我暂且把这些应用根据实现的method分成几个级别,请看下图:
|
||||
|
||||

|
||||
|
||||
图8.7 REST的level分级
|
||||
|
||||
上图展示了我们目前实现REST的三个level,我们在应用开发的时候也不一定全部按照RESTful的规则全部实现他的方式,因为有些时候完全按照RESTful的方式未必是可行的,RESTful服务充分利用每一个HTTP方法,包括`DELETE`和`PUT`。可有时,HTTP客户端只能发出`GET`和`POST`请求:
|
||||
|
||||
- HTML标准只能通过链接和表单支持`GET`和`POST`。在没有Ajax支持的网页浏览器中不能发出`PUT`或`DELETE`命令
|
||||
|
||||
Reference in New Issue
Block a user