POST和GET有什么区别?

这个问题在这里已经有了答案:

  • 什么时候应该使用GET或POST方法? 他们之间有什么区别? 15个答案

  • GETPOST是两种不同类型的HTTP请求。

    根据维基百科:

    GET请求指定资源的表示。 请注意,不应将GET用于导致副作用的操作,例如将其用于在Web应用程序中执行操作。 其中一个原因是GET可能被机器人或抓取工具任意使用,而不需要考虑请求应该导致的副作用。

    POST将要处理的数据(例如,从HTML表单)提交到已标识的资源。 数据包含在请求的正文中。 这可能会导致创建新资源或更新现有资源或两者。

    所以基本上GET用于检索远程数据, POST用于插入/更新远程数据。


    HTTP / 1.1规范(RFC 2616)第9节方法定义包含有关GETPOST以及其他HTTP方法的更多信息,如果您有兴趣的话。

    除了解释每种方法的预期用途之外,该规范还提供了至少一个为什么GET仅用于检索数据的实际原因:

    使用HTTP协议的服务的作者不应该使用基于GET的表单来提交敏感数据,因为这会导致这些数据被编码在Request-URI中。 许多现有的服务器,代理和用户代理都会将请求URI记录在第三方可能看到的某个地方。 服务器可以使用基于POST的表单提交


    最后,在使用GET进行AJAX请求时,一个重要的考虑因素是某些浏览器(特别是IE)会缓存GET请求的结果。 因此,例如,如果您使用相同的GET请求进行轮询,即使您正在查询的数据正在服务器端进行更新,您也将始终得到相同的结果。 缓解此问题的一种方法是通过附加时间戳来使每个请求的URL唯一。


    GET不同, POST通常在请求的主体中具有相关信息。 (一个GET不应该有一个主体,所以除了cookie之外,唯一能够传递信息的地方就在URL中。)除了保持URL相对更清晰外, POST还可以让你发送更多信息(因为URL的长度有限,所有实际用途),并且可以发送几乎任何类型的数据(例如,文件上传表单不能使用GET - 他们必须使用POST和特殊的内容类型/编码)。

    除此之外, POST意味着请求会改变某些内容,而不应该重做。 这就是为什么有时您会看到您的浏览器询问您是否要在点击“返回”按钮时重新提交表单数据。

    另一方面, GET应该是幂等的 - 意味着你可以做一百万次,服务器每次都会做同样的事情(并且显示基本相同的结果)。


    了解底层的HTTP协议

    这与驾驶汽车相似。 你为自己买了一辆车,然后走上路,但你不知道任何你必须遵守的标志,灯光​​或其他规则。 显然即使你知道如何驾驶汽车,你也无法驾驶。 至少不安全。 不是为了你自己,也不是为了别人。

    您应该了解一下HTTP协议。 GET / POST与PHP / AJAX / jQuery或类似语言无关(至少不直接)。 他们使用它们是因为他们使用HTTP协议进行通信。 HTTP协议不仅仅是GETPOST

    看看其中的一些,然后自行搜索:

  • 维基百科
  • W3C
  • HTTP非常简单
  • ...
  • 链接地址: http://www.djcxy.com/p/7027.html

    上一篇: What is the difference between POST and GET?

    下一篇: Shouldn't PUT = Create and POST = Update