api - GET v POST 之间的区别是约定还是设计?
问题描述
背景:
查看下面的一些链接,我注意到 GET 与 POST 的两组独特描述。
- 一种描述表明,不同之处在于信息的发送方式:GET 通过 URL 发送该信息,而 POST 通过 HTTP 请求正文发送该信息。
- 另一种描述表明,不同之处在于发送信息的方式:GET 将信息发送到服务器,而 POST 则从服务器请求信息。
由于以下原因,我发现缺少这些描述:
- 如果我想从服务器 (GET) 获取一些东西,但我首先发送大量数据(例如 50MB 的文本),所以我需要在 HTTP 请求正文 (POST) 中发送它。使用 POST 从服务器获取东西可以吗?
- 如果我不希望将敏感信息存储在 URL 中,是否可以每次都使用 POST?
- jquery GET 函数与 jquery POST 函数具有相同的方法签名(请参阅文档),特别是它还可以将数据作为普通对象或字符串发送到服务器,我将其解释为添加到 HTTP请求正文。如果 GET 的数据可以通过 HTTP 请求正文发送,那么对我来说,这与大多数声称这是 POST 与 GET 的区别描述之一的网站相矛盾。
- 没有什么能阻止我创建 API 端点,这些端点是 GET 但行为类似于 POST(或 PUT,或 DELETE 或 PATCH)
问题:
是因为我的理解不够严格而缺乏严格的描述,还是因为 HTTP/Ajax 的临时开发过程,还是完全是其他原因?
支持链接:
解决方案
推荐阅读
- json - Mongodb嵌套集合检索
- sql-server - 如何在 T-SQL 中获取 TZoffset?
- install4j - 是否可以将自定义脚本片段添加到 unix install4j 卸载程序?
- twitter-bootstrap - 为什么 flex-fill 在引导程序中没有创建相等的宽度?
- python - Python 3.7 import requests returns "Chardet" error
- r - r中的lag和zlag函数有什么区别?
- c# - RichTextBox 行间距 winform C#
- syntax - Spyder 编辑器不显示正确的颜色文本 - 我该如何纠正?
- vb.net - VB.NET - Dynamically created controls and how to manipulate them
- python-3.x - Cloud Natural Language API 返回 socket.gaierror:不时执行情绪分析后提供的节点名或服务名