何時選擇get或post
阿新 • • 發佈:2019-01-22
關於http
http其實就是架構在tcp/ip之上應用層的一種協議,簡單地說就是計算機間溝通的一種方式,具體地說就是瀏覽器和WEB之間使用的溝通方式。我主要想強調一下最值得注意的幾個點:
一。兩個基本但極為重要的特性
1.基於請求/響應模型:客戶端對伺服器傳送一個取得資源的請求,伺服器將要求的資源響應給客戶端,每次聯機只做一次請求/響應,沒有請求就沒有響應。
2.無狀態通訊協議:在http下, 服務端是個健忘的傢伙,它相應客戶端之後,就不記得客戶端的資訊,更不會去維護與客戶端有關的狀態。因此http協議又被稱為無狀態的(stateless)協議。
二. 兩種最常用的請求
相信大家都對get和post請求有過大致的瞭解,我主要和大家討論一下如何選用get或post。
<功能面上>
.get請求後面跟引數長度有限的,過長的引數,或如檔案上傳這類的大量資料,就不適合用GET請求。
.get請求的引數出現在位址列,敏感性或安全性要求較高的引數(如銀行卡密碼,用 戶名),就不該用get。
. post請求的引數不出現在位址列中,所以無法加入瀏覽器的書籤中,如果有些頁面是根據請求引數來做不同的畫面呈現(如論壇文章的發表),而你希望使用者可以設定書籤,以便日後可以直接點選書籤瀏覽,則應該使用GET請求。
.有些瀏覽器會根據網址來快取資料,如果網址是相同的URL,則會直接從瀏覽器快取中取資料,而不會真正的傳送請求至伺服器查詢最新的資料,,這是可以使用POST請求。(使用get也可以,不過得在網址後加上時間戳)
<非功能面>
按功能是否為等冪操作
get請求用於等冪操作,就是純粹的取資料,而不改變伺服器的狀態,
post請求用於非等冪操作,post傳送的資料有可能影響伺服器的資料,如修改資料庫。