Http 的8 种请求方式:
HTTP1.0 中的三种请求方法: GET, POST 和 HEAD 方法。
1.get :向服务器获取资源
get 方法 用来请求访问 已被URI识别的资源。数据在地址栏中显示,放在 url 后面。指定的资源经过服务器解析后返回响应内容。安全性较低,传输的数据量较小。
2.post 请求:传输实体主体
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。post 请求可能会导致新的资源的建立和/或已有资源的修改。安全性比get 高,传输的数据量大。
3. put : 传输文件
put方法用来传输文件,要求在报文的主体中包含文件内容,然后保存到请求URI指定的位置(创建或完全替换更新)。因为在在http/1.1中的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全性问题,因此一般的Web网站不使用该方法
3. head :获得报文首部
head方法和get 方法很类似,但服务器不返回报文的主体部分,只返回响应状态和响应头。常常用于确认URI的有效性及资源更新的日期时间等。
HTTP1.1新增了五种请求方法:options, put, delete, trace 和 connect 方法。
4. put : 传输文件
put方法用来传输文件,要求在报文的主体中包含文件内容,然后保存到请求URI指定的位置(创建或完全替换更新)。因为在在http/1.1中的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全性问题,因此一般的Web网站不使用该方法
5. delete :删除文件
delete方法用来删除文件,是按请求URI删除指定的资源,与put 方法相反。
6. options : 用来查询 针对请求URI指定的资源 所支持的方法。
有以下几种用途:
(1)获取服务器支持的HTTP请求方法;也是黑客经常使用的方法。
(2)用来检查服务器的性能。例如:AJAX进行跨域请求时的预检,需要向另外一个域名的资源发送一个HTTP options请求头,用以判断实际发送的请求是否安全。
(3)检测到请求方法是options,不会有与服务器的数据交互。
7. trace :追踪路径
trace 用于回显服务器收到的请求,主要用于测试或诊断。
发送请求时,在Max-Forwards首部子弹中填入数值,每经过一个服务器,该数字减1, 当数值刚好减到0时,就停止继续传输,最后收到请求的服务器端则返回状态码 。
客户端通过trace方法可以查询发送出去的请求是怎样被加工修改/篡改的。这是因为,请求想要连接到源目标服务器可能会通过代理中转,trace方法就是用来确认连接过程中发生的一系列操作。
但是,trace方法本来就不怎么常用,再加上它容易引发XST(Cross-site Tracing, 跨站追踪)攻击,通常就更不会用到了。
8. connect : 要求用隧道协议代理
connect 方法 要求在于代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL(Secure Sockets Layer, 安全套接层) 和 TLS(Transport Layer Security, 传输层安全) 协议把通信内容加密后经网络隧道传输。