[转]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

相关文章
|
3月前
|
JSON 监控 API
掌握使用 requests 库发送各种 HTTP 请求和处理 API 响应
本课程全面讲解了使用 Python 的 requests 库进行 API 请求与响应处理,内容涵盖环境搭建、GET 与 POST 请求、参数传递、错误处理、请求头设置及实战项目开发。通过实例教学,学员可掌握基础到高级技巧,并完成天气查询应用等实际项目,适合初学者快速上手网络编程与 API 调用。
470 130
|
4月前
|
XML JSON API
识别这些API接口定义(http,https,api,RPC,webservice,Restful api ,OpenAPI)
本内容介绍了API相关的术语分类,包括传输协议(HTTP/HTTPS)、接口风格(RESTful、WebService、RPC)及开放程度(API、OpenAPI),帮助理解各类API的特点与应用场景。
|
6月前
|
缓存 安全 API
RESTful与GraphQL:电商API接口设计的技术细节与适用场景
本文对比了RESTful与GraphQL这两种主流电商API接口设计方案。RESTful通过资源与HTTP方法定义操作,简单直观但可能引发过度或欠获取数据问题;GraphQL允许客户端精确指定所需字段,提高灵活性和传输效率,但面临深度查询攻击等安全挑战。从性能、灵活性、安全性及适用场景多维度分析,RESTful适合资源导向场景,GraphQL则适用于复杂数据需求。实际开发中需根据业务特点选择合适方案,或结合两者优势,以优化用户体验与系统性能。
|
5月前
|
SQL 缓存 监控
SqlRest让SQL秒变Http API,还支持20+数据库(含国产数据库)
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
6月前
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
7月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
197 18
|
7月前
|
网络安全 开发者
如何解决HTTPS协议在WordPress升级后对网站不兼容的问题
以上就是解决WordPress升级后HTTPS协议对网站的不兼容问题的方法。希望能把这个棘手的问题看成是学校的管理问题一样来应对,将复杂的技术问题变得更加有趣和形象,并寻觅出解决问题的方式。希望你的网站能在新的学期得到更好的发展!
188 19
|
7月前
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
681 20
|
7月前
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
246 1
|
8月前
|
安全 网络安全 数据安全/隐私保护
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
417 3