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. 关于改变安卓Button样式,这里有一个好方法。

    首先,在drawable下创建一个新的xml文件(例如我创建的为button.xml).然后在里面输入以下代码. <item> <shape> <gradient and ...

  2. Linux通信之异步通知模式

    [参考]韦东山 教学笔记 为了使设备支持异步通知机制,驱动程序中涉及以下3项工作:1. 支持F_SETOWN命令,能在这个控制命令处理中设置filp->f_owner为对应进程ID. 不过此项工 ...

  3. dubbo之多注册中心

    Dubbo 支持同一服务向多注册中心同时注册,或者不同服务分别注册到不同的注册中心上去,甚至可以同时引用注册在不同注册中心上的同名服务.另外,注册中心是支持自定义扩展的. 多注册中心注册 比如:中文站 ...

  4. 安卓Queue的使用

    Queue的成员函数        add        增加一个元索                     如果队列已满,则抛出一个IIIegaISlabEepeplian异常       rem ...

  5. POJ_3020_最小路径覆盖

    Antenna Placement Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8721   Accepted: 4330 ...

  6. C# 判断字符串是否左包含

    //测试字符串 左包含 //string str = "AAABBBCCC"; //char[] ss = str.ToArray(); //0-8 字符数组 //char[] s ...

  7. PyCharm与GitHub环境配置

    转载地址:https://blog.csdn.net/xierhacker/article/details/70053162 一.准备工作 Ⅰ.git下载和安装 要连接GitHub,首先git是必不可 ...

  8. node jsonwebtoken

     jsonwebtoken是node版本的JWT(JSON Web Tokens)的实现.1.什么是JWT?Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于J ...

  9. javaee字符文件的复制

    package Zy; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWrit ...

  10. Keras学习基础(2)

    目录: Keras的模块结构 数据预处理 模型 网络层 网络配置 Keras中的数据处理 文本预处理 序列预处理 图像预处理 Keras中的模型 Sequential顺序模型 Model模型[通用模型 ...