GET和POST的几个注意的地方

很久没写博文了,今天就稍分析下表单提交的GET和POST的细节问题

<form method="get"> vs <form method="post">

这两种不同的方式都可以完成同样的事情,就是提交表单,但是在具体环境下,会有很多差异。

用GET提交表单,如果表单的字段比较多,URL比较长,一个比较长的URL通常需要更多的DNS解析时间,有次一个URL长度接近400个字符,在谷歌浏览器打开比较慢,后来把提交方式改为POST提交,页面一点就打开了,这说明缩短了很多的DNS解析时间。

POST提交,比GET更加安全,如果你提交一个表单,包含用户名和密码,如果用户在URL中看到自己的用户名、密码等信息,就会认为这不是很安全的。

POST提交而且可以没有数据长度的限制。

如果一个页面提交到另外一个页面,用POST方式提交,在另外一个页面按F5刷新,就会提示是否重新发送数据,这点对于用户体验来说不是很好的。

刚才说的一个页面,应该不是表单包含在iframe里面,如果表单包含在iframe里面,就又不同了

比如一个页面form.jsp


<iframe src="formdata.html"></iframe>


formdata.html


<form name="rcvForm" action="receivedata.jsp" method="post" target="_blank">
<input type="hidden" name="account" value="xyh"/>
<input type="button" value="提交" onclick="document.rcvForm.submit()"/>
</form>


用户通过提交打开页面receivedata.jsp,就会发现F5刷新下页面,表单参数比如name="account"全部丢失了,没有那个重新发送数据的对话框。

怎么修改,把formdata.html的post改成get


<form action="receivedata.jsp" method="get" target="_blank">
<input type="hidden" name="account" value="xyh"/>
<input type="button" value="提交" onclick="document.rcvForm.submit()"/>
</form>


或者把formdata.html的修改提交方式,把从iframe提交升到form.jsp去提交


<form action="receivedata.jsp" method="get" target="_blank">
<input type="hidden" name="account" value="xyh"/>
<input type="button" value="提交" onclick="window.frames[0].document.form[0].submit();""/>
</form>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HTTP协议中,GET和POST请求是最常用的两种请求方法。 GET请求是一种请求获取资源的方法,通常用于请求服务器上的某个资源(如网页、图片等),并将其响应给客户端。GET请求将请求参数放在URL中,可以被缓存,因此适用于获取数据量较小、不敏感、不需要保密的数据。 POST请求是一种向服务器提交数据的方法,通常用于向服务器提交表单数据等敏感数据,且请求参数放在请求体中,不会被缓存,因此适用于提交数据量较大、敏感、需要保密的数据。 总结来说,GET请求适用于获取数据,而POST请求适用于提交数据。 ### 回答2: get和post是两种常见的网络请求方法,主要区别如下: 1.参数传递位置:get请求通过URL中的查询字符串传递参数,即参数会附加在URL的末尾,而post请求则是将参数放在请求体中进行传递,不会暴露在URL中。 2.参数传递长度限制:由于get请求参数附加在URL中,URL长度有限制,一般不超过2KB;而post请求参数放在请求体中,没有长度限制,可以传递大量数据。 3.参数传递安全性:get请求的参数附加在URL中,易于被截获和篡改,传递的数据较不安全;post请求的参数放在请求体中,相对安全,不易被截获。 4.使用场景:get请求一般用于获取数据,如查询信息、查看网页等,不会对服务器数据产生副作用;post请求一般用于提交数据,如表单提交、上传文件等,对服务器数据进行修改。 5.浏览器历史记录:get请求会被浏览器记录在浏览器历史记录中,可通过浏览器的前进后退进行导航;post请求不会被浏览器记录在浏览器历史记录中,不可通过前进后退进行导航。 总结来说,get请求适用于参数较少、安全性要求不高的情况,而post请求适用于参数较多、需要保护数据安全的情况。在实际开发中,根据具体需求选择合适的请求方法可以更好地满足业务需求。 ### 回答3: GET和POST是HTTP协议中常用的两种请求方式。 GET请求是向服务器请求获取资源,它的特点是请求参数以查询字符串的形式附加在URL之后,以问号"?"开头,参数之间使用"&"连接。GET请求一般用于获取或检索服务器端的数据,可以在浏览器的地址栏中直接输入URL发送GET请求。GET请求的数据会暴露在URL之中,限制了传输数据的大小,且不适合传输敏感信息。 POST请求是向服务器提交数据,它的特点是请求参数不会暴露在URL中,而是以请求体的形式发送给服务器。POST请求适合传输较大的数据量,且可以传输敏感信息。POST请求的数据不会被浏览器缓存,相对来说更安全。 GET和POST请求的区别可以从以下几个方面总结: 1. 数据位置:GET请求使用查询字符串将参数拼接在URL中,POST请求将参数放在请求体中。 2. 传输大小:GET请求的数据大小受限于URL长度限制,一般不宜传输过多数据,而POST请求没有数据大小的限制。 3. 安全性:GET请求的数据在URL中可见,不适合传输敏感信息,而POST请求的数据不会暴露在URL中。 4. 缓存:GET请求数据可以被浏览器缓存,所以会产生缓存效应,而POST请求不会被缓存。 5. 请求方式:GET请求是幂等的,多次请求相同的URL结果不会有变化,而POST请求可能会对服务器端产生影响,如添加或修改数据。 6. 使用场景:GET请求适合用于获取数据,POST请求适合用于提交数据,进行添加、修改或删除操作。 综上所述,GET和POST请求的区别主要体现在数据位置、传输大小、安全性、缓存、请求方式和使用场景等方面。在实际开发中,根据具体需求和情况选择合适的请求方式是至关重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值