form表單有什么作用?
Form 表單用于接收不同類(lèi)型的用戶(hù)輸入丘损,用戶(hù)提交表單時(shí)向服務(wù)器傳輸數(shù)據(jù)组民,從而實(shí)現(xiàn)用戶(hù)與Web服務(wù)器的交互扯躺。
表單的工作機(jī)制
有哪些常用的input 標(biāo)簽脑沿,分別有什么作用藕畔?
text 單行文本框
password 密碼框
radio 單選框
checkbox 多選框
file 文件上傳
select 下拉框
option 下拉選項(xiàng)
textarea 多行文本
hidden 隱藏域
button 普通按鈕
submit 提交按鈕
reset 重置按鈕
POST 和 GET 方式的區(qū)別?
本質(zhì)上庄拇,Get是向服務(wù)器發(fā)索取數(shù)據(jù)的一種請(qǐng)求注服,而POST是向服務(wù)器提交數(shù)據(jù)的一種請(qǐng)求韭邓。
GET請(qǐng)求:是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的action屬性所指的URL中,如:http://www.xxx.com?username=subin&age=20
。在URl中溶弟,值和表單標(biāo)簽名稱(chēng)各個(gè)字段一一對(duì)應(yīng)女淑,并且這些在URl中對(duì)用戶(hù)來(lái)說(shuō)是可見(jiàn)的,即用戶(hù)時(shí)可以看到的辜御。即:name=value
鸭你。
POST請(qǐng)求:POST請(qǐng)求會(huì)把請(qǐng)求的數(shù)據(jù)放置在HTTP請(qǐng)求包的包體中。也就是HTML HEADER內(nèi)一起傳送到action屬性所指的URL地址擒权。
因此袱巨,GET請(qǐng)求的數(shù)據(jù)會(huì)暴露在地址欄中,而POST請(qǐng)求則不會(huì)菜拓。
2瓣窄、傳輸數(shù)據(jù)的大小
在HTTP規(guī)范中笛厦,沒(méi)有對(duì)URL的長(zhǎng)度和傳輸?shù)臄?shù)據(jù)大小進(jìn)行限制纳鼎。但是在實(shí)際開(kāi)發(fā)過(guò)程中,對(duì)于GET裳凸,特定的瀏覽器和服務(wù)器對(duì)URL的長(zhǎng)度有限制贱鄙。因此,在使用GET請(qǐng)求時(shí)姨谷,傳輸數(shù)據(jù)會(huì)受到URL長(zhǎng)度的限制逗宁。
對(duì)于POST,由于不是URL傳值梦湘,理論上是不會(huì)受限制的瞎颗,但是實(shí)際上各個(gè)服務(wù)器會(huì)規(guī)定對(duì)POST提交數(shù)據(jù)大小進(jìn)行限制,Apache捌议、IIS都有各自的配置哼拔。
3、安全性
POST的安全性比GET的高瓣颅。這里的安全是指真正的安全倦逐,而不同于上面GET提到的安全方法中的安全,上面提到的安全僅僅是不修改服務(wù)器的數(shù)據(jù)宫补。比如檬姥,在進(jìn)行登錄操作,通過(guò)GET請(qǐng)求粉怕,用戶(hù)名和密碼都會(huì)暴露再URL上健民,因?yàn)榈卿涰?yè)面有可能被瀏覽器緩存以及其他人查看瀏覽器的歷史記錄的原因,此時(shí)的用戶(hù)名和密碼就很容易被他人拿到了贫贝。除此之外荞雏,GET請(qǐng)求提交的數(shù)據(jù)還可能會(huì)造成Cross-site request frogery攻擊
4、另外
GET后退按鈕/刷新無(wú)害,POST數(shù)據(jù)會(huì)被重新提交(瀏覽器應(yīng)該告知用戶(hù)數(shù)據(jù)會(huì)被重新提交)凤优。
GET書(shū)簽可收藏悦陋,POST為書(shū)簽不可收藏。
GET能被緩存筑辨,POST不能緩存 俺驶。
GET歷史參數(shù)保留在瀏覽器歷史中。POST參數(shù)不會(huì)保存在瀏覽器歷史中棍辕。
GET編碼類(lèi)型application/x-www-form-url暮现,POST編碼類(lèi)型application/x-www-form-urlencoded 或 multipart/form-data。為二進(jìn)制數(shù)據(jù)使用多重編碼楚昭。
GET只允許 ASCII 字符栖袋。POST沒(méi)有限制。也允許二進(jìn)制數(shù)據(jù)
在input里抚太,name 有什么作用塘幅?
name:表單的名稱(chēng)。注意和id屬性的區(qū)別:name屬性是和服務(wù)器通信時(shí)使用的名稱(chēng)尿贫;而id屬性是瀏覽器端使用的名稱(chēng)电媳,該屬性主要是為了方便客戶(hù)端編程,而在css和javascript中使用的庆亡。
radio 如何 分組?
使用name相同的一組單選按鈕匾乓,不同radio設(shè)定不同的value值
<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女
placeholder 屬性有什么作用?
placeholder 屬性是 HTML5 中的新屬性。
placeholder 屬性提供可描述輸入字段預(yù)期值的提示信息(hint)又谋。
該提示會(huì)在輸入字段為空時(shí)顯示拼缝,并會(huì)在字段獲得焦點(diǎn)時(shí)消失。
注釋?zhuān)簆laceholder 屬性適用于以下的 <input> 類(lèi)型:text, password彰亥、 search, url, telephone,以及 email
具體寫(xiě)法:
<input type="password" name="password" placeholder="請(qǐng)輸入密碼">
效果展示:
type=hidden隱藏域有什么作用? 舉例說(shuō)明
隱藏域具體寫(xiě)法:
<input type="hidden" name="field_name" value="value">
hidden隱藏域無(wú)外乎下面六點(diǎn)作用:
- 隱藏域在頁(yè)面中對(duì)于用戶(hù)是不可見(jiàn)的咧七,在表單中插入隱藏域的目的在于收集或發(fā)送信息,以利于被處理表單的程序所使用剩愧。瀏覽者單擊發(fā)送按鈕發(fā)送表單的時(shí)候猪叙,隱藏域的信息也被一起發(fā)送到服務(wù)器。
- 有些時(shí)候我們要給用戶(hù)一信息仁卷,讓他在提交表單時(shí)提交上來(lái)以確定用戶(hù)身份穴翩,如sessionkey,等等.當(dāng)然這些東西也能用cookie實(shí)現(xiàn)锦积,但使用隱藏域就簡(jiǎn)單的多了.而且不會(huì)有瀏覽器不支持芒帕,用戶(hù)禁用cookie的煩惱。
- 有些時(shí)候一個(gè)form里有多個(gè)提交按鈕丰介,怎樣使程序能夠分清楚到底用戶(hù)是按那一個(gè)按鈕提交上來(lái)的呢背蟆?我們就可以寫(xiě)一個(gè)隱藏域鉴分,然后在每一個(gè)按鈕處加上onclick="document.form.command.value="xx""然后我們接到數(shù)據(jù)后先檢查command的值就會(huì)知道用戶(hù)是按的那個(gè)按鈕提交上來(lái)的。
- 有時(shí)候一個(gè)網(wǎng)頁(yè)中有多個(gè)form带膀,我們知道多個(gè)form是不能同時(shí)提交的志珍,但有時(shí)這些form確實(shí)相互作用,我們就可以在form中添加隱藏域來(lái)使它們聯(lián)系起來(lái)垛叨。
- javascript不支持全局變量伦糯,但有時(shí)我們必須用全局變量,我們就可以把值先存在隱藏域里嗽元,它的值就不會(huì)丟失了敛纲。
- 還有個(gè)例子,比如按一個(gè)按鈕彈出四個(gè)小窗口剂癌,當(dāng)點(diǎn)擊其中的一個(gè)小窗口時(shí)其他三個(gè)自動(dòng)關(guān)閉.可是IE不支持小窗口相互調(diào)用淤翔,所以只有在父窗口寫(xiě)個(gè)隱藏域,當(dāng)小窗口看到那個(gè)隱藏域的值是close時(shí)就自己關(guān)掉