`

[转]RESTful Web API中的Http协议语义

阅读更多

术语

在讲Http协议语义之前,我们先讲两个术语:资源资源表述

资源(Resource)

在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

 

分享到:
评论

相关推荐

    WebApi和访问WebApi两个项目(更新过)

    WebApi是Microsoft为构建RESTful服务提供的一种框架,主要用于创建HTTP服务,这些服务可以被各种客户端,如浏览器、移动设备或桌面应用所调用。在本项目中,我们有两个主要部分:WebApi项目和访问WebApi的项目。这两...

    restful api guidelines

    这遵循了HTTP协议的语义,提高了API的可理解性。 3. **状态码**:使用HTTP状态码来反馈请求的结果,如200(成功)、404(未找到)、401(未经授权)等,以提供明确的反馈信息。 4. **URI统一**:URI(Uniform ...

    RESTful API设计基础知识

    RESTful API设计是构建Web服务的关键技术,遵循一套基于HTTP协议的规范,旨在提供高效、分布式的系统架构。本文将深入探讨RESTful API设计的基础知识,包括其核心概念、原则和最佳实践。 REST(Representational ...

    RESTful API 设计最佳实践1

    这意味着API应使用HTTP协议的固有方法(GET、POST、PUT、PATCH和DELETE)来操作资源,这符合HTTP方法的语义。资源通常由名词表示,如“票”、“用户”和“小组”,而不是动词,避免暴露实现细节。每个资源都有相应的...

    .Net Core RESTful或WebAPI MVC Web应用程序

    在.NET Core中集成WebAPI,我们可以构建RESTful服务,处理HTTP请求并返回JSON或XML格式的数据。WebAPI支持各种HTTP动词,如GET、POST、PUT、DELETE,这与RESTful原则相吻合。此外,WebAPI还提供了模型绑定、验证和...

    Web API的设计与开发 阅读计划-雨帆1

    书中不仅涵盖了 Web API 的基本概念、历史发展,还对 RESTful API 设计原则、HTTP 协议的应用以及 API 安全问题进行了详尽的讲解。 首先,书中第一章介绍了 Web API 的重要性和设计理念。1.1 节讲述了 Web API 的...

    Spring Boot 构建一个 RESTful Web 服务

    Spring Boot 构建 RESTful Web 服务 Spring Boot 构建 RESTful Web 服务是当前最流行的一种互联网软件架构。REST(Representational State Transfer,表述性状态转移)是一种软件架构风格,由 Roy Thomas Fielding ...

    蛤:使用Web应用程序前端将命令行应用程序快速转换为RESTful Web服务。 您提供了命令行应用程序的规范,其输入,输出和参数,并且CLAM环绕了您的应用程序以形成完整的RESTful Web服务

    RESTful是一种基于HTTP协议的Web服务设计风格,以资源为中心,通过HTTP方法(如GET、POST、PUT、DELETE)来操作这些资源。这意味着开发者可以使用浏览器或其他HTTP客户端来调用原本只能在命令行环境下运行的应用,...

    WSMO-Lite和HRESTS:Web服务和Restful API的轻量级语义注释-研究论文

    可公开访问的服务的预期增长可以从工具支持和自动化中受益匪浅,这两者都是语义Web服务(SWS)框架的重点,特别是解决服务发现,组合和执行的问题。 作为第一个SWS标准,World Wide Web Consortium在2007年产生了一...

    restful-api-design-references:RESTful API设计参考文献列表,可帮助您更加彻底的了解REST风格的接口设计

    RESTful API设计是一种广泛应用于现代Web服务中的接口设计模式,其全称为Representational State Transfer(表述性状态转移)。这种设计风格强调简洁、无状态、基于标准的交互方式,以提高系统的可扩展性和可维护性...

    后台调用Restful

    在.NET框架中,我们可以使用ASP.NET Web API来构建RESTful服务。这是一个专门用于构建HTTP服务的框架,它可以轻松地与各种客户端,包括浏览器和移动设备进行交互。Web API支持路由、模型绑定、过滤器等特性,使得...

    微博情感分析,使用flask制作restful api,毕业设计衍生项目.zip

    这个项目的完成可以帮助学生和开发者了解如何将NLP任务集成到实际Web应用中,同时学习Flask框架和RESTful API的设计规范,提升全栈开发能力。通过此项目,你可以掌握从数据获取到Web服务部署的完整流程,对于提升...

    语义自动批量生成(java源码)+restAPI

    在这个项目中,REST API允许远程客户端通过HTTP协议调用TTS服务,进行文本转语音操作。API设计遵循REST原则,如使用HTTP动词(GET, POST等)表示操作,通过URL定位资源,以JSON或XML格式传递数据。这样的设计使得...

    Restful 接口风格设计 原版

    Restful接口风格设计是现代Web服务开发中广泛采用的一种API设计规范,其核心思想是通过HTTP方法(GET、POST、PUT、DELETE等)与资源URI(Uniform Resource Identifier)结合,来实现对网络资源的无状态操作。...

    webapi接口接入文档1

    【WebAPI接口接入文档1】是科大讯飞(iFlytek)提供的关于如何接入RESTful服务接口的详细指南,主要用于帮助开发者快速理解并实现与AIUI开放平台的交互。此文档适用于那些希望利用科大讯飞的语音识别、自然语言处理等...

    metacurate-lexicon:一种Web服务,通​​过Web GUI和RESTful API公开语义相似性搜索

    这是一个python / Flask Web应用程序,它公开接口(Web GUI和RESTful API)以在词典中查找语义相似(多词)的术语,以及将原始文本适当地预处理为句子和术语的功能令牌。 词典中的单词嵌入是由gensim word2vec实现...

    restful连通path路径的访问application

    在IT行业中,RESTful是一种广泛应用于Web服务设计的架构风格,它强调了资源的表述状态转移(Representational State Transfer)。RESTful API设计的核心是通过HTTP方法(GET, POST, PUT, DELETE等)来操作资源,使得...

    RESTful培训资料

    这种风格主要应用于HTTP协议上,因为HTTP协议本身具有广泛支持和良好的语义定义。 **1. RESTful的基本原则** - **统一接口**:RESTful服务通过统一的接口进行通信,包括资源的标识符、操作方法和自描述的消息。 - *...

    restful结合spring实例,带有两个例子

    在IT行业中,RESTful是一种广泛应用于Web服务设计的架构风格,它强调了资源的表述状态转移(Representational State Transfer)。Spring框架,作为Java生态系统中的核心组件,提供了强大的支持来实现RESTful服务。在...

    restful-webService

    RESTful Web Service是一种基于HTTP协议的轻量级Web服务架构风格,它强调资源的状态转移,使得Web服务更符合Web的语义。在这个项目中,"restful-webService" 提供了一个框架,用于构建RESTful风格的服务,包括客户端...

Global site tag (gtag.js) - Google Analytics