什么時候用GET,什么時候用POST


原文:http://bu-choreography.iteye.com/blog/1013501

 

剛開始學習Web開發的時候,總會遇到提交表單時使用GET方法還是POST方法的問題,最開始的時候因為沒有經驗並沒有領悟,后來框架開發做多了,更是把這些原始基礎知識扔出了銀河系。最近開到一段W3的資料,寫的不錯,原文地址如下:http://bu-choreography.iteye.com/admin/blogs/new。翻譯總結如下: 
快速判斷: 
如下情況使用GET方法:客戶端與服務端的交互像是一個提問(如查詢操作、搜索操作、讀操作) 
如下情況使用POST方法: 
       1.交互是一個命令或訂單(order),比提問包含更多信息 
       2.交互改變了服務器端的資源並被用戶察覺,例如訂閱某項服務 
       3.用戶需要對交互產生的結果負責 
聽起來稍微明白了一點,接着來。 
根據HTTP協議規定,GET方法可以攜帶交互需要的所有數據,因此你會看到搜索百度或谷歌的時候,點擊搜索形成的URL包含了你剛才的搜索關鍵字,沒有安全需求的請求把信息放URL里沒關系,但是你訪問銀行網站的時候,不希望把賬戶、密碼這些放在URL里被人攔截是吧,所以HTTP設計了POST請求,他可以把請求信息放在HTTP請求里,具體格式這里不細說了,這樣你就不能簡單的從URL里找到賬戶、密碼了。 
講完這些,是不是比較清楚了呢。 
文章還例舉了幾個曾經的HTTP請求限制。 
1.URI不能超過256個字符。這個限制在有些服務器里是存在的,有的服務器為了網絡安全,為了防止拒絕式攻擊會把URL字符限制在4000字符 
2.你提交了GET請求,又馬山按了backspace鍵,會導致get方法被重新執行 
3.你在一個頁面使用了安全協議,跳轉到了另一個使用不安全協議的頁面時,會導致安全數據泄漏給第二個頁面。
4搜索服務不檢索包含問號的URI 

 

原文:http://blog.csdn.net/perny/article/details/7465243

GET和POST兩種方法都是將數據送到服務器,但你該用哪一種呢?

HTTP標准包含這兩種方法是為了達到不同的目的。POST用於創建資源,資源的內容會被編入HTTP請示的內容中。例如,處理訂貨表單、在數據庫中加入新數據行等。

當請求無副作用時(如進行搜索),便可使用GET方法;當請求有副作用時(如添加數據行),則用POST方法。一個比較實際的問題是:GET方法可能會產生很長的URL,或許會超過某些瀏覽器與服務器對URL長度的限制。

若符合下列任一情況,則用POST方法:

* 請求的結果有持續性的副作用,例如,數據庫內添加新的數據行。
* 若使用GET方法,則表單上收集的數據可能讓URL過長。
* 要傳送的數據不是采用7位的ASCII編碼。

若符合下列任一情況,則用GET方法:

* 請求是為了查找資源,HTML表單數據僅用來幫助搜索。
* 請求結果無持續性的副作用。
* 收集的數據及HTML表單內的輸入字段名稱的總長不超過1024個字符。
最早的搜索為了防止無限循環是這么做的,但是限制采用其他辦法了,自然也沒這個限制了


免責聲明!

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



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