Restful是一种基于资源的软件架构风格,所以从定义上来说是跟HTTP无关的。但是本课程提到的Restful API是基于HTTP协议的一种实现。所有相关知识都是基于现有的HTTP协议而来,并没有对HTTP协议进行扩充。

关于HTTP协议,IFC文档中有详尽的知识。有兴趣的学员可以了解一下。HTTP协议中与Restful API关系密切的部分。

HTTP协议是应用层的协议,它的特点是简洁、快速。

在HTTP协议中默认端口是80。如果你访问的是HTTPS协议的话,默认端口是443。path是资源路径,在同一个主机中会有很多的资源。如何标识到这些资源就需要使用到路径参数。query-string参数是发送给HTTP服务器的一个查询字符串。一般用来对资源做筛选操作。

而最后是锚。比如说我们在写一个API文档,一般来说API文档都会写在同一个链接上面。而如果需要定位到特定的章节,或者是特定函数啊等等的一些使用方法就需要用到锚链接。鼠标点击之后可以直接前往到该链接所指向的位置。

一般来说如果你获取资源就需要使用GET请求,如果需要向服务器发送数据就需要使用POST请求。这是两个非常常用的方法。HEAD请求方式可能有些学员用的并不是很多。其实在我们平时的开发中主要就使用到POST请求和GET请求方式。

HEAD请求:它的请求方式是请求获取由请求路径所标识的资源的响应消息报头。一般来说当你不需要真正获取消息的响应体的时候,只需要获取资源的一个简要介绍的时候,比较说资源的创建时间和它的最后修改时间的时候就可以使用HEAD请求方式。

接下来的三种请求方式也不是很常用。PUT 请求服务器存储一个资源,并用请求路径作为其标识。PUT 方法一般在更新资源的时候比较常用,DELETE请求方式请求服务器删除请求资源路径所代表的资源。该方式也使用的很少。但是在Restful API中,是一个非常常用的方式。因为我们对资源的操作无非就是创建、编辑、查询和删除。

最后是OPTIONS请求方式。OPTIONS请求方式一般在查询服务器的性能或者查询与资源相关的选项和需求的时候用到。比如说我需要获取服务器允许我对资源进行哪些操作就可以使用OPTIONS请求。OPTIONS请求还涉及到一个比如说类似于访问频率限制的一个参数。

响应状态码在HTTP协议中是非常重要的部分。在IFC文档中定义了很多的响应状态码。但是我们实际开发中用到的并不是很多。所以我们目前只需要了解常用的状态码就可以了。

200 状态码 这个标识当前客户端请求成功,服务端也处理成功。

400 Bad Request 只是当前客户端请求有语法错误,不能被服务器所理解。所以本次请求并没有成功。

401 Unauthorized 服务器收到本次请求但是请求的资源需要授权访问而客户端并没有授权所以本次请求被服务器拒绝提供服务。

一般以5开头的状态码都是服务器的内部错误。500就是服务器内部错误。这时候一般是服务器的程序发生了不可预期的错误,而不能被正确处理。这时候会返回500错误。

一般在服务器性能达到瓶颈之后就会拒绝以后的服务。

