`

RESTFul service架构的安全性和幂等性

 
阅读更多

我们知道RestFul service架构基于http协议的,所有的请求都需要http来完成。 Http有两个非常重要的特性 安全性和幂等性。下面来解释一下这两个特性

安全性

安全性是指访问资源的时候资源本身不会发生改变,也就是资源是安全的。举个例子,使用get操作去获取一个资源,无论如何也不会引起资源本身发生改变,也不会引起服务器状态的改变。 用户可以放心的对uri进行get操作,而不会对服务器造成任何破坏。当然,安全性只是一个承诺,是否具备安全性完全要靠rest本身的实现。如果服务本身设计是有问题的,使用get操作也会破坏服务器状态。比如,使用get方法去delete一个资源: Get: http://server/resource/account/delete  我们在做rest设计的时候应该避免这样的设计。  

支持安全性的http方法有: Get, Head

 

幂等性

幂等性是一个数学概念,数学上的解释为   f(x) = f(f(x))

http的幂等性是指,对同一个资源进行一次或者多次操作,最终资源的状态都是一样的。 比如我们要修改一个用户的年龄,当客户端向服务器发送一次put请求之后,处于种种原因没有收到回复,客户端就可以再次向服务器发送同样的请求,不会影响操作结果。 一个反向例子: 加入一个公司有很多员工,每个员工都有工龄,我们要设计一个增加员工工龄的api,方法是put, 每调用一次这个api就让员工的工龄增加1,这样做是不对的。

支持幂等性的http方法有: Put, Delete,

 

Post既不是安全的也不是幂等的

 

 

分享到:
评论

相关推荐

    大型分布式网站架构设计与实践.带目录书签.完整版.rar

    《大型分布式网站架构设计与实践》主要介绍了大型分布式网站架构所涉及的一些技术细节,包括SOA架构的实现、互联网安全架构、构建分布式网站所依赖的基础设施、系统稳定性保障和海量数据分析等内容;深入地讲述了...

    网站架构技术

    安全性 瞬时响应:网站的高性能架构 网站的性能测试 不同的视角 用户的视角 开发人员的视角 运维人员的视角 性能测试指标 响应时间 并发数 吞吐量 性能测试方法 性能测试 负载测试 ...

    RESTful Web Services 中文版.rar

    安全性...................................310 可靠消息传递.............................311 事务.....................................312 BPEL、ESB和SOA...........................313 小结...............

    智能家居物联网服务平台设计-论文

    台一方面为应用层提供 Web Service 接口和 MQTT 接口,另一方面为感知层提供 MQTT 协议的事件接口,数据存储方面采用 InfluxDB 存储时序数据。智能家居 服务平台,结合智能家居网关和应用前端,实现海量设备接入、...

    Subway-Dating:基于Restful风格的社交应用软件嵌入通用

    3.FACADE层用于封装传输层与显示层数据,屏蔽掉ENGINE层对数据的复杂操作,提高安全性。 4.SERVICE层用于封装暴露给外部调用的服务接口,方便外部接入微服务。 5.WEB层用作封装资源展示逻辑控制方法,使前端数据...

    基于微软Azure、.NET Core和Docker的博客系统.zip

    LTS虚拟机,运行了两个Docker容器:blog-web和blog-service,分别托管前端Web站点和后端RESTful服务。后端RESTful API服务没有做任何认证和授权,Web站点通过内部子网访问RESTful API服务,Docker容器运行在非托管...

    问答系统的系统设计方案.pdf

    ⽽架构也与此同义,为了实现系统的⾼性 能、⾼可⽤、易伸缩、可扩展、安全等各种技术架构⽬标,各⼤互联⽹公司提出各种解决⽅案,这些⽅案被业界复⽤,从⽽逐渐形成⼤型⽹ 站架构模式。 分层是企业应⽤系统中最常见...

    entref-spring-boot:使用Spring编写的RESTful DAL(数据库抽象层)参考实现

    具有CosmosDB后端的Azure App Service上的容器化Java REST服务项目健康API构建状态: UI构建状态: 基础架构构建状态:内容: 简介与概述(本文档)介绍创建该项目是为了演示在Azure上构建和运行“企业级”应用程序...

    java8集合源码-DLab:用于协作数据科学工作流的自助式故障安全探索环境

    控制台,用于创建和管理探索性环境。 它允许团队只需单击鼠标即可使用同类最佳的开源工具启动分析环境。 一旦建立,环境可以由分析团队自己管理,利用简单易用的 Web 界面。 逻辑架构 下图展示了 DLab 的高级逻辑...

    分布式业务层数据层框架Albianj2.zip

    后来,随着技术的发展,我们对于现有的腾讯文学、起点中文网等阅文集团旗下的站点也 进行了重构。在重构过程中,我们也都使用albianj作为底层框架来使用。 所以呢,从我们的使用的真实情况出发,albianj2是能抗...

Global site tag (gtag.js) - Google Analytics