首页 > 解决方案 > 为什么 HTTP GET 和 POST 请求以不同的方式(正文与 URI)向服务器传递参数?

问题描述

我知道通常,GET 请求通过将查询字符串附加到 URI 来传递相关参数。POST 请求通过将参数插入请求正文来传递参数。

我也知道将 GET 参数传递到请求正文中被认为是不好的做法,但这不能解释为什么这种行为最初是实施的。据我所知,GET 和 POST 请求之间的主要区别或多或少是语义上的。也就是说,我通常可以假设 GET 是安全的,而 POST 不是,这有助于我理解我可以缓存 GET 结果,并允许 GET 多次调用,而不必担心我会弄乱服务器端的东西。这并不能解释为什么传递参数有不同的实现。让 GET 在语义上等同于现在使用的方式但使用请求正文而不是 URI 来传递参数是不是一个坏主意?同样,HTTP 的设计者是否有令人信服的历史原因来划分 GET 和 POST 存储参数的方式(以这种看似任意的方式)?

标签: httppostparametersget

解决方案


URL 中的数据可以链接、添加书签和轻松共享。

请求正文中的数据可能很大,并且很容易包含非文本的内容(如文件附件)。


推荐阅读