form表单的三个属性 action mothod enctype。
Posted xenia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了form表单的三个属性 action mothod enctype。相关的知识,希望对你有一定的参考价值。
form_action: 表单数据提交到此页面
下面的表单拥有两个输入字段以及一个提交按钮,当提交表单时,表单数据会提交到名为 "form_action.asp" 的页面:
<form action="form_action.asp"
method="get">
<p>First name: <input type="text" name="fname" /></p>
<p>Last name: <input type="text" name="lname" /></p>
<input type="submit" value="Submit" />
</form>
form_mothod:
GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。
GET和POST还有一个重大区别,简单的说:
GET产生一个TCP数据包;POST产生两个TCP数据包。(GET只送一次,POST送两次第一次打招呼,第二次再送,具体情况要看网络环境的快慢)
并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。
1.安全性: get 暴露在url 中,历史纪录中 post > get
2.编码:
get只能向服务器发送ASCII字符,而post则可以发送ISO 10646中的字符
get和post对应的enctype属性有区别:
application/x-www-form-urlencoded
在发送前编码所有字符(默认)
multipart/form-data
不对字符编码。 在使用包含文件上传控件的表单时,必须使用该值。
3.提交数据的长度
IE将请求的URL长度限制为2083个字符,从而限制了get提交的数据长度,如果URL超出了这个限制,提交form时IE不会有任何反映。
4.缓存
由于一个get得到的结果直接对应到一个URL,所以get的结果页面有可能被浏览器缓存,而post一般不能
5.引用和SEO
最本质的区别
get是用来从服务器上获得数据,而post是用来向服务器上传递数据
6.什么时候选择get 或者post
若符合下列任一情况,则用post方法:
a.请求的结果有持续性的副作用,例如:数据库内添加新的数据行。
b.若使用get方法,则表单上收集的数据可能让URL过长。
c.要传送的数据不是采用ASCII编码。
若符合下列任一情况,则用get方法:
a.请求是为了查找资源,html表单数据仅用来搜索。
b.请求结果无持续性的副作用。
c.收集的数据及html表单内的输入字段名称的总长不超过1024个字符。
7.浏览器差异
form_enctype:
form表单的enctype设置为multipart/form-data后,表单中除了文件后台能拿到,其他值后台都拿不到。
2.将表单中的数据变成二进制数据进行上传,所以这时如果用request是无法直接获取到相应表单的值的
以上是关于form表单的三个属性 action mothod enctype。的主要内容,如果未能解决你的问题,请参考以下文章
form中的action属性规定当提交表单时向何处发送表单数据。