1

我正在使用 Spring Framework 在 JSP 上开发网页,如果页面使用 POST 操作发送,我通常知道 GET 和 POST 之间的区别;在浏览器区域,发送的信息似乎没有,而在 GET 中则正好相反。

在spring框架中,我通过控制器发送和获取信息,就在编写控制器之前,我使用请求映射;

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

那么,在这种情况下使用 GET 和 POST 有什么区别。除了在浏览器字段中查看发送的信息之外,应该还有其他不同的东西。

4

5 回答 5

21

听起来您还没有完全理解 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 加密来完成(一个单独的主题)

于 2013-01-10T09:18:00.417 回答
2

GET - 安全、幂等和可缓存

POST - 没有这些特征

查看:Google 开发者链接(视频)

于 2013-01-10T09:07:32.583 回答
1

该方法将只接受使用 GET 的方法。您不能 POST 到此 URL。

您将获得标准差异,例如您发送此端点的数据将在 ?var=value 之后显示在浏览器 URL 中

因此,您可以执行获取请求以...yoururl.com/pri/SuperUser/ResetPassword.qib

于 2013-01-10T09:03:43.983 回答
1

如果您的数据是机密的,最好使用POST方法,因为它不会反映在 url 上,这与GET不同。

于 2013-01-10T09:06:42.273 回答
0

与一般情况相同。RequestMapping进程要么 GET 要么 POST 发送数据。

例如,如果您在浏览器中键入“DOMAIN/pri/SuperUser/ResetPassword.qib”并打开 URL,它就是 GET。

如果您从 HTML 页面使用 POST 方法提交表单,则它是 POST

于 2013-01-10T09:03:26.093 回答