方法                 描述 是否包含主体
GET  从服务器获得一份文档
HEAD  只从服务器获得响应报文的首部
POST  向服务器发送需要处理的数据
PUT  将请求的主体部分存储在服务器上
TRACE  对可能经过代理服务器传送到服务器上去的报文进行追踪
OPTIONS  决定在服务器上可以执行哪些方法
DELETE  从服务器上删除一份文档

注意:并非所有的服务器都都实现了这几个方法。有的服务器还实现了自己特有的HTTP方法,称为扩展方法。

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

HEAD、GET、OPTIONS和TRACE视为安全的方法,因为它们只是从服务器获得资源而不对服务器做任何修改;但是HEAD、GET、OPTIONS在用户端不安全,而POST则影响服务器上的资源。

GET虽然不修改服务器数据,但是GET方法通过URL请求来传递用户的输入;HEAD只获得消息的头部,但是数据传入也是通过URL。这样对客户端而言并不安全。

TRACE方法对于服务端和用户端一定是安全的

最新文章

  1. 利用spring boot创建java app
  2. C/C++ 记录时间
  3. android 数据库操作详解
  4. Java [Leetcode 67]Add Binary
  5. [LeetCode OJ] Decode Ways
  6. FreeBSD ipfw App配置Examples
  7. angular、bootstrap初稿搭建
  8. Angular - - $q 承诺与延迟
  9. pingo--util.go 源码阅读
  10. 小程序开发--移动端分辨率与rpx
  11. vim设置一个tab为4个空格,设置行号
  12. vue使用桌面Element-UI和移动端MintUI的UI框架
  13. 团队项目 NABCD分析java音乐播放器
  14. Shiro+Spring+SpringMVC+Mybatis整合
  15. 阿里云centos安装docker-engine实践
  16. CentOS 7.4下使用yum安装MySQL5.7.20 最简单的 (引用)
  17. GitHub客户端使用
  18. CRM 权限内可查看的记录数
  19. ASCII码与16进制的互相转换(表)
  20. HTMLCanvasElement.toBlob() 兼容性及使用

热门文章

  1. SpecFlow
  2. Ajax+Ashx实现以及封装成控件的实现
  3. 安装mysql-python报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 65: ordinal not in range(128)
  4. [转]UIWebView的Javascript运行时对象
  5. CMStepCounter Class Refernce
  6. wpf中数据绑定(Datacontext)的应用
  7. 【July】从头到尾彻底理解KMP
  8. tomcat创建一个windows服务
  9. LLVM小结
  10. 单一职责原则SRP