Http方法:Get請(qǐng)求與Post請(qǐng)求的區(qū)別 Get是向服務(wù)器發(fā)索取數(shù)據(jù)的一種請(qǐng)求,而Post是向服務(wù)器提交數(shù)據(jù)的一種請(qǐng)求 Get是獲取信息,而不是修改信息,類似數(shù)據(jù)庫查詢功能一樣,數(shù)據(jù)不會(huì)被修改 Get請(qǐng)求的參數(shù)會(huì)跟在url后進(jìn)行傳遞,請(qǐng)求的數(shù)據(jù)會(huì)附在URL之后,以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連,%XX中的XX為該符號(hào)以16進(jìn)制表示的ASCII,如果數(shù)據(jù)是英文字母/數(shù)字,原樣發(fā)送,如果是空格,轉(zhuǎn)換為+,如果是中文/其他字符,則直接把字符串用BASE64加密。 Get傳輸?shù)臄?shù)據(jù)有大小限制,因?yàn)镚ET是通過URL提交數(shù)據(jù),那么GET可提交的數(shù)據(jù)量就跟URL的長度有直接關(guān)系了,不同的瀏覽器對(duì)URL的長度的限制是不同的。 GET請(qǐng)求的數(shù)據(jù)會(huì)被瀏覽器緩存起來,用戶名和密碼將明文出現(xiàn)在URL上,其他人可以查到歷史瀏覽記錄,數(shù)據(jù)不太安全。在服務(wù)器端,用Request.QueryString來獲取Get方式提交來的數(shù)據(jù) Post請(qǐng)求則作為http消息的實(shí)際內(nèi)容發(fā)送給web服務(wù)器,數(shù)據(jù)放置在HTML Header內(nèi)提交,Post沒有限制提交的數(shù)據(jù)。Post比Get安全,當(dāng)數(shù)據(jù)是中文或者不敏感的數(shù)據(jù),則用get,因?yàn)槭褂胓et,參數(shù)會(huì)顯示在地址,對(duì)于敏感數(shù)據(jù)和不是中文字符的數(shù)據(jù),則用post POST表示可能修改變服務(wù)器上的資源的請(qǐng)求,在服務(wù)器端,用Post方式提交的數(shù)據(jù)只能用Request.Form來獲取 |
|