1.使用get方式時,url類似如下格式:
index.jsp?id=100&op=bind
get報問頭如下:
2.使用post方式時,post方法將請求引數封裝在http請求資料中,以名稱/值的形式出現,可以傳輸大量資料,可用來傳送檔案。
post報文頭如下:
在http頭後邊有一空行,空行後邊接著傳送post資料。空行通知伺服器以下不再有請求頭。
3.可以發現的一點是,無論是post還是get方式,他們所傳遞的資料都要進行url編碼
4. url編碼是一種瀏覽器用來打包表單輸入的格式。
瀏覽器從表單中獲取所有的name和其中的值 ,將它們以name/value引數編碼(移去那些不能傳送的字元,將資料排行等等)作為url的一部分或者分離地發給伺服器。
不管哪種情況,在伺服器端的表單輸入格式樣子象這樣:
thename=ichabod+crane&gender=male&status=missing& ;headless=yes
5.url編碼遵循下列規則:
1.每對name/value由&;符分開;
2.每對來自表單的name/value由=符分開。
3.如果使用者沒有輸入值給這個name,那麼這個name還是出現,只是無值。
4.任何特殊的字元(就是那些不是簡單的七位ascii,如漢字)將以百分符%用十六進製制編碼,
6.所以,當我們使用get或者post傳送資料之前,我們都需要對資料進行url編碼。
urllib庫提供了乙個函式來實現url的編碼:
search=urllib.urlencode()輸出為:
'q=python'7.ok,現在正式開始python的get和post請求:
#!/usr/bin/python#-*-coding:utf-8-*-
# 進行表單提交 小項 2008-10-09
import httplib,urllib; #載入模組
#定義需要進行傳送的資料
params = urllib.urlencode();
#定義一些檔案頭
"connection":"keep-alive","referer":""};
#與**構建乙個連線
#開始進行資料提交 同時也可以使用get進行
conn.request(method="post",url="/newsadd.asp?action=newnew",body=params,headers=headers);
#返回處理後的資料
response = conn.getresponse();
#判斷是否提交成功
if response.status == 302:
print "發布成功!^_^!";
else:
print "發布失敗\^0^/";
#關閉連線
conn.close();
python 關於post和get的區別
1 url解析 基本格式 schema host port path query string anchor scheme 指定低層使用的協議 例如 http,https,ftp host http伺服器的ip位址或者網域名稱 port http伺服器的預設埠是80,這種情況下埠號可以省略。如果使用...
get和post的區別
在b s應用程式中,前台與後台的資料互動,都是通過html中form表單完成的。form提供了兩種資料傳輸的方式 get和post。雖然它們都是資料的提交方式,但是在實際傳輸時確有很大的不同,並且可能會對資料產生嚴重的影響。雖然為了方便的得到變數值,web容器已經遮蔽了二者的一些差異,但是了解二者的...
post和get的區別?
1.get是從伺服器上獲取資料,post是向伺服器傳送資料。get 和 post只是一種傳遞資料的方式,get也可以把資料傳到伺服器,他們的本質都是傳送請求和接收結果。只是組織格式和資料量上面有差別,http協議裡面有介紹。2.get是把引數資料佇列加到提交表單的action屬性所指的url中,值和...