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. Android 判断app是否安装

    1. private boolean isAppInstalled(Context context, String uri) { PackageManager pm = context.getPack ...

  2. 【Oracle】RedHat 6.5 安装 11gR2数据库

    1. 挂载操作系统光盘 [root@drz ~]# mount /dev/cdrom /mnt mount: block device /dev/sr0 is write-protected, mou ...

  3. 释放Win8.1 WinSxS冗余更新,微软Dism来解决

    命令提示符(管理员) dism /online /Cleanup-Image /StartComponentCleanup /ResetBase 有些文章不建议使用 /RestBase,可能会有风险.

  4. OpenCV: OpenCV人脸检测框可信度排序

    参考文章:http://blog.csdn.net/hua_007/article/details/45368607 使用OpenCV进行人脸识别时,使用 casecade.detectMultiSc ...

  5. EF test

    LibraryEntities db = new LibraryEntities(); private void btnSelect_Click(object sender, EventArgs e) ...

  6. Java同步的三种实现方式

    1.使用synchronized关键字修饰类或者代码块: 2.使用Volatile关键字修饰变量: 3.在类中加入重入锁 举例子:多个线程在处理一个共享变量的时候,就会出现线程安全问题.(相当于多个窗 ...

  7. lvs负载均衡net模式

    环境配置,一台双网卡的ens33,ens37,ens37的网关是ens33的IP,指定一下nginx ens33,192.168.30.22,ens37,172.16.1.1nginx  192.16 ...

  8. 切割窗口url

    var keyWords=location.href.split("?")[1].split("&"); console.log(keyWords) f ...

  9. JAVA关键技术

    通用技术方面 MVC 1)概念 MVC是一个架构模式,它分离了表现与交互.它被分为三个核心部件:模型-model.视图-view.控制器-controller 2)工作原理 所有的终端用户请求被发送到 ...

  10. 【*2000】【2018-2019 ICPC, NEERC, Southern Subregional Contest C 】Cloud Computing

    [链接] 我是链接,点我呀:) [题意] [题解] 我们可以很容易知道区间的每个位置有哪些安排可以用. 显然 我们优先用那些花费的钱比较少的租用cpu方案. 但一个方案可供租用的cpu有限. 我们可以 ...