1.get/post介紹 get和post是最常用的http/htttps請求方式,一定要掌握好二者各自特點以及區別。 2.get/post特點 get請求 請求參數在請求地址後面,提交的數據量較小,安全性較差,不建議用來提交敏感信息(地址欄中會顯示,並且有可能被保存請求地址)。 post請求 請求 ...
1.get/post介紹
get和post是最常用的http/htttps請求方式,一定要掌握好二者各自特點以及區別。
2.get/post特點
get請求
請求參數在請求地址後面,提交的數據量較小,安全性較差,不建議用來提交敏感信息(地址欄中會顯示,並且有可能被保存請求地址)。post請求
請求參數放在請求體中提交,提高的數據量大小沒有限制,敏感信息相對安全。
3.get/post區別
GET一般用於獲取/查詢資源信息,而POST一般用於更新資源信息。
1、GET參數通過URL傳遞,POST放在Request body中。 2、GET請求會被瀏覽器主動cache,而POST不會,除非手動設置。 3、GET請求參數會被完整保留在瀏覽器歷史記錄里,而POST中的參數不會被保留。 4、GET請求只能進行url編碼,而POST支持多種編碼方式。 5、POST請求的安全性比GET請求的安全性高,因為GET請求的參數是不加密,明文傳輸的,且會直接顯示到瀏覽器的瀏覽框上;POST請求的數據則是可加密的,也不會顯示到瀏覽器的瀏覽框上。 6、GET請求中有非 ASCII 字元,會在請求之前進行轉碼,POST不用,因為POST在Request body中,通過 MIME,也就可以傳輸非 ASCII 字元。
4.Get
1、請求是為了查找資源,HTML表單數據僅為了幫助搜索。
2、地址欄中直接發起的請求都是get請求,form表單的預設提交方式也是get請求,超鏈接發起的也是get請求;
5.Post
1、只有將form表單的提交方式改成post時發起的才是post請求。
2、有敏感數據
3、傳輸的數據不是普通字元
4、傳輸的數據非常多
5、請求是為了修改伺服器資源
一般我們在瀏覽器輸入一個網址訪問網站都是GET請求。
登錄一個網站、增加新聞評論是POST請求。
6.http發起get/post請求
#http請求 import requests #post請求 login_url="http://www.qabujiaban.com/user/login" data = {"username":"uuuu222都44","password":"WJHasb124*1"} res = requests.post(login_url,data) #def post(url, data=None, json=None, **kwargs): #url 請求地址 #data 請求參數,字典形式傳參(dict) #json json格式的參數(需要轉換) print("響應正文:",res.json()) print("響應頭:",res.headers) print("響應Cookies",res.cookies)#此cookie不可用 #get請求 query_url = "http://www.qabujiaban.com/user/query" query_headers = {"Content-Type":"application/json;charset=UTF-8s"} rq = requests.get(url=query_url,headers=query_headers,cookies=res.cookies) #def get(url, params=None, **kwargs): #url 請求地址 #params 請求參數 #**kwargs 攜帶參數(指定) print("響應狀態碼:",rq.status_code) print("響應頭:",rq.headers) print("請求頭:",rq.request.headers) print("響應正文:",rq.text)#html格式 print("響應正文:",rq.json())#json格式
7.http發起get/post請求封裝
#封裝http請求 import requests class HttpRequest(): #需要的參數 #method:請求方式 #url:請求的url #param:請求參數 #headers:請求頭 #cookie:請求的cookie值 def __init__(self, method, url, param=None, headers=None, cookie=None): self.method=method self.url=url self.param=param self.headers=headers self.cookie=cookie def http_request(self): if self.method.lower()=="post": return requests.post(self.url,self.param) elif self.method.lower()=="get": return requests.get(self.url,self.param,headers=self.headers,cookies=self.cookie) else: print("請求方式錯誤:{0}".format(self.method)) if __name__ == '__main__': login_url="http://www.qabujiaban.com/user/login" data = {"username":"uuuu222都44","password":"WJHasb124*1"} #登陸 res = HttpRequest("Post",login_url,data).http_request() print("登陸響應文本:",res.json())# cookie=res.cookies#獲取cookie query_url = "http://www.qabujiaban.com/user/query" query_headers = {"Content-Type":"application/json;charset=UTF-8s"} #查詢 rqs = HttpRequest("Get",query_url,headers=query_headers,cookie=cookie).http_request() print("查詢響應文本:",rqs.json()) # print("Uu".lower())