ajax - 为什么有多种 HTTP 方法可用?

标签 ajax http post methods get

当我第一次开始开发需要使用 HTTP 向服务器发送数据的客户端/服务器应用程序时,我对 HTTP 方法一窍不通。我真的对一切都使用了 GET 请求。

我后来了解到我应该使用 POST 发送数据并使用 GET 请求数据,但是,我有点困惑为什么这是最佳实践。从功能的角度来看,我能够使用 GET 或 POST 来实现完全相同的事情。

为什么使用特定的 HTTP 方法比对所有内容都使用相同的方法很重要?

我知道 POST 比 GET 更安全(GET 使数据在 HTTP URL 中可见)但是,我们不能对所有内容都使用 POST 吗?

最佳答案

我将尝试对此做一个简短的回答。

GET 用于读取信息。这是“默认”方法,一切都使用它从一个链接跳转到下一个链接。这包括浏览器,也包括爬虫。

GET 是“安全的”。这意味着,如果您执行 GET 请求,您可以保证永远不会更改服务器上的某些内容。如果 GET 请求可能会导致服务器上的某些内容被删除,这可能会带来很大的问题,因为蜘蛛/爬虫/搜索引擎可能会假定以下链接是安全的并自动删除内容。

这就是为什么我们有几种不同的方法。 GET 旨在允许您从服务器“获取”内容。同样,PUT 允许您在服务器上设置一些新内容,DELETE 允许您删除一些内容。

POST 最大的原始目的是提交表单。您正在向服务器发布一个表单并要求服务器对该表单执行某些操作。

任何客户端(人/浏览器或机器/爬虫)都知道 POST 是“不安全的”。它不会代表您自动执行 POST 请求,除非它真的知道这是您(用户)想要的。它也用于类似于提交表单的事情。

所以当你设计你的网站时,确保你只使用GET从服务器获取东西,并且使用POST如果你的ajax请求会导致'something'在服务器上更改。

有趣的事实:有a lot官方 HTTP 方法。至少 30 个。不过您可能只会使用其中的极少数。

所以更准确地回答标题中的问题:

Why are there multiple HTTP Methods available?

不同的HTTP方法有不同的规则和限制。如果每个人都同意这些规则,我们就可以开始对意图是什么做出假设。由于存在这些保证,HTTP 服务器、客户端和代理可以在不了解您的特定应用程序的情况下做出明智的决定。

关于ajax - 为什么有多种 HTTP 方法可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50082991/

相关文章:

javascript - 在 PHP 中使用序列化 jQuery 传递多个参数

javascript - 从函数返回数组时 JavaScript 命名空间出现问题

angularjs - Angular jsonp数据打印

post - cURL、SSL 和 POST

Ajax POST 导致 405(不允许方法)-Spring MVC

javascript - 如何从事件 ajax :error in Rails 5. 1 的响应中获取数据

jquery mobile - 将内容加载到div中

c# - 仅在第一个 http 请求中获得空响应 Windows Phone 8

c++ - 基本 C++ 套接字编程中的异常 HTTP 响应

node.js - Angular 6 + NodeJS + MongoDB