使用GET方法和POST方法有什么不同?哪个更安全?它们各自的优点是什么?
(类似问题)
使用GET方法和POST方法有什么不同?哪个更安全?它们各自的优点是什么?
(类似问题)
当前回答
当我从URL检索信息时使用GET,当我向URL发送信息时使用POST。
其他回答
当用户在表单中输入信息并单击Submit时,有两种方式可以将信息从浏览器发送到服务器:在URL中,或在HTTP请求正文中。
在前面的示例中使用的GET方法将名称/值对追加到URL。不幸的是,URL的长度是有限的,所以这个方法只在只有几个参数的情况下才有效。如果表单使用大量参数,或者参数包含大量数据,URL可能会被截断。此外,通过URL传递的参数在浏览器的地址字段中可见,这不是显示密码的最佳位置。
GET方法的替代方法是POST方法。该方法将名称/值对打包在HTTP请求的主体中,这使得URL更简洁,并且没有对表单输出施加大小限制。它也更安全。
在修改数据时使用POST的原因:
像谷歌这样的网络加速器将单击页面上的所有(GET)链接并缓存它们。如果链接更改了内容,这是非常糟糕的。 浏览器缓存GET请求,因此即使用户单击链接,它也不会向服务器发送执行更改的请求。 为了保护您的站点/应用程序免受CSRF的侵害,您必须使用POST。为了完全保护你的应用,你还必须在服务器上生成一个唯一的标识符,并在请求中发送。
另外,不要在查询字符串中放入敏感信息(只有GET选项),因为它会显示在地址栏、书签和服务器日志中。
希望这能解释为什么人们说POST是“安全的”。如果要传输敏感数据,则必须使用SSL。
最好的答案是第一个。
您正在使用:
当您想检索数据时使用GET (GET data)。 当你想要发送数据时(POST data)。
我发现这个列表非常有用
GET
GET请求可以被缓存 GET请求保留在浏览器历史记录中 GET请求可以被收藏 在处理敏感数据时,不应该(几乎)使用GET请求 GET请求有长度限制 GET请求应该只用于检索数据
POST
POST请求不会被缓存 POST请求不会保留在浏览器历史记录中 POST请求不能被收藏 POST请求对数据长度没有限制
Get和Post方法与你使用的服务器技术无关,它在php、asp.net或ruby中都是一样的。GET和POST是HTTP协议的一部分。 正如mark所指出的,POST更安全。POST表单也不被浏览器缓存。 POST也用于传输大量数据。