常用的HTTP方法
方法 | 描述 | 是否包含主体 |
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方法对于服务端和用户端一定是安全的
最新文章
- 利用spring boot创建java app
- C/C++ 记录时间
- android 数据库操作详解
- Java [Leetcode 67]Add Binary
- [LeetCode OJ] Decode Ways
- FreeBSD ipfw App配置Examples
- angular、bootstrap初稿搭建
- Angular - - $q 承诺与延迟
- pingo--util.go 源码阅读
- 小程序开发--移动端分辨率与rpx
- vim设置一个tab为4个空格,设置行号
- vue使用桌面Element-UI和移动端MintUI的UI框架
- 团队项目 NABCD分析java音乐播放器
- Shiro+Spring+SpringMVC+Mybatis整合
- 阿里云centos安装docker-engine实践
- CentOS 7.4下使用yum安装MySQL5.7.20 最简单的 (引用)
- GitHub客户端使用
- CRM 权限内可查看的记录数
- ASCII码与16进制的互相转换(表)
- HTMLCanvasElement.toBlob() 兼容性及使用
热门文章
- SpecFlow
- Ajax+Ashx实现以及封装成控件的实现
- 安装mysql-python报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 65: ordinal not in range(128)
- [转]UIWebView的Javascript运行时对象
- CMStepCounter Class Refernce
- wpf中数据绑定(Datacontext)的应用
- 【July】从头到尾彻底理解KMP
- tomcat创建一个windows服务
- LLVM小结
- 单一职责原则SRP