码迷,mamicode.com
首页 > 其他好文 > 详细

form表单的三个属性 action 、mothod 、 enctype。

时间:2018-10-24 22:19:37      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:除了   限制   不能   需要   data   tip   直接   color   无法   

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后,表单中除了文件后台能拿到,其他值后台都拿不到。

一、application/x-www-form-urlencoded:
1、表单中的enctype值如果不设置,则默认是application/x-www-form-urlencoded,它会将表单中的数据变为键值对
的形式
2、如果action为get,则将表单数据编码为(name1=value1&name2=value2…),然后把这个字符串加到url后面,中间
用?分隔
3、如果action为post,浏览器把form数据封装到http body中,然后发送到服务器。
二、text/plain:
表单以纯文本形式进行编码
三、multipart/form-data:
1、当我们上传的含有非文本内容,即含有文件(txt、MP3等)的时候,需要将form的enctype设置为multipart/form-
data。
2.将表单中的数据变成二进制数据进行上传,所以这时如果用request是无法直接获取到相应表单的值的

 

form表单的三个属性 action 、mothod 、 enctype。

标签:除了   限制   不能   需要   data   tip   直接   color   无法   

原文地址:https://www.cnblogs.com/Xenia/p/9845763.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!