运用 HTTP
当构建一个需要让浏览器(客户端)的 JavaScript 程序和服务器端的程序进行通信的系统时,有一些不同的方式可以实现这个功能。
一个常用的方法是远程过程调用,通信遵从正常的方法调用方式,不过调用的方法实际运行在另一台机器中。调用包括向服务器发送包含方法名和参数的请求。响应的结果则包括函数的返回值。
当考虑远程过程调用时,HTTP 只是通信的载体,并且你很可能会写一个抽象层来隐藏细节。
另一个方法是使用一些资源和 HTTP 方法来建立自己的通信。不同于远程调用方法addUser
,你需要发送一个PUT
请求到users/larry
,不同于将用户属性进行编码后作为参数传递,你定义了一个 JSON 文档格式(或使用一种已有的格式)来展示一个用户。PUT
请求的正文则只是这样的一个用来建立新资源的文档。由GET
方法获取的资源则是自愿的 URL(例如,/users/larry
),该 URL 返回代表这个资源的文档。
第二种方法使用了 HTTP 的一些特性,所以使得整体更简洁。例如对于资源缓存的支持(在客户端存一份副本用于快速访问)。HTTP 中使用的概念设计良好,可以提供一组有用的原则来设计服务器接口。