根据 REST 架构,一个 RESTful Web 服务不应该在服务器上保持客户端状态。这种约束被称为无状态。客户端的职责是传递其上下文给服务器,然后服务器存储这个上下文以处理客户端的请求。比如,由服务器维护的会话是通过客户端传递的会话标示符识别的。

RESTful Web 服务应该遵守这一约束。我们已经在 RESTful Web 服务 - 方法 教程中见过,Web 服务方法不会存储调用它们的客户端的任意信息。

考虑如下 URI:

http://localhost:8080/UserManagement/rest/UserService/users/1

如果我们使用浏览器,使用基于 Java 的客户端或者使用 postman 访问上面的 url,结果始终是 User XML 并且它的 ID 为 1,因此服务器并没有存储客户端相关的任意信息。

<user>
<id>1</id>
<name>mahesh</name>
<profession>1</profession>
</user>

无状态的优势

下面是 RESTful Web 服务中无状态的好处:

  • Web 服务可以独立对待每个请求方法。
  • Web 服务不需要维护客户端先前的交互。简化了应用程序设计。
  • HTTP 本身是一个无状态协议,RESTful Web 服务可与 HTTP 协议无缝协作。

无状态的缺点

下面是 RESTful Web 服务中无状态的缺点:

  • Web 服务需要在每个请求中获取额外的信息,然后在客户端交互需要处理的情况下解读客户端状态。

RESTful Web 服务 - 无状态相关推荐

  1. 构建 RESTful Web 服务

    from: https://www.ibm.com/developerworks/cn/education/java/j-rest/j-rest.html 开始之前 关于本教程 REST 是一种思维方 ...

  2. netbeans连接数据库_NetBeans Java EE技巧3:数据库中的RESTful Web服务

    netbeans连接数据库 许多现代的Web应用程序正朝着使用HTTP使用无状态通信的方向发展. REST(表示状态转移)体系结构样式通常用于设计网络应用程序,而使用Java EE 7,很容易开发用于 ...

  3. NetBeans Java EE技巧3:数据库中的RESTful Web服务

    许多现代的Web应用程序正朝着使用HTTP使用无状态通信的方向发展. REST(代表性状态转移)体系结构样式通常用于设计网络应用程序,而使用Java EE 7,很容易开发用于数据库通信的RESTful ...

  4. 使用Java的RESTful Web服务

    REST代表"代表性状态转移",由Roy Fielding于2000年在其论文"建筑风格和基于网络的软件体系结构设计"中首次提出. REST是一种建筑风格. H ...

  5. 如何使用Retrofit,OkHttp,Gson,Glide和Coroutines处理RESTful Web服务

    Kriptofolio应用程序系列-第5部分 (Kriptofolio app series - Part 5) These days almost every Android app connect ...

  6. 使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务

    Spring,构建 Java™ 平台和 Enterprise Edition (Java EE) 应用程序的著名框架,现在在其模型-视图-控制器(Model-View-Controller ,MVC) ...

  7. RESTful Web 服务 - Java (JAX-RS)

    JAX-RS 表示用于 RESTful Web 服务的 Java API.JAX-RS 是一种基于 Java 的编程语言 API 以及为创建 RESTful Web 服务提供支持的规范.2.0 版本发 ...

  8. RESTful Web 服务 - 安全性

    因为 RESTful Web 服务使用 HTTP URLs 路径,因此以保护网站同样的方式维护 RESTful Web 服务是非常重要的.以下是设计 RESTful Web 服务时要遵循的最佳实践. ...

  9. RESTful Web 服务 - 寻址

    寻址指的是定位存储在服务器上的一个或多个资源.类似于定位某个人的邮寄地址. REST 架构中的每个资源都通过它的 URI(统一资源标示符)标识.URI 格式如下: <protocol>:/ ...

最新文章

  1. java aio事件模型_IO模型之AIO代码及其实践详解
  2. foxmail使用技巧
  3. 教学交流研讨会总结(一)
  4. access数据库应用系统客观题_随访数据库的建立:易侕DataWeb系统应用
  5. (43)VHDL实现译码器与解码器
  6. Cortex-M3的存储器系统
  7. 什么是交互设计?交互设计是用来干什么的?
  8. MSN 错误代码81000306 解决办法
  9. idea安装教程(不是jdr包哦)
  10. 服务器无线网卡禁止怎么办,台式机无线网卡被禁用了如何解决
  11. 设置不显示桌面上的计算机图标不见了,显示桌面,教您显示桌面图标不见了如何恢复...
  12. spark学习系列——6 Historyserver配置
  13. matlab norm函数使用_MATLAB 中NORM运用
  14. Github优秀作品
  15. 使用@Valid+BindingResult进行controller参数校验
  16. 安卓dts音频解码_安卓手机有什么音乐播放软件可以播放DTS音乐的呢?
  17. python列表增加一行_Python 列表中的修改、添加和删除元素的实现
  18. python 抢购还是js抢购好_一句JS帮你秒杀,抢购
  19. obs-studio源码分析:窗口、显示器(桌面)捕捉(转载)
  20. 如何通过积分玩法,来提高活跃度以及转化

热门文章

  1. AngularJS 作用域与数据绑定机制
  2. js中两个对象的比较
  3. 【机器学习】基于opencv实现目标检测,error LNK2001: unresolved external symbol public: virtual bool CvSVM::train...
  4. Boost库实现线程池学习及线程实现的异步调用
  5. ACCESS数据库连接字符串
  6. 论文笔记:KD-Net
  7. 重启redis命令_redis系列之——数据持久化(RDB和AOF)
  8. 学习性代码和使用不存在的代码
  9. 在IIS7中应用Application Request Routing配置反向代理
  10. apache配置CA证书通过https通信