[转]RESTful Web API中的Http协议语义
在REST的世界中,每种事物,比如一个产品、一个用户或是一个网页都被视为资源(Resource)。
资源表述(Representation of the resource)当浏览器为一个资源发送了HTTP请求后,服务器会发送一个文档作为回应,通常会是一个HTML文档,又或是图片、视频等。不论服务器返回了什么文档,我们都将这个文档称为资源表述(representation of the resource)。
Http语义协义Http定义了8种不同的类型消息,在RESTful中常用到的有以下几种:
POST基于给定的表述信息,在当前资源的下一级创建新的资源。
服务器对POST请求最常见的响应码是201(created),告之客户端资源创建成功;或是202(accepted),这表示服务打算按照提供的表述信息来创建一个资源,但是现在还没有真正的创建完成。
DELETE销毁一个资源。
当客户端想要删除一个资源时,可以发送一个DELETE请求。服务器返回的响应码是204(no content),表示删除成功。如果试图GET一个不存在的资源,服务器会返回错误的响应码404(not found)。
DELETE请求有一个重要的属性:它是幂等的。所谓幂等,就是发送多次请求对资源状态的影响和发送一次请的影响是一样的。
幂等性是一个很有用的特性,因为互联网不是一个可靠的网络,假设我们发送了一个DELETE请求,然后连接超时了,我们没有收到响应信息,所以我们无法得知资源是否被正确地删除了,但是我们可以利用DELETE请求的幂等性特性,再次发送DELETE请求并不断重试直到收到服务器响应为止。因为多次执行DELETE请求并不比只执行一次DELETE请求造成多的影响。
PUT用给定的表述信息替换资源的当前状态。
客户端一般通过GET请求获取资源表述,然后对其进行修改,最后将修改后的表述作为PUT请求的负载数据发送回服务器,修改完成后,服务器返回200或是204响应码。
PUT请求也是幂等的。
GET获取资源的某个表述(一个资源可以有多个表述)。
客户端通过发送GET请求来获取某个URL所标识的资源表述。服务器以application/vnd.collection+json格式返回资源表述。GET请法语最常见的响应码是200(OK)。
GET被定义为安全的HTTP方法,这是因为向服务器发送一条或是多条GET请求对资源的影响和没有发GET请求一样,不会对既有资源有作何影响。安全方法都是幂等的。
以上四个协议对应着数据库中的增(Insert)删(delete)改(update)查(select)操作。
下面两个方法是客户端在分析研究API的时候经常使用到的
HEAD获取服务器发送过来的头信息(不含资源表述信息)。
HEAD请求和GET请求一样,是安全方法,对HEAD请求最简单的理解就是轻量级别的GET请求,因为服务器只返回头信息,不需要返回资源表述信息。
用HEAD请求来代替GET请求,不会节约作何时间,但可以节省带宽的使用。
OPTIONS获取这个资源所能响应的HTTP方法列表。
OPTIONS请求是HTTP的原生探索机制。一个OPTIONS请求的返回结果包含这个资源所支持的所有HTTP方法,如GET/PUT/DELETE/POST等。
转载地址:http://blog.csdn.net/chris_mao/article/details/49452523?utm_source=tuicool utm_medium=referral
SpringBoot开发Restful Web项目 本文目录 1. 啥是Restful 2. 为啥要用Restful风格 3. Restful API到底啥样 4. 整一个项目实例咱就明白咧 4.1 创建项目 4.2 引入web依赖 4.3 编写实体类 4.4 定义服务类 4.5 开发控制器类 4.6 启动项目进行测试 5. 如何更好的测试捏?
黄威的世界 我是一个热衷IT技术的人,希望自己不断地设计开发出对别人非常有用的软件。有近7年的java开发经验(包括2年Android开发经验)和一年左右的linux使用经验。擅长Java Web后台开发 ,喜欢研究新的各种实用技术
相关文章
- RESTful风格的应用
- 用 shell 脚本做 restful api 接口监控
- Flask 学习-38.Flask-RESTful 序列化输出中文显示问题
- 使用 RESTful Web 服务
- Flask 学习-40.Flask-RESTful 结合蓝图使用
- oracle soap api,Web API与SOAP API的区别
- RESTful风格的应用
- Jersey框架一:Jersey RESTful WebService框架简介[通俗易懂]
- restful put post_RequestMappingHandlerMapping
- 开源 web ide_强大的开源Web编辑器(IDE)[通俗易懂]
- 打造更RESTful的身份认证【Spring Security】
- 软件测试|Spring Boot 的 RESTful API 设计与实现
- 使用Spring Cloud Feign调用RESTful API(二)
- Go-RESTful-处理请求和响应(一)
- 对RESTful Web API的理解与设计思路详解架构师
- RESTful API设计最佳实践详解架构师
- RESTful API设计概要详解编程语言
- restful之http讲解详解编程语言
- 访问SAP统一RFC连接接口(RESTFUL风格)详解编程语言
- SpringBoot+MySQL+MyBatis(Mapper.xml方式)实现简单的多表CRUD(RESTful风格HTTP接口)详解编程语言
- 器步步俱升:手把手教你配置Linux Web服务器(linux配置web服务)
- 应用Linux服务器:打开Web应用的大门(linux服务器web)
- 利用Web服务管理Redis(web服务redis)
- Spring Boot 2 快速教程:WebFlux Restful CRUD 实践(三)
- 使用Linux优化Web开发体验(web开发linux)
- 我们的企业的信息管理:建立在Oracle Web的基础上(oracle web)
- Web应用中的高效缓存——Redis与整合(web整合redis)
- Linux下建立Web服务器的步骤(linux下的web配置)
- 的应用Web开发中Redis的助力极大提升项目效率(web项目中redis)
- 优化Web项目强力支持Redis缓存(web项目redis缓存)
- Redis在Web开发中的光辉成就(web框架redis)
- 在Web服务器上使用Redis进行高性能处理(web服务器 redis)
- 使用redis提高Web工程系统性能(web工程配置redis)
- Redis在Web工程中的突破性发展(web工程 redis)
- 前端Web与Redis的连接创建更强大的服务(前端web连接redis)
- Oracle Web客户端让网络更加强大(oracle web客户端)
- 红色的记忆Redis记录Web日志(redis记录web日志)