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. Spring学习笔记之aop动态代理(3)

    Spring学习笔记之aop动态代理(3) 1.0 静态代理模式的缺点: 1.在该系统中有多少的dao就的写多少的proxy,麻烦 2.如果目标接口有方法的改动,则proxy也需要改动. Person ...

  2. RecyclerView 通用 Adapter

    先看使用方法

  3. 全文检索引擎及工具 Lucene Solr

    全文检索引擎及工具 lucence lucence是一个全文检索引擎. lucence代码级别的使用步骤大致如下: 创建文档(org.apache.lucene.document.Document), ...

  4. OpenCV:OpenCV图像旋转的代码

    OpenCV图像旋转的代码 cv::transpose( bfM, bfM ) 前提:使用两个矩阵Mat型进行下标操作是不行的,耗费的时间太长了.直接使用两个指针对拷贝才是王道.不知道和OpenCV比 ...

  5. (转)Bootstrap 之 Metronic 模板的学习之路 - (4)源码分析之脚本部分

    https://segmentfault.com/a/1190000006709967 上篇我们将 body 标签主体部分进行了简单总览,下面看看最后的脚本部门. 页面结尾部分(Javascripts ...

  6. Java Web_过滤器

    过滤器分类: Servlet2.5: request:用户直接访问页面时,Web容器将会调用过滤器. forward:目标资源是通过RequestDispatcher的forward访问时,该过滤器将 ...

  7. Django逻辑关系

    title: Django学习笔记 subtitle: 1. Django逻辑关系 date: 2018-12-14 10:17:28 --- Django逻辑关系 本文档主要基于Django2.2官 ...

  8. PHP并发IO编程实践

    PHP相关扩展 Stream:PHP内核提供的socket封装 Sockets:对底层Socket API的封装 Libevent:对libevent库的封装 Event:基于Libevent更高级的 ...

  9. ActionChains定位元素

    ActionChains UI自动化测试过程中,经常遇到那种,需要鼠标悬浮后,要操作的才会元素出现的这种场景,那么我们就要模拟鼠标悬浮到某一个位置,做一系列的连贯操作,Selenium给我们提供了Ac ...

  10. window.open方法被浏览器拦截的处理方式

    问题现象 当我们在一个 ajax 回调中执行 window.open 方法时,新页面会被浏览器拦截. 原因 在 Chrome 的安全机制里,非用户直接触发的 window.open 方法,是会被拦截的 ...