python 關於post和get的區別

2021-07-25 04:19:29 字數 1264 閱讀 3172

1、url解析:

基本格式:schema://host[:port#]/path/.../[?query-string][#anchor]

scheme               指定低層使用的協議(例如:http, https, ftp)

host                   http伺服器的ip位址或者網域名稱

port#                 http伺服器的預設埠是80,這種情況下埠號可以省略。如果使用了別的埠,必須指明,例如

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 Request中的post和get區別

1 get是從伺服器上獲取資料,post是向伺服器傳送資料。2 在客戶端,get是把引數資料佇列加到提交表單的action屬性所指的url中,值和表單內各個字段一一對應,在url中可以看到。post是通過http post機制,將表單 內各個字段與其內容放置在html header內一起傳送到act...

HTTP Request中的post和get區別

get和post之間的主要區別 1 get是從伺服器上獲取資料,post是向伺服器傳送資料。2 在客戶端,get是把引數資料佇列加到提交表單的action屬性所指的url中,值和表單內各個字段一一對應,在url中可以看到。post是通過http post機制,將表單內各個字段與其內容放置在html ...

GE與POST方法區別

get方法一般用於查詢並獲取資訊,這意味著它是冪等的 對同乙個url的多個請求,返回結果完全一樣 因為沒有修改資源狀態,所以它是安全的。而post一般用於更新資源資訊,既不是冪等,也不是安全的。get方法請求的資料會被瀏覽器快取下來,會留下歷史記錄。而post方法提交的資料不會被瀏覽器快取下來,不會...