关于<form>标签的提交方式,W3C上有这么一句话“method 属性规定如何发送表单数据(表单数据发送到 action 属性所规定的页面)。表单数据可以作为 URL 变量(method="get")或者 HTTP post (method="post")的方式来发送”。
这句话的含义是:当表单数据以GET方式发送时,是作为URL变量的;当表单数据以POST方式发送时,是作为HTTP post的方式的。
那么两者的区别呢?
1.一次HTTP请求中 POST 两次发包,GET 一次发包。
2.GET请求的结果能够被缓存,POST的请求结果不进行缓存。
3.GET请求和POST请求的参数携带位置不同。
4.GET请求提交的数据一般都有长度限制,POST请求一般没有限制。
对于两者的应用场景,W3C上的建议是:(1)如果想要获得最佳表单传输性能的话,可以用GET;(2)在一些服务器限制了命令行参数的数目和长度时,使用POST;(3)如果编写应用表单程序的经验不足,也建议用GET;(4)如果追求安全性能的话,建议用POST;(5)如果想在表单之外调用服务器端的应用程序,而且包括向其传递参数的过程,就要采用 GET 方法。
之前有看过一个帖子,上面写了这样的话:“GET一般用于获取/查询资源信息,而POST一般用于更新资源信息(包括增、改)”,感觉也可以作为自己选择使用GET或者POST的一个参考。
笔者是个刚学前端的小白,接下来会慢慢的把自己有点疑惑的问题记录下来,希望和大家一起探讨(>▽<)