(1) 在用戶端,Get方式在通過URL送出資料,資料在URL中可以看到;POST方式,資料放置在HTML HEADER内送出。
(2) GET方式送出的資料最多隻能有1024 Byte,而POST則沒有此限制。
(3) 安全性問題。正如在(1)中提到,使用 Get 的時候,參數會顯示在位址欄上,而 Post 不會。是以,如果這些資料是中文資料而且是非敏感資料,那麼使用get;如果使用者輸入的資料不是中文字元而且包含敏感資料,那麼還是使用 post為好。
表單送出中get和post方式的差別歸納如下幾點:
(1)get是從伺服器上擷取資料,post是向伺服器傳送資料。
(2)對于表單的送出方式,在伺服器端隻能用Request.QueryString來擷取Get方式送出來的資料,用Post方式送出的資料隻能用Request.Form來擷取。
(3)一般來說,盡量避免使用Get方式送出表單,因為有可能會導緻安全問題。比如說在登陸表單中用Get方式,使用者輸入的使用者名和密碼将在位址欄中暴露無遺。但是在分頁程式中,用Get方式就比用Post好。
HTTP POST和GET的差別
1、HTTP 隻有POST和GET 兩種指令模式;
2、 POST 是被設計用來向上放東西的,而GET是被設計用來從伺服器取東西的,GET也能夠向伺服器傳送較少的資料,而Get之是以也能傳送資料,隻是用來設計告訴 伺服器,你到底需要什麼樣的資料.POST的資訊作為HTTP 請求的内容,而GET是在HTTP 頭部傳輸的;
3、POST與GET在HTTP 中傳送的方式不同,GET的參數是在HTTP 的頭部傳送的,而Post的資料則是在HTTP 請求的内容裡傳送;
4、POST傳輸資料時,不需要在URL中顯示出來,而GET方法要在URL中顯示;
5、 GET方法由于受到URL長度的限制,隻能傳遞大約1024位元組;POST傳輸的資料量大,可以達到2M,而根據微軟方面的說法,微軟對用 Request.Form() 可接收的最大資料有限制,IIS 4 中為 80 KB 位元組,IIS 5 中為 100 KB 位元組;
6、SOAP是依賴于HTTP POST模式實作的;
常見狀态碼
HTTP響應我們提到狀态碼這個概念,狀态碼一般以1/2/3/4/5 開頭,如下所示:
1xx: 資訊響應類,表示接收到請求并且繼續處理
2xx: 處理成功響應類,表示動作被成功接收、了解和接受
3xx: 重定向響應類,為了完成指定的動作,必須接受進一步處理
4xx: 用戶端錯誤,客戶請求包含文法錯誤或者是不能正确執行
5xx: 服務端錯誤,伺服器不能正确執行一個正确的請求
常見狀态碼如下所示:
1xx:資訊
狀态碼 | 描述 |
---|---|
100 Continue | 伺服器僅接收到部分請求,但是一旦伺服器并沒有拒絕該請求,用戶端應該繼續發送其餘的請求。 |
101 Switching Protocols | 伺服器轉換協定:伺服器将遵從客戶的請求轉換到另外一種協定。 |
2xx:資訊
200 OK | 請求成功(其後是對GET和POST請求的應答文檔。) |
201 Created | 請求被建立完成,同時新的資源被建立。 |
202 Accepted | 供處理的請求已被接受,但是處理未完成。 |
3xx:資訊
300 Multiple Choices | 多重選擇。連結清單。使用者可以選擇某連結到達目的地。最多允許五個位址。 |
301 Moved Permanently | 所請求的頁面已經轉移至新的url。 |
302 Found | 所請求的頁面已經臨時轉移至新的url。 |
303 See Other | 所請求的頁面可在别的url下被找到。 |
304 Not Modified | 未按預期修改文檔。用戶端有緩沖的文檔并發出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶隻想比指定日期更新的文檔)。伺服器告訴客戶,原來緩沖的文檔還可以繼續使用。 |
4xx:資訊
400 Bad Request | 伺服器未能了解請求。 |
401 Unauthorized | 被請求的頁面需要使用者名和密碼。 |
402 Payment Required | 此代碼尚無法使用。 |
403 Forbidden | 對被請求頁面的通路被禁止。 |
404 Not Found | 伺服器無法找到被請求的頁面。 |
5xx:資訊
500 Internal Server Error | 請求未完成。伺服器遇到不可預知的情況。 |