天天看點

Python Requests庫 Get和Post的差別和Http常見狀态碼

(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 請求未完成。伺服器遇到不可預知的情況。