Mark

HTTP/S协议中Post、Get、Gead、Put等请求方法以及状态码
快速查找状态码:CTRL + F 常用HTTP请求方法: Get方法 取回请求URL标志的任何信息,浏览器...
扫描右侧二维码阅读全文
02
2019/01

HTTP/S协议中Post、Get、Gead、Put等请求方法以及状态码

快速查找状态码:CTRL + F

常用HTTP请求方法:

Get方法 取回请求URL标志的任何信息,浏览器地址栏中输入网址的方式访问网页时用的就是GET方式获取资源。
Post方法 为请求报文准备数据,即要求被请求服务器接受附在请求消息后面的数据,常用于提交表单。
Head方法 类GET方法,不响应页面Body部分,用于获取资源的基本信息,即检查链接的可访问性及资源是否修改。


请求方法是请求一定的Web页面的程序或用于特定的URL。可选用下列几种:

GET 请求指定的页面信息,并返回实体主体。

HEAD 只请求页面的首部。

POST 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。

PUT 从客户端向服务器传送的数据取代指定的文档的内容。

DELETE 请求服务器删除指定的页面。

OPTIONS 允许客户端查看服务器的性能。

TRACE 请求服务器在响应中的实体主体部分返回所得到的内容。

PATCH 实体中包含一个表,表中说明与该URI所表示的原内容的区别。

MOVE 请求服务器将指定的页面移至另一个网络地址。

COPY 请求服务器将指定的页面拷贝至另一个网络地址。

LINK 请求服务器建立链接关系。

UNLINK 断开链接关系。

WRAPPED 允许客户端发送经过封装的请求。

Extension-mothed 在不改动协议的前提下,可增加另外的方法。


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

1、客户方错误

100 继续

101 交换协议

2、成功

200 OK

201 已创建

202 接收

203 非认证信息

204 无内容

205 重置内容

206 部分内容

3、重定向

300 多路选择

301 永久转移

302 暂时转移

303 参见其它

304 未修改(Not Modified)

305 使用代理

4、客户方错误

400 错误请求(Bad Request)

401 未认证

402 需要付费

403 禁止(Forbidden)

404 未找到(Not Found)

405 方法不允许

406 不接受

407 需要代理认证

408 请求超时

409 冲突

410 失败

411 需要长度

412 条件失败

413 请求实体太大

414 请求URI太长

415 不支持媒体类型

5、服务器错误

500 服务器内部错误

501 未实现(Not Implemented)

502 网关失败

504 网关超时

505 HTTP版本不支持


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

Last Modified 请求文档的最近修改时间。

Expires 请求文档的过期时间。

Connect-length 文档数据的长度。

WWW-authenricate 通知客户端需要的认证信息。

Connect-encoding 说明有无使用压缩技术。

Transfer-encoding 说明采用的编码变换类型。


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

GET、HEAD、PUT、DELETE、POST、OPTIONS

但其实我们大部分情况下只用到了GET和POST。如果想设计一个符合RESTful规范的web应用程序,则这六种方法都会用到。不过即使暂时不想涉及REST,了解这六种方法的本质仍然是很有作用的。大家将会发现,原来web也是很简洁明了的。下面依次说明这六种方法。

GET GET可以说是最常见的了,它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。

HEAD HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。有的人可能觉得这个方法没什么用,其实不是这样的。想象一个业务情景:欲判断某个资源是否存在,我们通常使用GET,但这里用HEAD则意义更加明确。

PUT 这个方法比较少见。HTML表单也不支持这个。本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。举个例子:如一个用于提交博文的URL,/addBlog。如果用PUT,则提交的URL会是像这样的”/addBlog/abc123”,其中abc123就是这个博文的地址。而如果用POST,则这个地址会在提交后由服务器告知客户端。目前大部分博客都是这样的。显然,PUT和POST用途是不一样的。具体用哪个还取决于当前的业务场景。

DELETE 删除某一个资源。基本上这个也很少见,不过还是有一些地方比如amazon的S3云服务里面就用的这个方法来删除资源。

POST 向服务器提交数据。这个方法用途广泛,几乎目前所有的提交操作都是靠这个完成。

OPTIONS 这个方法很有趣,但极少使用。它用于获取当前URL所支持的方法。若请求成功,则它会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。


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

CREATE PUT

READ GET

UPDATE POST

DELETE DELETE

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


主机推荐

Last modification:February 16th, 2019 at 11:59 pm
如本文“对您有用”,欢迎随意打赏我,让我坚持创作!

4 comments

  1. 微信   Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 57.0.2987.98(Google Chrome 57.0.2987.98)

    写得很好,很喜欢,继续支持


    1. Mark   Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 71.0.3578.98(Google Chrome 71.0.3578.98)
      @微信

      有用就好,欢迎没事来坐坐


  2. 李李   Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 72.0.3610.2(Google Chrome 72.0.3610.2)

    受教了,大神


    1. Mark   Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 71.0.3578.98(Google Chrome 71.0.3578.98)
      @李李

      可以收藏下了,以后遇到错误代码可以快速检索。


Leave a Comment