http请求方法

在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方法成功应用,则可能有多个响应状态码:

  • 202Accepted)状态代码,如果行动可能成功但尚未制定。

  • 204No Content)状态代码,如果该行为已经制定并且不提供进一步的信息。

  • 200OK)状态代码,如果该操作已经执行并且响应消息包括描述状态的表示。

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方法的补充,用来对已知资源进行局部更新

服务器可以通过将其添加到AllowAccess-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"

官方手册:https://www.php.cn/manual/view/35666.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值