例如,我不明白应该使用PUT来更新而不是POST的概念,当从html发送带有其值的表单时,一旦后端接收到这些值,所做的就是将代码写入以 PHP 为例,与数据库通信并进行查询以更新特定记录,无论方法是 PUT、POST 还是 GET。
使用其中一个或另一个之间的真正区别是什么?
例如,我不明白应该使用PUT来更新而不是POST的概念,当从html发送带有其值的表单时,一旦后端接收到这些值,所做的就是将代码写入以 PHP 为例,与数据库通信并进行查询以更新特定记录,无论方法是 PUT、POST 还是 GET。
使用其中一个或另一个之间的真正区别是什么?
根据ilpaijin的英文回答,所以这些是差异,要了解更多信息,我建议您阅读他的回答,它得到了很好的解释并带有清晰的示例。
该协议规定以下内容:
我放了一些指向 MDN web Docs 的链接,他们在其中解释并给出了每个示例和其他示例,以防您想阅读它并获得更好的信息。
我希望这个对你有用。
HTTP 是一种用于发送带有链接等的超文本文件的通信协议。和任何协议一样,它有一些规则,它的命令有特定的语义。
该命令
GET
用于向机器请求资源,例如 HTML 网页、图像等。来自机器(服务器)的唯一响应应该是资源(如果有的话)或错误消息。如果是这样,它将回复一条消息200 OK
,其中包含您请求的嵌入在该消息中的资源。如果你想要的是向服务器发送信息,例如通过一个表单,那么使用方法是正常的
POST
,它发送数据供服务器处理。来自服务器的响应应该只是这种处理状态的指示。另一方面,该方法
PUT
专注于更新服务器资源,也有其他差异,例如提供的 URI。有关Wikipedia和RFC 1945以及后续修订版中的 HTTP 协议的不同方法和用途的更多信息。
您还可以在此处获得有关 HTTP 响应代码的信息,这是服务器机器对请求的响应。
版:
虽然您可以使用 a
POST
来请求资源,但这样做是不行的。首先,它破坏了协议的语义。其次,您提到的 3 种方法并非在所有情况下都可以互换。GET
a和 a之间最明显的区别POST
是如何将任何额外信息传达给服务器。请求POST
有一个正文,其中添加了您要发送的信息,例如用户填写的表单字段。GET
另一方面,在请求中,发送到服务器的信息(应该是搜索过滤器等)直接放入请求的 URL 中。所以请求
GET
看起来像这样:GET http://www.google.es/search?q=http+get HTTP/1.1
加上一些带有元信息(语言、用户代理、mime 类型等)的标题。
问号右侧是在请求资源时提供给服务器的额外信息,如果有多个参数,则它们用 & 符号分隔。
另一方面,请求
POST
将在消息正文中而不是在 URL 中指示通常通过表单获得的额外信息,保留为:POST http://www.google.es/search HTTP/1.1
当然,后者只是一个例子。
此外,该方法
POST
允许您以不同的方式发送数据:作为纯文本,作为样式GET
但在正文中的文本字符串,或作为块数据(多部分),这使您在发送大量数据时更加灵活服务器(例如,在将代码文件上传到 GitHub 时,想象必须对整个文件进行 URL 编码)。对于那些感兴趣的人,我找到了更多关于这方面的信息,那就是当我们谈论HTML表单时,它们只支持GET 和 POST方法,如果我们决定使用例如
<form action="localhost/prueba.html" method="HEAD"></form>
PUT 或任何其他方法不是 GET / POST,浏览器会自动将这些方法转换为 GET。相反,如果我们想使用 if 或者如果这些方法在 JS 中实现,即使用AJAX,我们应该能够使用ALL THE METHODS 进行请求。 欲了解更多信息:https ://www.it-swarm.dev/es/html/usando-el-metodo-put-en-forma-html/941772569/ 希望对您有所帮助!干杯