Spring Framework - GET 和 POST 之间的区别

新手上路,请多包涵

我正在使用 Spring Framework 在 JSP 上开发网页。我通常知道 GET 和 POST 之间的区别。如果页面通过POST发送信息,发送的信息在URL中是不可见的,在GET中是可见的。

我目前正在通过控制器发送和接收信息,就在编写我的控制器之前,我使用请求映射如下:

 @RequestMapping(value = "/pri/SuperUser/ResetPassword.qib",method = RequestMethod.GET)
@Override
public ModelandView function(Model model){
...
...

那么,在这种情况下使用 GET 和 POST 有什么区别呢?除了在 URL 中看到发送的信息之外,应该还有其他不同之处。

原文由 Burak T 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 511
2 个回答

听起来您还没有完全理解 GET/POST。

对于 Web 应用程序,可以这样想:

GET 应该使用 GET 方法从服务器检索数据。对同一个 URL 的多个 get 请求应该是有效的,并且服务器端不应更改任何数据。

但是,这并不意味着不可能通过 GET 请求更改服务器端的内容,但您应该尝试确保您遵循标准。

POST 当您需要在服务器端创建、更新或删除数据时,应使用 POST 方法。多次发出相同的 POST 请求可能不安全,并可能导致数据不一致。 POST 请求的内容在请求正文中发送。因此,您在浏览器中看不到参数,但如果您愿意(即使使用浏览器开发人员工具)也很容易看到它们,因此它并不比 GET 请求更安全。

注意:这是它们在 WEB 上的一般使用方式,它不是实际规范,因为还有其他方法可用。如果您正在创建 REST 服务,您将需要探索其他方法

(简而言之 - POST - 用于创建数据,PUT - 用于更新数据,DELETE 用于删除数据)

可能值得阅读实际规范以获得完整的理解: http ://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

如果你确实想保护你的 HTTP 请求,那么这可以通过 HTTPS 使用 SSL 加密来完成(一个单独的主题)

原文由 cowls 发布,翻译遵循 CC BY-SA 3.0 许可协议

GET - 安全、幂等和可缓存

POST - 没有这些特征

查看: GoogleDevelopers 链接(视频)

原文由 shaunw 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题