前端7班_yupu
一袋坑、post和get方式的區(qū)別??
1. GET請(qǐng)求的數(shù)據(jù)會(huì)附在URL之后(就是把數(shù)據(jù)放置在HTTP協(xié)議頭中)优幸,以?分割URL和傳輸數(shù)據(jù)吨拍,
參數(shù)之間以&相連
login.actionname=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果數(shù)
據(jù)是英文字母/數(shù)字网杆,原樣發(fā)送羹饰,如果是空格伊滋,轉(zhuǎn)換為+,如果是中文/其他字符队秩,則直接把字符串
用BASE64加密笑旺,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX為該符號(hào)以16進(jìn)制表示的
ASCII馍资。
? ? ?POST把提交的數(shù)據(jù)則放置在是HTTP包的包體中筒主。
2. Get一般用于提交少量數(shù)據(jù),Post用于提交大量數(shù)據(jù)
3. Get最多提交1k數(shù)據(jù)鸟蟹,瀏覽器的限制乌妙。Post理論上無限制,受服務(wù)器限制?
4. Get提交的數(shù)據(jù)在瀏覽器歷史記錄中建钥,安全性不好
? ? ?這里所說的安全性和上面GET提到的“安全”不是同個(gè)概念藤韵。上面“安全”的含義僅僅是不作數(shù)據(jù)修
改,而這里安全的含義是真正的Security的含義熊经,比如:通過GET提交數(shù)據(jù)泽艘,用戶名和密碼將明文
出現(xiàn)在URL上,因?yàn)?1)登錄頁面有可能被瀏覽器緩存镐依,(2)其他人查看瀏覽器的歷史紀(jì)錄匹涮,那么別
人就可以拿到你的賬號(hào)和密碼。
二馋吗、什么時(shí)候用get 什么時(shí)候用post焕盟?
若符合下列任一情況,則用POST方法:
* 請(qǐng)求的結(jié)果有持續(xù)性的副作用宏粤,例如,數(shù)據(jù)庫內(nèi)添加新的數(shù)據(jù)行灼卢。
* 若使用GET方法绍哎,則表單上收集的數(shù)據(jù)可能讓URL過長(zhǎng)。
* 要傳送的數(shù)據(jù)不是采用7位的ASCII編碼鞋真。崇堰、
若符合下列任一情況,則用GET方法:
* 請(qǐng)求是為了查找資源涩咖,HTML表單數(shù)據(jù)僅用來幫助搜索海诲。
* 請(qǐng)求結(jié)果無持續(xù)性的副作用。
* 收集的數(shù)據(jù)及HTML表單內(nèi)的輸入字段名稱的總長(zhǎng)不超過1024個(gè)字符檩互。
總之特幔,Get是向服務(wù)器發(fā)索取數(shù)據(jù)的一種請(qǐng)求,而Post是向服務(wù)器提交數(shù)據(jù)的一種請(qǐng)求闸昨,在
FORM(表單)中蚯斯,Method默認(rèn)為"GET"薄风,實(shí)質(zhì)上,GET和POST只是發(fā)送機(jī)制不同拍嵌,并不是一個(gè)取一
個(gè)發(fā)!
參考:
1遭赂、什么時(shí)候用GET?什么時(shí)候用POST横辆? - perny的專欄
- 博客頻道 - CSDN.NET
2撇他、淺談HTTP中Get與Post的區(qū)別 - 51CTO.COM
3、饑人谷課件