请求方法是请求一定的Web页面的程序或用于特定的URL。

可选用下列几种:

  • GET: 请求指定的页面信息,并返回实体主体。
  • HEAD: 只请求页面的首部。
  • POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
  • PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
  • DELETE: 请求服务器删除指定的页面。
  • OPTIONS: 允许客户端查看服务器的性能。
  • TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。
  • PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。
  • MOVE: 请求服务器将指定的页面移至另一个网络地址。
  • COPY: 请求服务器将指定的页面拷贝至另一个网络地址。
  • LINK: 请求服务器建立链接关系。
  • UNLINK: 断开链接关系。
  • WRAPPED: 允许客户端发送经过封装的请求。
  • Extension-mothed:在不改动协议的前提下,可增加另外的方法。

当服务器响应时,其状态行的信息为HTTP的版本号,状态码,及解释状态码的简单说明。

现将5类状态码详细列出:

  • ① 客户方错误
    • 100 继续
    • 101  交换协议
  • ② 成功
    • 200  OK
    • 201  已创建
    • 202  接收
    • 203  非认证信息
    • 204  无内容
    • 205  重置内容
    • 206  部分内容
      • 207 - Multi - Status ( Not Standard HttpStatus Code
  • ③ 重定向
    • 300  多路选择
    • 301  永久转移
    • 302  暂时转移
    • 303  参见其它
    • 304  未修改(Not Modified)
    • 305  使用代理
  • ④ 客户方错误
    • 400  错误请求(Bad Request)
    • 401  未认证
    • 402  需要付费
    • 403  禁止(Forbidden)
    • 404  未找到(Not Found)
    • 405  方法不允许
    • 406  不接受
    • 407  需要代理认证
    • 408  请求超时
    • 409  冲突
    • 410  失败
    • 411  需要长度
    • 412  条件失败
    • 413  请求实体太大
    • 414  请求URI太长
    • 415  不支持媒体类型
  • ⑤ 服务器错误
    • 500  服务器内部错误
    • 501  未实现(Not Implemented)
    • 502  网关失败
    • 504  网关超时
    • 505 HTTP版本不支持

  关于实体头部的内容还可以有:

  • Last Modified :请求文档的最近修改时间。
  • Expires :请求文档的过期时间。
  • Connect-length:文档数据的长度。
  • WWW-authenricate:通知客户端需要的认证信息。
  • Connect-encoding :说明有无使用压缩技术。
  • Transfer-encoding :说明采用的编码变换类型。

  

  标准Http协议支持六种请求方法,即:

  • 0,GET
  • 1,HEAD
  • 2,PUT
  • 3,DELETE
  • 4,POST
  • 5,OPTIONS

  但其实我们大部分情况下只用到了GET和POST。

  如果想设计一个符合RESTful规范的web应用程序,则这六种方法都会用到。

  不过即使暂时不想涉及REST,了解这六种方法的本质仍然是很有作用的。大家将会发现,原来web也是很简洁明了的。下面依次说明这六种方法。

  • 0,GET:GET可以说是最常见的了,它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。
  • 1,HEAD:HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。有的人可能觉得这个方法没什么用,其实不是这样的。想象一个业务情景:欲判断某个资源是否存在,我们通常使用GET,但这里用HEAD则意义更加明确。
  • 2,PUT:这个方法比较少见。HTML表单也不支持这个。本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。举个例子:如一个用于提交博文的URL,/addBlog。如果用PUT,则提交的URL会是像这样的”/addBlog/abc123”,其中abc123就是这个博文的地址。而如果用POST,则这个地址会在提交后由服务器告知客户端。目前大部分博客都是这样的。显然,PUT和POST用途是不一样的。具体用哪个还取决于当前的业务场景。
  • 3,DELETE:删除某一个资源。基本上这个也很少见,不过还是有一些地方比如amazon的S3云服务里面就用的这个方法来删除资源。
  • 4,POST:向服务器提交数据。这个方法用途广泛,几乎目前所有的提交操作都是靠这个完成。
  • 5,OPTIONS:这个方法很有趣,但极少使用。它用于获取当前URL所支持的方法。若请求成功,则它会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。

  其实还有一个TRACE方法,不过这个基本上不会用到,这里就不介绍了。以上的六种方法,我们可以跟数据库的CRUD增删改查操作对应起来:

  

  1. CREATE :PUT
  2. READ:GET
  3. UPDATE:POST
  4. DELETE:DELETE

  这样一来就实现了HTTP和数据库操作(其实不光是数据库,任何数据如文件图表都是这样)的完美统一,这也是REST的精髓之一。

  http://blog.csdn.net/alextiger0/article/details/5836572

  http://chlotte.blog.51cto.com/318402/554758

  http://blog.sina.com.cn/s/blog_4c9ba2850100ftsy.html

  http://www.hulifeng.com/article/jishu/23.htm

  http://wenku.baidu.com/view/8f8f2025ccbff121dd36832e.html

HTTP协议中POST、GET、HEAD、PUT等请求方法以及一些常见错误 #Reprinted#的更多相关文章

  1. HTTP协议中POST、GET、HEAD、PUT等请求方法以及一些常见错误

    (来源:http://www.tuicool.com/articles/Ermmmyn) HTTP请求方法: 常用方法: Get\Post\Head (1)Get方法. 取回请求URL标志的任何信息, ...

  2. http中请求协议 GET和POST两种基本请求方法的区别

    GET和POST是什么?HTTP协议中的两种发送请求的方法. HTTP是什么?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议. HTTP的底层是TCP/IP.所以GET和POST的底 ...

  3. 在eclipse中从cvs下载项目,再部署到tomcat常见错误!

    1.先调出cvs视图 如果cvs插件还未安装,下载一个: 安装cvs插件:将features和pluguns文件夹里面的内容分别复制到eclipse安装路径下面对应的features和pluguns文 ...

  4. struts2 中的 addActionError 、addFieldError、addActionMessage方法的区别添加错误信息

    转自:https://www.cnblogs.com/wangyp/archive/2011/07/13/2104828.html 一.addActionError("错误内容") ...

  5. PBOC协议中对于所有电子存折/电子钱包应用的预处理

    下图给出了PBOC协议中规定的对电子存折/电子钱包应用的所有交易类型共有的预处理流程 图1 1.1 插入卡片 终端应具有检测IC卡是否已经插入读卡器的功能.如果IC卡已经插入,终端将继续执行1.2的应 ...

  6. http协议中用于上传多个文件的 multipart 字段

    大家好,我是许飞,微软拼音的开发实习生.在网络编程中,经常用到从服务器上“下载”一些数据,有时却要向服务器“上传”数据.曾在一个原型中使用了“multipart/form-data”格式向Web服务器 ...

  7. C#的HTTP协议中POST与GET的区别

    引言 HTTP协议我想任何IT人士都耳熟能详了,大家都能说出个所以然来.但是如果我问你HTTP协议的请求方法有哪些?POST与GET的差异?GET或POST传送数据量的大小有限制吗?HTTP响应的状态 ...

  8. HTTP 协议中的 Content-Encoding 和 Transfer-Encoding(内容编码和传输编码)

    转自:http://network.51cto.com/art/201509/491335.htm Transfer-Encoding,是一个 HTTP 头部字段,字面意思是「传输编码」.实际上,HT ...

  9. HTTP协议中状态码的应用

    HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码. 所有状态码的第一个数字代表了响应的五种状态之一.   Mark from 维基百科     消息 ...

随机推荐

  1. appium locator

    If you want to find out more about the UIAutomator library, then it might be helpful to check out ht ...

  2. SQL学习之汇总数据之聚集函数

    一. 1.我们经常需要汇总数据而不用把他们实际检索出来,为此SQL提供了专门的函数,以便于分析数据和报表生成,这些函数的功能有: (1)确定表中行数(或者满足单个条件或多个条件或包含某个特定值的行数) ...

  3. 试用cmd markdown

    欢迎使用 Cmd Markdown 编辑阅读器 我们理解您需要更便捷更高效的工具记录思想,整理笔记.知识,并将其中承载的价值传播给他人,Cmd Markdown 是我们给出的答案 -- 我们为记录思想 ...

  4. 关于在App_Code文件夹自定义类中Session无法使用

    由于前台页面需要调用App_Code中自定义类的函数,但在自定义类中找不到Session,解决方法如下: 新建一个类session,并自己定义函数GetSession(),引用命名空间 System. ...

  5. ASPxGridView-为每行添加序号

    添加一个新的非绑定列,使用CustomColumnDisplayText事件来分配序号给该列 <dx:GridViewDataTextColumn Caption="序号" ...

  6. 5.7.2.1 Math对象

    ECMAScript还为保存数学公司公式和信息提供了一个公共位置,即Math对象.与我们在JavaScript直接编写的计算功能相比,Math对象提供的计算功能执行起来要快得多.Math对象中还提供了 ...

  7. System类基础

    取时间差: public class SystemDemo01 {     public static void main(String[] args) {         long startTim ...

  8. 转: Nodejs 发送HTTP POST请求实例

    项目里面需要用到使用NodeJs来转发HTTP POST请求,把过程记录一下: exports.sendEmail = function (req, res) { res.send(200, req. ...

  9. 把WinXP装进内存 性能飚升秒杀固态硬盘

    现在用户新配置的电脑,内存很少有小于2GB的,配置4GB内存的朋友也有不少.容量如此大的内存,我们在使用电脑的日常操作中绝对用不完.而目前制约系统性能最大的瓶颈就是硬盘的传输速度,所以,这里教你怎么把 ...

  10. 使用Qt 开发图形界面的软件(尘中远)

    3DSlicer, a free open source software for visualization and medical image computing AcetoneISO:镜像文件挂 ...