`

restful 笔记01

阅读更多

restful 笔记

如何保持可见性?

(a)使用HTTP方法(例如GET,POST,PUT)时,其语义要与HTTP所规定的语义保持一致,并添加适当的标头来描述请求和响应.

(b)使用适当的状态码和状态消息,以便代理,缓存和客户端可以判断请求的结果.状态码是一个整数,状态消息是文本

 

如何保证安全性和幂等性?

实现GET,OPTIONSHEAD 方法时,不要引起任何副作用.当客户端重新提交一个GET,HEAD,OPTIONS,PUT或DELETE请求时,确保服务器提供同样的表述形式,并发情况除外.

GET,OPTIONS HEAD 看做是只读操作

除了POST以外的所有方法都是幂等性

安全性和幂等性均不保证反复请求能拿到相同的response。以 DELETE 为例,第一次DELETE返回200表示删除成功,第二次返回404提示资源不存在,这是允许的。

 

如何保证DELETE 方法是幂等性?

这意味着就算服务器在前一个请求中已经删除了资源,它也必须返回200 响应码.

但实际上,要把DELETE实现为幂等操作,需要服务器追踪所有已经删除的资源.否则,它可能会返回一个404响应码.

解决方法:

不做物理删除,而只是修改状态而已.

 <RESTful Web Services Cookbook.pdf>下载地址:
http://pan.baidu.com/s/1dD4qn6L

参考:http://www.ruanyifeng.com/blog/2014/05/restful_api.html

http://article.gitos.cn/2015/Aurthur/Principles-of-RESTful-API-Design.html?utm_source=tuicool&utm_medium=referral

0
0
分享到:
评论

相关推荐

    thinkphp6 RESTful API开发

    thinkphp6 RESTful API开发 开发过程记录笔记 https://blog.csdn.net/weixin_41120504/article/details/115638094

    Qt+Cutelyst学习笔记(二十七)win10+Qt5.15.2+qmake实现一个简单的RESTful服务器 示例源码

    Qt+Cutelyst学习笔记(二十七)win10+Qt5.15.2+qmake实现一个简单的RESTful服务器 示例源码 https://blog.csdn.net/aggs1990/article/details/124115368 CSDN审核可能较慢,如无法下载,可以过段时间再回来看下

    restful前后端分离开发笔记

    在IT行业中,前后端分离和RESTful风格是现代Web应用开发的重要组成部分,尤其在Java领域。前后端分离模式强调了前端和后端的功能独立性,而RESTful架构则是设计高效、可扩展网络服务的一种标准方法。 **前后端分离*...

    通用Mapper、RESTful Web Service SSM mybatis 笔记

    RESTful Web Service是一种遵循REST(Representational State Transfer,表述性状态转移)架构约束的Web服务设计风格。它强调资源的表示和通过HTTP方法(GET、POST、PUT、DELETE等)进行操作。在SSM框架中,可以通过...

    SpringBoot学习笔记 - 生成RESTful服务 - 项目Demo

    在本篇SpringBoot学习笔记中,我们将探讨如何利用SpringBoot框架构建RESTful服务,并通过一个实际的项目Demo来加深理解。REST(Representational State Transfer)是一种软件架构风格,广泛应用于Web服务设计,它...

    SpringMVC笔记.pdf

    SpringMVC笔记.pdf SpringMVC是基于MVC模式的Web应用程序开发框架,它属于Spring Framework的一部分。SpringMVC提供了一个灵活的Web应用程序开发解决方案,帮助开发者快速构建Web应用程序。 一、SpringMVC简介 ...

    ASP.NET课堂笔记笔记

    - ASP.NET Web API是用于构建RESTful服务的框架,笔记可能涵盖HTTP动词、路由、媒体类型格式化和自定义消息处理器等内容。 12. ** SignalR实时通信** - SignalR提供了实时双向通信的能力,常用于聊天应用、通知...

    达内部分笔记达内部分笔记

    6. **后端开发**:服务器端编程,如Node.js、Java Spring Boot等,RESTful API设计,以及数据库连接和操作。 7. **操作系统**:进程管理、内存管理、文件系统、网络通信等基础知识。 8. **计算机网络**:TCP/IP...

    cloudnote(云笔记)项目

    为了实现跨设备的数据同步,需要采用RESTful API或者GraphQL接口,使得客户端应用(例如Web、Android、iOS)能与服务器进行数据交互。此外,可能还需要使用WebSockets实现实时更新,确保用户在不同设备上的笔记保持...

    RESTfulAPI:.net 5构建RESTful API,杨旭学习编码和笔记

    在.NET 5中构建RESTful API是现代Web服务开发中的常见任务,这主要得益于REST(Representational State Transfer)架构风格的广泛采纳。RESTful API设计原则强调资源的表述和状态转移,通过HTTP协议来实现客户端与...

    Python-定位个人笔记和公司内部知识仓库基于djangovue的笔记软件

    为了实现前端与后端的数据通信,项目可能会使用Django REST框架来创建RESTful API接口。这些接口允许Vue.js前端通过HTTP请求获取和更新数据,实现动态加载和实时保存。 7. 安全性与性能优化: 在设计过程中,安全...

    云笔记项目

    7. **RESTful API设计**:为了实现跨平台的数据交换,云笔记项目可能采用了REST(Representational State Transfer)架构风格来设计API。这些API遵循统一的URI(Uniform Resource Identifier)和HTTP方法,便于...

    尚硅谷springboot核心技术笔记

    Spring Boot中的Web开发是重点,笔记涵盖了RESTful API设计、Spring MVC、Thymeleaf模板引擎等内容。RESTful API是现代Web服务的标准设计模式,Spring Boot通过@Controller和@RequestMapping注解轻松实现。Spring ...

    java云笔记代码与文档

    【Java云笔记代码与文档】项目是一个以Java技术为核心的云端笔记应用实现,旨在提供一个便捷、高效的在线笔记存储和管理平台。在这个项目中,开发者利用Java的特性与强大的开源库,构建了一个支持多用户、多设备同步...

    达内云笔记源码

    5. **RESTful API**:云笔记可能通过RESTful API提供服务,允许用户通过HTTP协议创建、读取、更新和删除笔记。这种设计使得应用可以与其他系统集成,如移动应用或者第三方服务。 6. **身份验证与授权**:对于云服务...

    cloudnote云笔记基础资料含sql

    5. **RESTful API设计**:如果CloudNote提供API供其他应用集成,那么理解RESTful API的设计和调用方法也是必要的。 6. **版本控制**:可能涉及到Git或其他版本控制系统,用于项目协作和版本管理。 7. **文件系统和...

    2020年谷粒商城md笔记

    谷粒商城最新2020年课程笔记 如侵权请联系删除 技术涵盖:微服务架构+分布式+全栈+集群+部署+自动化运维+可视化CICD,对标阿里P6/P7,冲击40-60w年薪。 项目由业务集群系统+后台管理系统构成,打通了分布式开发及...

    java云笔记

    6. **RESTful API设计**:云笔记可能提供了RESTful风格的API,允许用户通过HTTP方法(GET、POST、PUT、DELETE)来操作笔记。这种设计使得应用更具可扩展性和互操作性。 7. **前端技术**:前端可能使用HTML5、CSS3和...

    狂神说笔记(最全).zip

    后端开发则涉及Node.js、Spring Boot、Django、Flask等后端框架,以及RESTful API设计和数据库交互。 总的来说,这份“狂神说笔记(最全).zip”是一个全面的IT学习资源库,无论你是初学者还是有经验的开发者,都能...

    ssm项目,包含restful风格 的增删改查

    4. 学习笔记:项目中可能包含了关于如何搭建SSM环境、配置各个框架、编写RESTful API接口、测试接口等内容的学习笔记。这些笔记对于初学者来说是宝贵的参考资料,有助于理解整个项目的构建过程和工作原理。 5. 项目...

Global site tag (gtag.js) - Google Analytics