使用GET方法和POST方法有什么不同?哪个更安全?它们各自的优点是什么?

(类似问题)


当前回答

最好的答案是第一个。

您正在使用:

当您想检索数据时使用GET (GET data)。 当你想要发送数据时(POST data)。

其他回答

当用户在表单中输入信息并单击Submit时,有两种方式可以将信息从浏览器发送到服务器:在URL中,或在HTTP请求正文中。

在前面的示例中使用的GET方法将名称/值对追加到URL。不幸的是,URL的长度是有限的,所以这个方法只在只有几个参数的情况下才有效。如果表单使用大量参数,或者参数包含大量数据,URL可能会被截断。此外,通过URL传递的参数在浏览器的地址字段中可见,这不是显示密码的最佳位置。

GET方法的替代方法是POST方法。该方法将名称/值对打包在HTTP请求的主体中,这使得URL更简洁,并且没有对表单输出施加大小限制。它也更安全。

Get和Post方法与你使用的服务器技术无关,它在php、asp.net或ruby中都是一样的。GET和POST是HTTP协议的一部分。 正如mark所指出的,POST更安全。POST表单也不被浏览器缓存。 POST也用于传输大量数据。

在修改数据时使用POST的原因:

像谷歌这样的网络加速器将单击页面上的所有(GET)链接并缓存它们。如果链接更改了内容,这是非常糟糕的。 浏览器缓存GET请求,因此即使用户单击链接,它也不会向服务器发送执行更改的请求。 为了保护您的站点/应用程序免受CSRF的侵害,您必须使用POST。为了完全保护你的应用,你还必须在服务器上生成一个唯一的标识符,并在请求中发送。

另外,不要在查询字符串中放入敏感信息(只有GET选项),因为它会显示在地址栏、书签和服务器日志中。

希望这能解释为什么人们说POST是“安全的”。如果要传输敏感数据,则必须使用SSL。

GET方法:

仅用于发送256个字符的日期 使用此方法时,可以在浏览器上看到信息 它是表单使用的默认方法 它不是那么安全。


POST方法:

它用于发送无限数据。 使用这种方法,信息不能在浏览器上看到 您可以显式地提到POST方法 它比GET方法更安全 它提供了更高级的功能

如果有很多数据,或者有点敏感的信息(非常敏感的东西也需要一个安全的连接),您应该使用POST。

如果您希望人们能够为您的页面添加书签,请使用GET,因为所有数据都包含在书签中。

只是要小心使用GET方法点击REFRESH的人,因为数据每次都会再次发送而不警告用户(POST有时会警告用户重发数据)。