Ajax中post與get的區別


 

get和post都是向服務器發送一種請求,只是發送機制不同 。

1. GET可以通過在請求URL上添加請求參數,
而POST請求則是作為HTTP消息的實體內容發送給WEB服務器。 
2. get方式請求數據會被瀏覽器緩存起來,因此其他人就可以從瀏覽器的歷史記錄中讀取到這些數據,例如賬號密碼等。在某種情況下,get方式會帶來嚴重的安全問題。
而post方式相對來說就可以避免這些問題。 
3. Post請求必須設置請求頭Content-Type值為application/x-form-www-urlencoded,如果沒有設置,參數無法正確的傳遞到服務器(本質上說,如果沒有參數,也不一定需要設置,不會影響請求的發送); get不用
4. 發送請求時,因為Get請求的參數都在url里,沒有請求主體,使用xhr.send(null),所以send函數發送的參數為null,而Post請求在使用send方法時,卻需賦予其參數,xhr.send(參數);
5. GET大小限制約4K,POST則沒有限制(在http中”GET方式提交的數據最多只能是1024字節”,Post傳輸的數據量大,可以達到2M。 )
6. POST可以通過xhr.send('name=itcast&age=10')
7. 如果有數據 值 get要拼接字符串 post不需要設置
使用post的概率會大一些

在服務器端的區別:
1. 在客戶端使用get請求時,服務器端使用Request.QueryString來獲取參數,而客戶端使用post請求時,服務器端使用Request.Form來獲取參數. 
2. HTTP標准包含這兩種方法是為了達到不同的目的。POST用於創建資源,資源的內容會被編入HTTP請示的內容中。例如,處理訂貨表單、在數據庫中加入新數據行等。
3. 當請求無副作用時(如進行搜索),便可使用GET方法;當請求有副作用時(如添加數據行),則用POST方法。一個比較實際的問題是:GET方法可能會產生很長的URL,或許會超過某些瀏覽器與服務器對URL長度的限制。

若符合下列任一情況,則用POST方法:
1. 請求的結果有持續性的副作用,例如,數據庫內添加新的數據行。
2. 若使用GET方法,則表單上收集的數據可能讓URL過長。
3. 要傳送的數據不是采用7位的ASCII編碼。

若符合下列任一情況,則用GET方法:
1. 請求是為了查找資源,HTML表單數據僅用來幫助搜索。
2. 請求結果無持續性的副作用。
3. 收集的數據及HTML表單內的輸入字段名稱的總長不超過1024個字符。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM