首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在HTML表单中选择GET和POST方法?

如何在HTML表单中选择GET和POST方法?
EN

Stack Overflow用户
提问于 2017-12-26 08:42:34
回答 3查看 0关注 0票数 0

我想知道使用这两种方法的所有优点和缺点。特别是对网络安全的影响。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2017-12-26 15:53:11

GET和POST都有它们的位置。你不应该依靠他们中的任何一个来保证安全。

GET请求

  • 很容易进行缓存
  • 很容易进行收藏
  • 受URI长度限制
  • 可能会在访问日志中显示参数

POST请求

  • 允许文件上传
  • 允许大数据
  • 在浏览器地址栏中不显示参数

你想表单提交的结果是可收藏的(认为​​谷歌搜索)?使用GET

你想表单提交的结果是可以缓存的吗?使用GET

你的要求是不是幂等的(安全可重复的)?使用POST,然后总是重定向到适合通过HTTP GET获取的页面

你需要上传文件吗?使用POST

票数 0
EN

Stack Overflow用户

发布于 2017-12-26 17:03:07

如果您重新加载GET请求的页面,浏览器将只是再次(从服务器或从缓存中)获取URL。但是,如果您重新加载POST,浏览器将显示一个轻微混淆的重新发送数据的警告弹出窗口,用户可能然后取消(导致更令人困惑的“过期”页面)。同样的事情,如果你使用回或历史返回到一个POST的结果页面。

这当然是基于不同的语义:GET请求应该是幂等的 - 也就是说,你可以做几次而不需要改变任何东西。另一方面,POST是针对具有副作用的行为,比如注册某些内容,通过在论坛上发表评论。通常情况下,用户不希望重新加载时重复此操作,所以警告是明智的。但是,如果操作是安全可重复的(比如搜索),则应避免使用POST,因为警告不是必需的,只会给用户造成混淆。

关于安全性的一点:如果您在GET表单中有一个密码字段,那么当您输入密码时,密码将被撬开,但是,当您点击提交时,它将在地址栏中明显可见!但除此之外,GET和POST都没有真正的安全性,所以如果这是一个问题,那就使用SSL。

票数 0
EN

Stack Overflow用户

发布于 2017-12-26 17:57:08

如果您传递密码或其他敏感信息,请始终使用POST并确保使用SSL,以便数据不会以明文形式在客户端和服务器之间传输。

安全性方面,使用GET的缺点是所有提交的数据都将在URL中,因此存储在浏览器历史记录的本地客户端上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档