【问题标题】:Why should a client state http method?为什么客户端要声明 http 方法?
【发布时间】:2018-03-01 20:30:00
【问题描述】:

我们知道POSTGET 之间的区别,但是为什么客户端在发出http 请求时要声明方法类型?为什么它会对服务器产生影响?最后,根据他们的URL 和内容处理这些请求是服务器的工作。通过重定向、阻止或接受和使用数据(存在于URL 或请求正文中)。

【问题讨论】:

  • 服务器如何根据 URL 和内容知道用户想要 POST、PUT 或 PATCH?可能想了解 HTTP 和 RESTful 服务。
  • 通过调用正确的函数(或 URL)。

标签: http http-method


【解决方案1】:

端点可以同时接受GETPOST 请求(以及PUTPATCHDELETE)。如果客户端没有明确说明他们发送的请求类型,服务器会将其解释为GET 请求(默认)。

考虑以下 PHP 示例,位于 https://api.example.com/resources/

<?php

if ($_POST["request"]) {
  // Create new resource
}
else if ($_GET["request"]) {
  // List existing resources
}

在这两种情况下,request 参数被发送到同一个页面,并且根据方法是什么运行不同的逻辑。但是考虑到在这两种情况下相同的数据被发送到同一个页面,如果客户端没有明确指定方法,服务器将不知道要进入这两个条件中的哪一个。

RESTful编程中,客户端和服务器都被编程来理解请求,但客户端不知道服务器本身。由服务器根据客户端要求它执行的操作来处理请求。并且客户端通过指定方法要求它做不同的事情。

【讨论】:

  • 但是为什么要为多动作设计: 1- 相同的路线。 2-特别依赖于客户端声明的http方法,而不是其他任何东西。首先?
  • @AMD711 如果您想知道该问题的答案,您需要进行研究。阅读链接的文章。如果您真的想知道原因,请阅读 Roy Fielding 的论文...
猜你喜欢
  • 2011-08-20
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
  • 2010-10-13
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
相关资源
最近更新 更多