2-1 Restful中HTTP协议介绍
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协议介绍的更多相关文章
- 转:Http协议中Cookie详细介绍
Http协议中Cookie详细介绍 Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie.内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了, ...
- 无线物联网中CoAP协议的研究与实现【转】
无线物联网中CoAP协议的研究与实现 时间:2013-04-09 来源:电子科技 作者:汤春明,张 荧,吴宇平 关键字:CoAP 无线 物联网 协议 摘要:由于物联网中的很多设备都是资源受 ...
- Cas(03)——Cas Server中各配置文件介绍
Cas Server中各配置文件介绍 Cas Server中所有的配置文件都是放在WEB-INF目录及其子目录下的. 在WEB-INF/classes下的配置文件有: l cas-theme-def ...
- TCP/IP 协议介绍
转自http://blog.jobbole.com/104886/ 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是分层的,从底层至应 ...
- 第二章 ZAB协议介绍
ZAB ( ZooKeeper Atomic Broadcast , ZooKeeper 原子消息广播协议)是zookeeper数据一致性的核心算法. ZAB 协议并不像 Paxos 算法那样,是一种 ...
- JSON-RPC轻量级远程调用协议介绍及使用
这个项目能够帮助开发人员利用Java编程语言轻松实现JSON-RPC远程调用.jsonrpc4j使用Jackson类库实现Java对象与JSON对象之间的相互转换.jsonrpc4j包含一个JSON- ...
- [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
[转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls) http://blog.csdn.net/tttyd/article/details/12032357 RTP ...
- 聊聊 iOS 开发中的协议
前言 何为协议,简单来说在OC中我们使用关键字@protocol可以声明一个协议,并在协议中添加多个属性.方法供于遵循者实现,从某个角度上来说,这是一种不同于category机制的category.在 ...
- objective-c 中的关联介绍
objective-c 中的关联介绍 转载请注明CSDN博客上的出处: http://blog.csdn.net/daiyibo123/article/details/46471993 如何设置关联 ...
随机推荐
- PHP执行Mysql数据库的备份和还原
使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先查出需要备份的表的 ...
- IronPython中共享的C#基类如何向下转型
在项目中,我们使用IronPython来定义工作流脚本来以应对科研多变的需求.项目使用的主要语言仍然是C#,使用C#封装了各种基础服务与基础设施.Python脚本只使用C#提供的服务,或者说只定义了逻 ...
- ssl_protocols和ssl_ciphers应该怎么配置
http://wiki.nginx.org/HttpSslModule#ssl_ciphers 推荐配置: A) 在Apache 的 SSL 配置中禁用 SSLv3 和 SSLv3SSLProtoco ...
- C# 写入二进制文件
写入整型25 文件在MiniHex中显示 写入字符串I am happy 0A 6D - 6D - 这一行数据是C#把字符串转换为16进制形式 不知道为啥用MiniHex打开多了个0A 写入空&quo ...
- Apex语言(五)循环结构
1.循环结构 循环语句允许我们多次执行一个语句或一组语句(重执行语句). 2.while语句 只要给定条件为真,目标语句就会重复执行. [格式] while (循环条件){ 语句; } [流程图] ...
- python从TXT创建PDF文件——reportlab
使用reportlab创建PDF文件电子书一般都是txt格式的,某些电子阅读器不能读取txt的文档,如DPT-RP1.因此本文从使用python实现txt到pdf的转换,并且支持生成目录,目录能够生成 ...
- Commons IO
Common IO 是一个工具库,用来帮助开发IO功能 它包括6个主要部分 Utility classes – 包括一些静态方法来执行常用任务 Input – InputStream 和 Reader ...
- Android 性能测试初探(三)
书接上文 Android 性能测试初探(二) 本文接着往下聊,今天主聊 CPU 及 内存 看到这两个名词,做过PC性能测试的就比较熟悉了,同样的性能测试关注点 :) 首先说说内存,移动端关注的是内存消 ...
- case when用法小结
case 对比字段 when 值 then 输出结果 when 值 then 输出结果 ....else 输出结果 end 对比字段可以不在case后面确定 可以把条件直接写在when后面,如果对比字 ...
- 基于MATLAB的多功能语音处理器
一.设计功能 录制音频,保存音频 对录制的语音信号进行频谱分析,确定该段语音的主要频率范围: 利用采样定理,对该段语音信号进行采样,观察不用采样频率(过采样.欠采样.临界采样)对信号的影响: 实现语音 ...