1. form表單有什么作用?有哪些常用的input 標(biāo)簽,分別有什么作用?
表單是一個(gè)包含表單元素的區(qū)域,允許用戶(hù)在表單區(qū)域中輸入信息,用于收集不同類(lèi)型的用戶(hù)輸入。
input標(biāo)簽使用type屬性的值來(lái)規(guī)定input元素的類(lèi)型,常見(jiàn)有以下類(lèi)型:
- button——定義可點(diǎn)擊的按鈕
- checkbox——定義復(fù)選框
- radio——定義單選按鈕
- text——定義單行輸入框,可在其中輸入文本
- file——定義輸入字段和“瀏覽”按鈕,供文件上傳
- hidden——定義隱藏的輸入字段
- image——定義圖像形式的提交按鈕
- password——定義密碼字段,該字段中的字符被掩碼
- reset——定義重置按鈕,用于清除表單中的所有數(shù)據(jù)
- submit——定義提交按鈕,把表單數(shù)據(jù)發(fā)給服務(wù)器
2. post 和 get 方式有什么區(qū)別?
POST和GET是使用HTTP協(xié)議在客戶(hù)機(jī)和服務(wù)器之間進(jìn)行請(qǐng)求-響應(yīng)時(shí),兩種最常用到的方法。
GET常用于向指定的資源請(qǐng)求數(shù)據(jù),使用GET時(shí),請(qǐng)求時(shí)發(fā)送的表單數(shù)據(jù)會(huì)顯式附在URL之后,多個(gè)參數(shù)也會(huì)使用&連接,一起附在URL上,雖然http協(xié)議沒(méi)有對(duì)傳輸數(shù)據(jù)大小的限制,也沒(méi)有對(duì)URL長(zhǎng)度的限制,但實(shí)際開(kāi)發(fā)中特定的瀏覽器和服務(wù)器對(duì)于URL的長(zhǎng)度是有限制的,這就導(dǎo)致使用GET方法時(shí),傳輸數(shù)據(jù)會(huì)受到URL限制。同時(shí)由于數(shù)據(jù)明文傳輸,使得GET所提交數(shù)據(jù)的安全性無(wú)法得到保障,當(dāng)頁(yè)面被收藏為書(shū)簽,或被瀏覽器緩存,或者其他人查看瀏覽器記錄時(shí),就很容易看到所提交的數(shù)據(jù)。但GET對(duì)服務(wù)器上被get的指定數(shù)據(jù)來(lái)說(shuō)是安全的,一份數(shù)據(jù)不管被GET請(qǐng)求多少次,都只是在對(duì)這份數(shù)據(jù)進(jìn)行查詢(xún)操作,這份數(shù)據(jù)本身是不會(huì)改變的。
POST常用于向指定的資源提交要被處理的數(shù)據(jù),這對(duì)被指定資源來(lái)說(shuō)是不安全的,因?yàn)镻OST方法會(huì)更新指定資源的數(shù)據(jù)。POST提交的數(shù)據(jù)是放置在HTTP消息主體中的,URL不會(huì)因?yàn)镻OST請(qǐng)求發(fā)生改變,這樣所傳輸數(shù)據(jù)的大小理論上就不受限制了,但在實(shí)際應(yīng)用中還是會(huì)受到各個(gè)web服務(wù)器配置的限制,但對(duì)比GET方法來(lái)說(shuō),POST已是傳輸大量數(shù)據(jù)的更佳選擇。由于POST傳輸?shù)臄?shù)據(jù)都放在HTTP包中,所以POST對(duì)于所傳輸?shù)臄?shù)據(jù)更安全,URL中不會(huì)顯示數(shù)據(jù)內(nèi)容,頁(yè)面也無(wú)法被瀏覽器緩存或收藏,也不會(huì)從瀏覽器歷史記錄中暴露數(shù)據(jù)內(nèi)容。但如果在POST傳輸數(shù)據(jù)中選擇“后退”操作,會(huì)導(dǎo)致表單數(shù)據(jù)可能重復(fù)提交。
綜上可以看出,在搜索引擎中檢索信息時(shí),應(yīng)使用GET方法,而在注冊(cè)、登錄、提交用戶(hù)信息等場(chǎng)景中,應(yīng)使用POST方法。
3. 在input里,name 有什么作用?
name 屬性規(guī)定 input 元素的名稱(chēng),用于對(duì)提交到服務(wù)器后的表單數(shù)據(jù)進(jìn)行標(biāo)識(shí),或者在客戶(hù)端提供給 JavaScript,使其可以引用表單數(shù)據(jù)。
4. radio 如何 分組?
具有相同 name 屬性值的 radio 為同一組,例如:
<input type="radio" name="sex" value="male" checked>男
<input type="radio" name="sex" value="female" >女
5. placeholder 屬性有什么作用?
提供可描述輸入字段預(yù)期值的提示信息,該提示會(huì)在輸入字段為空時(shí)顯示,并會(huì)在字段獲得焦點(diǎn)時(shí)消失。
6. type=hidden隱藏域有什么作用? 舉例說(shuō)明
type屬性值定義為hidden可定義隱藏字段。隱藏字段對(duì)于用戶(hù)是不可見(jiàn)的。隱藏字段通常會(huì)存儲(chǔ)一個(gè)默認(rèn)值,它們的值也可以由 JavaScript 進(jìn)行修改。
一方面隱藏?cái)?shù)據(jù)可以暫存數(shù)據(jù),例如用戶(hù)不需要見(jiàn)到,但操作網(wǎng)頁(yè)時(shí)可能用到的數(shù)據(jù);另一方面可以提高安全性,例如,頁(yè)面提交表單時(shí)可通過(guò)type=hidden設(shè)置一段隱藏的按照預(yù)先算法約定好的隨機(jī)字段,服務(wù)器在受到表單數(shù)據(jù)時(shí)對(duì)這個(gè)隱藏字段進(jìn)行校驗(yàn),來(lái)識(shí)別該表單數(shù)據(jù)來(lái)源是否可靠,從而避免服務(wù)器數(shù)據(jù)被假頁(yè)面提交的數(shù)據(jù)攻擊篡改。