2-1 Restful中HTTP协议介绍的更多相关文章

  1. 转:Http协议中Cookie详细介绍

    Http协议中Cookie详细介绍 Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie.内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了, ...

  2. 无线物联网中CoAP协议的研究与实现【转】

    无线物联网中CoAP协议的研究与实现 时间:2013-04-09 来源:电子科技 作者:汤春明,张 荧,吴宇平 关键字:CoAP   无线   物联网   协议 摘要:由于物联网中的很多设备都是资源受 ...

  3. Cas(03)——Cas Server中各配置文件介绍

    Cas Server中各配置文件介绍 Cas Server中所有的配置文件都是放在WEB-INF目录及其子目录下的. 在WEB-INF/classes下的配置文件有: l  cas-theme-def ...

  4. TCP/IP 协议介绍

    转自http://blog.jobbole.com/104886/ 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是分层的,从底层至应 ...

  5. 第二章 ZAB协议介绍

    ZAB ( ZooKeeper Atomic Broadcast , ZooKeeper 原子消息广播协议)是zookeeper数据一致性的核心算法. ZAB 协议并不像 Paxos 算法那样,是一种 ...

  6. JSON-RPC轻量级远程调用协议介绍及使用

    这个项目能够帮助开发人员利用Java编程语言轻松实现JSON-RPC远程调用.jsonrpc4j使用Jackson类库实现Java对象与JSON对象之间的相互转换.jsonrpc4j包含一个JSON- ...

  7. [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

    [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls) http://blog.csdn.net/tttyd/article/details/12032357 RTP       ...

  8. 聊聊 iOS 开发中的协议

    前言 何为协议,简单来说在OC中我们使用关键字@protocol可以声明一个协议,并在协议中添加多个属性.方法供于遵循者实现,从某个角度上来说,这是一种不同于category机制的category.在 ...

  9. objective-c 中的关联介绍

    objective-c 中的关联介绍 转载请注明CSDN博客上的出处: http://blog.csdn.net/daiyibo123/article/details/46471993 如何设置关联 ...

随机推荐

  1. 如何使用SQL Developer创建数据库连接

    SQL Develope启动后,需要创建一个数据库连接,只有创建了数据库连接,才能在该数据库的方案中创建.更改对象或编辑表中的数据. 创建数据库连接的步骤如下. (1)在主界面左边窗口的“连接”选项卡 ...

  2. sql server 存储过程(事务,带参数声明,数据库瘦身)

    CREATE PROCEDURE procedureName (@var1 as varchar(50),@var2 as varchar(50)) --建立未发临时表 AS begin tran - ...

  3. java Web(4)

    Web 应用程序状态管理 通过隐藏表单域 hidden,cookie,session,重写URL来实现: cookie存在于客户端,浏览器关闭时失效 cookie原理:服务器在响应请求时将一些数据以“ ...

  4. 时序分析:ARIMA模型(非平稳时间序列)

    转载于一篇硕士论文.... ARIMA模型意为求和自回归滑动平均模型(IntergratedAut少regressive MovingAverageModel),简记为ARIMA(p,d,q),p,q ...

  5. 前端开发—HTML

    HTML介绍 web服务的本质 import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen( ...

  6. 操作符重载、继承(day08)

    二十 操作符重载 函数操作符"()" 功能:让对象当做函数来使用 注:对参数的个数.返回类型没有限制 eg: class A{...}; A a; //a.operator()(1 ...

  7. 构造函数和初始化表、this指针与常函数、析构函数、拷贝构造与拷贝赋值(day05)

    十四 构造函数和初始化表 ... 初始化表 )语法形式 class 类名{ 类名(形参表):成员变量1(初值),...{} }; )必须要使用初始化表的场景 -->如果有类 类型的成员变量,而该 ...

  8. open-ldap schema (2)

    schema介绍及用途 schema 是OpenLDAP 软件的重要组成部分,主要用于控制目录树中各种条目所拥有的对象类以及各种属性的定义,并通过自身内部规范机制限定目录树条目所遵循的逻辑结构以及定义 ...

  9. Hibernate事务管理-HibernateTransactionManager-对hibernate session的管理

    由于对SSH还停留在比较初级的应用水平上,今天在遇到一个疑惑时折腾了很久,具体问题是这样的, 有这么一个测试方法, public static void test1() { ApplicationCo ...

  10. 《奋斗吧!菜鸟》 第八次作业:Alpha冲刺 Scrum meeting 4

    项目 内容 这个作业属于哪个课程 任课教师链接 作业要求 https://www.cnblogs.com/nwnu-daizh/p/11012922.html 团队名称 奋斗吧!菜鸟 作业学习目标 A ...