RESTful Web 服务 - 无状态
根据 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 服务 - 无状态相关推荐
- 构建 RESTful Web 服务
from: https://www.ibm.com/developerworks/cn/education/java/j-rest/j-rest.html 开始之前 关于本教程 REST 是一种思维方 ...
- netbeans连接数据库_NetBeans Java EE技巧3:数据库中的RESTful Web服务
netbeans连接数据库 许多现代的Web应用程序正朝着使用HTTP使用无状态通信的方向发展. REST(表示状态转移)体系结构样式通常用于设计网络应用程序,而使用Java EE 7,很容易开发用于 ...
- NetBeans Java EE技巧3:数据库中的RESTful Web服务
许多现代的Web应用程序正朝着使用HTTP使用无状态通信的方向发展. REST(代表性状态转移)体系结构样式通常用于设计网络应用程序,而使用Java EE 7,很容易开发用于数据库通信的RESTful ...
- 使用Java的RESTful Web服务
REST代表"代表性状态转移",由Roy Fielding于2000年在其论文"建筑风格和基于网络的软件体系结构设计"中首次提出. REST是一种建筑风格. H ...
- 如何使用Retrofit,OkHttp,Gson,Glide和Coroutines处理RESTful Web服务
Kriptofolio应用程序系列-第5部分 (Kriptofolio app series - Part 5) These days almost every Android app connect ...
- 使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务
Spring,构建 Java™ 平台和 Enterprise Edition (Java EE) 应用程序的著名框架,现在在其模型-视图-控制器(Model-View-Controller ,MVC) ...
- RESTful Web 服务 - Java (JAX-RS)
JAX-RS 表示用于 RESTful Web 服务的 Java API.JAX-RS 是一种基于 Java 的编程语言 API 以及为创建 RESTful Web 服务提供支持的规范.2.0 版本发 ...
- RESTful Web 服务 - 安全性
因为 RESTful Web 服务使用 HTTP URLs 路径,因此以保护网站同样的方式维护 RESTful Web 服务是非常重要的.以下是设计 RESTful Web 服务时要遵循的最佳实践. ...
- RESTful Web 服务 - 寻址
寻址指的是定位存储在服务器上的一个或多个资源.类似于定位某个人的邮寄地址. REST 架构中的每个资源都通过它的 URI(统一资源标示符)标识.URI 格式如下: <protocol>:/ ...
最新文章
- java aio事件模型_IO模型之AIO代码及其实践详解
- foxmail使用技巧
- 教学交流研讨会总结(一)
- access数据库应用系统客观题_随访数据库的建立:易侕DataWeb系统应用
- (43)VHDL实现译码器与解码器
- Cortex-M3的存储器系统
- 什么是交互设计?交互设计是用来干什么的?
- MSN 错误代码81000306 解决办法
- idea安装教程(不是jdr包哦)
- 服务器无线网卡禁止怎么办,台式机无线网卡被禁用了如何解决
- 设置不显示桌面上的计算机图标不见了,显示桌面,教您显示桌面图标不见了如何恢复...
- spark学习系列——6 Historyserver配置
- matlab norm函数使用_MATLAB 中NORM运用
- Github优秀作品
- 使用@Valid+BindingResult进行controller参数校验
- 安卓dts音频解码_安卓手机有什么音乐播放软件可以播放DTS音乐的呢?
- python列表增加一行_Python 列表中的修改、添加和删除元素的实现
- python 抢购还是js抢购好_一句JS帮你秒杀,抢购
- obs-studio源码分析:窗口、显示器(桌面)捕捉(转载)
- 如何通过积分玩法,来提高活跃度以及转化
热门文章
- AngularJS 作用域与数据绑定机制
- js中两个对象的比较
- 【机器学习】基于opencv实现目标检测,error LNK2001: unresolved external symbol public: virtual bool CvSVM::train...
- Boost库实现线程池学习及线程实现的异步调用
- ACCESS数据库连接字符串
- 论文笔记:KD-Net
- 重启redis命令_redis系列之——数据持久化(RDB和AOF)
- 学习性代码和使用不存在的代码
- 在IIS7中应用Application Request Routing配置反向代理
- apache配置CA证书通过https通信