赞
踩
在http报文介绍的时候初略的提到几种请求方法,现在下面的介绍下请求方法:
http 1.1 是支持8种请求方法主要是指定request-url请求不同资源的方式
1.GET 方法
官方:指定请求页面信息,并返回实体内容。
简单来说:通过get方法,我们可以使用指定的uri在服务器检索信息,并且返回具体内容,但不会对服务器数据进行改变,我们默认使用的请求方式就是get。
说明:GET请求是可以缓存的,我们可以从浏览器历史记录中查找到GET请求,还可以把它收藏到书签中;且GET请求有长度限制,仅用于请求数据(不修改)。
2.post方法
官方:向指定的资源提交数据处理请求(文件上传,数据提交),并且数据包含在请求正文。通过post方法可以创建新的资源或者对旧的资源进行修改。
简单来说:通过post方法,你可以进行数据上传,形成新的资源文件或者对旧的文件进行更新。主要用于新建数据。
POST请求永远不会被缓存,且对数据长度没有限制;我们无法从浏览器历史记录中查找到POST请求。
POST
将数据发送到服务器。请求主体的类型由Content-Type
标题指示。
Content-Type支持类型:
application/x-www-form-urlencoded
:
multipart/form-data
text/plain
示例
使用默认的application/x-www-form-urlencoded
内容类型的简单表单:
POST / HTTP/1.1Host: foo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 13say=Hi&to=Mom
使用multipart/form-data
内容类型的表单:
POST /test.html HTTP/1.1 Host: example.org
Content-Type: multipart/form-data;boundary="boundary" --boundary
Content-Disposition: form-data; name="field1" value1
--boundary
Content-Disposition: form-data; name="field2"; filename="example.txt" value2
3.HEAD方法
官方:类似于与get请求,但只返回herader信息
简单来说:HEAD方法跟GET方法请求类似,但是进行结果返回的时候,只返回请求状态,请求头部信息。
4.PUT方法
官方:从客户端发向服务端传送的数据用于取代指定的文档内容。定义了用完整的新体来覆盖资源。(主要用于更新数据)
简单来说:可以把数据上传到服务器取代旧的内容,形成数据的更新,如果没有需要更新的数据则可以创建资源,
它会将包含的元素放在所提供的URI下,如果URI指示的是当前资源,则会被改变。如果URI未指示当前资源,则服务器可以使用该URI创建资源。
put方法与POST的区别:https://www.cnblogs.com/mafeng/p/10207546.html (请参考这位大佬的文章)
5.DELETE方法
官方:请求服务器删除指定的页面
简单来说:用来删除服务器上指定的内容,主要通过uri指定目标资源,然后给与删除。
示例
请求
DELETE /file.html HTTP/1.1
回应
如果某个DELETE
方法成功应用,则可能有多个响应状态码:
202
(Accepted
)状态代码,如果行动可能成功但尚未制定。
204
(No Content
)状态代码,如果该行为已经制定并且不提供进一步的信息。
200
(OK
)状态代码,如果该操作已经执行并且响应消息包括描述状态的表示。
HTTP/1.1 200 OK
Date: Wed, 21 Oct 2015 07:28:00 GMT<html> <body> <h1>File deleted.</h1>
</body></html>
6.CONNECT方法
官方:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
简答来说:就是建立隧道,通过隧道可以更改请求连接(比如https)
7.OPTIONS方法
官方:允许客户端查看服务器性能。
简单来说:描述了目标资源的通信选项,会返回服务器支持预定义URL的HTTP策略。
8.TRACE方法(一般不启用,风险很大)
官方:回显服务请求收到的请求,主要用于测试和诊断。,
简单来说:通过该方法使得服务器原样返回任何客户端请求的内容。
风险:
1、恶意攻击者可以通过TRACE方法返回的信息了解到网站前端的某些信息,如缓存服务器等,从而为进一步的攻击提供便利。
2、恶意攻击者可以通过TRACE方法进行XSS攻击。
3、即使网站对关键页面启用了HttpOnly头标记和禁止脚本读取cookie信息,但是通过TRACE 方法恶意攻击者还是可以绕过这个限制读取到cookie信息。
9.PATCH
官方:应用于局部修改的资源。
简单来说:PATCH方法是新引入的,是对PUT方法的补充,用来对已知资源进行局部更新
服务器可以通过将其添加到Allow
或Access-Control-Allow-Methods
(for CORS)响应头中的列表中来通告其支持。
展示:
PATCH /file.txt HTTP/1.1
示例
请求
PATCH /file.txt HTTP/1.1 Host: www.example.com
Content-Type: application/example
If-Match: "e0023aa4e"Content-Length: 100[description of changes]
响应
204
响应代码表示成功响应,因为响应不包含消息正文。
HTTP/1.1 204 No Content
Content-Location: /file.txt
ETag: "e0023aa4f"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。