我应该如何在HTML表单中选择GET和POST方法?

Dav*_*ler 21 html http

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

谢谢.

Dav*_*lin 38

要在它们之间进行选择,请使用以下简单规则

GET读取.(读取数据并显示)

写入任何内容的POST(即更新数据库表,删除条目等)

另一个考虑因素是GET受到最大URI长度的影响,当然无法处理文件上传.

这个页面有一个很好的总结.

  • 当我做AJAX表单提交时,它成了我的问题.如果您有文本区域字段,那么您需要进行POST或在用户输入超过限制的情况下丢失一些文本的风险. (2认同)

Mic*_*cke 24

GET和POST都有自己的位置.你不应该依赖它们中的任何一个来保证安全.

GET请求

  • 很容易安全
  • 很容易收藏
  • 受URI长度限制
  • 可以在访问日志中显示参数

POST请求

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

您是否希望表单提交的结果是可收藏的(想想Google搜索)?使用GET.

您希望表单提交的结果是可缓存的吗?使用GET.

您的请求不是幂等的(安全可重复的)吗?使用POST然后始终重定向到适合通过HTTP GET获取的页面.

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


Aar*_*paa 12

GET不应该有副作用:http://www.w3.org/DesignIssues/Axioms.html#state

提交有副作用时,应使用POST表单.

这两种方法都没有任何真正的安全含义,如果您担心安全性,请使用SSL.