HTTP 請求:GET vs. POST

HTTP 請求:GET vs. POST
兩種在客戶端和服務器端進行請求-響應的常用方法是:GET 和 POST。
 
GET:從指定的資源請求數據。
           一般用於信息獲取,使用URL傳遞參數,對所發送信息的數量也有限制,一般在2000個字符。
          註釋:GET 方法可能返回緩存數據。
POST:向指定的資源提交要處理的數據。
          一般用於修改服務器上的資源,對所發送的信息沒有限制。
POST 方法不會緩存數據,並且常用於連同請求一起發送數據。
GET 還是 POST?
與 POST 相比,GET 更簡單也更快,並且在大部分情況下都能用。
然而,在以下情況中,請使用 POST 請求:
  • 無法使用緩存文件(更新服務器上的文件或數據庫)
  • 向服務器發送大量數據(POST 沒有數據量限制)
  • 發送包含未知字符的用戶輸入時,POST 比 GET 更穩定也更可靠
GET方式需要使用 Request.QueryString 來取得變量的值
POST方式通過 Request.Form 來獲取變量的值
也就是說 Get 是通過地址欄來傳值,而 Post 是通過提交表單來傳值。
 
 
一個完整的HTTP請求過程,通常有下面7個步驟:
1.建立TCP鏈接;
2.web瀏覽器向web服務器發送請求命令;
3.web瀏覽器向web服務器發送請求頭信息;
4.web服務器應答;
5.web服務器發送應答頭信息;
6.web服務器向瀏覽器發送數據;
7.關閉TCP鏈接;

一個HTTP請求一般由四部分組成:
1.HTTP請求的方法或動作,比如get/post;
2.正在請求的URL;
3.請求頭,包含一些客戶端環境信息,身份驗證信息等;
4.請求體,即請求正文。包含客戶提交的查詢字符串信息,表單信息等等;

一個HTTP響應一般由三部分組成:
1.一個數字和文字組成的狀態碼,用來顯示請求是成功還是失敗;
2.響應頭,和請求頭一樣包含許多有用的信息,例如服務器類型、日期時間、內容類型和長度等;
3.響應體,即響應正文;

HTTP狀態碼3位數字構成,其中首位數字定義了狀態碼的類型:
 
1xx:信息類,表示收到web瀏覽器請求,正在進一步處理中;
2xx:成功,表示用戶請求被正確接收,理解和處理。例如:200 ok
3xx:重定向,表示沒有成功,客戶必須採取進一步的動作
4xx:客戶端錯誤,表示客戶端提供的請求有錯誤,
  例如: 400 NOT FOUND 表示請求中所引用的文檔不存在
5xx:服務器錯誤,表示不能完成對請求的處理。例如:500
 
 
補充:
HTTP是基於客戶端/服務端(C/S)的架構模型,通過一個可靠的鏈接來交換信息,是一個無狀態的請求/響應協議。
HTTP是一個基於TCP/IP通信協議來傳遞數據
 
 
 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章