http - 为什么 HTTP GET 和 POST 请求以不同的方式(正文与 URI)向服务器传递参数?
问题描述
我知道通常,GET 请求通过将查询字符串附加到 URI 来传递相关参数。POST 请求通过将参数插入请求正文来传递参数。
我也知道将 GET 参数传递到请求正文中被认为是不好的做法,但这不能解释为什么这种行为最初是实施的。据我所知,GET 和 POST 请求之间的主要区别或多或少是语义上的。也就是说,我通常可以假设 GET 是安全的,而 POST 不是,这有助于我理解我可以缓存 GET 结果,并允许 GET 多次调用,而不必担心我会弄乱服务器端的东西。这并不能解释为什么传递参数有不同的实现。让 GET 在语义上等同于现在使用的方式但使用请求正文而不是 URI 来传递参数是不是一个坏主意?同样,HTTP 的设计者是否有令人信服的历史原因来划分 GET 和 POST 存储参数的方式(以这种看似任意的方式)?
解决方案
URL 中的数据可以链接、添加书签和轻松共享。
请求正文中的数据可能很大,并且很容易包含非文本的内容(如文件附件)。
推荐阅读
- python - GCE 上的 Python:连接失败,因为连接的主机未能响应
- oracle - 优化sql select语句(oracle)
- php - preg_replace 不适用于对象变量 PHP
- powershell - 在 powershell 中使用 certreq 在文件中生成私钥
- go - Github 操作在存储库中找不到包
- python - 如何在python中中断
- javascript - JavaScript -WebdriverIO - 函数不将元素作为参数
- amazon-web-services - 尝试使用虚拟托管 URL 而不是 AWS S3 存储桶的路径样式时,存储桶名称包含点 ('.') 的 SSL 证书问题
- web-component - 分别导出同一个项目的两个模块?
- typescript - 使用猫鼬和nestJS自动增加字段