python 關於post和get的區別
1、URL解析:
基本格式:schema://host[:port#]/path/.../[?query-string][#anchor]
scheme 指定低層使用的協議(例如:http, https, ftp)
host HTTP伺服器的IP地址或者域名
port# HTTP伺服器的預設埠是80,這種情況下埠號可以省略。如果使用了別的埠,必須指明,例如 http://www.cnblogs.com:8080/
path 訪問資源的路徑
query-string 傳送給http伺服器的資料
anchor- 錨
2、post和get的區別:
HTTP協議定義了很多與伺服器互動的方法,最基本的有4種,分別是GET,POST,PUT,DELETE. 一個URL地址用於描述一個網路上的資源,而HTTP中的GET, POST, PUT, DELETE就對應著對這個資源的查,改,增,刪4個操作,其中最常見請求方式是GET和POST,並且現在瀏覽器一般只支援GET和POST方法。GET一般用於獲取/查詢資源資訊,而POST一般用於更新資源資訊,他們之間主要區別如下:
1)根據HTTP規範,GET用於資訊獲取,而且應該是安全的和冪等的,這裡安全是指該操作用於獲取資訊而非修改資訊,冪等是指對同一URL的多個請求應該返回同樣的結果(這一點在實質實現時,可能並不滿足);
POST表示可能修改變伺服器上的資源的請求。
2)GET請求的資料會附在URL之後(就是把資料放置在HTTP協議頭中),以?分割URL和傳輸資料,引數之間以&相連,如果資料是英文字母/數字,原樣傳送,如果是空格,轉換為+,如果是中文/其他字元,則直接把字串用BASE64編碼;POST把提交的資料則放置在是HTTP包的包體中。
3)因為GET是通過URL提交資料,那麼GET可提交的資料量就跟URL的長度有直接關係,理論上URL長度是沒有限制的,即HTTP協議沒有規定URL的長度,但在實質中,特定的瀏覽器可能對這個長度做了限制;理論上POST也是沒有大小限制的,HTTP協議規範也沒有進行大小限制,但在服務端通常會對這個大小做一個限制,當然這個限制比GET寬鬆的多,即使用POST可以提交的資料量比GET大得多。
最後,網上有人說,POST的安全性要比GET的安全性高,實質上POST跟GET都是明文傳輸,這可以通過類似WireShark工具看到。總之,Get是向伺服器發索取資料的一種請求,而Post是向伺服器提交資料的一種請求。
參考:http://www.tuicool.com/articles/J3maU3F