您好,登錄后才能下訂單哦!
Python中Cookie和Session爬蟲是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
關于cookie和session估計很多程序員面試的時候都會被問到,這兩個概念在寫web以及爬蟲中都會涉及,并且兩者可能很多人直接回答也不好說的特別清楚,所以整理這樣一篇文章,也幫助自己加深理解。
其實簡單的說就是當用戶通過http協議訪問一個服務器的時候,這個服務器會將一些Name/Value鍵值對返回給客戶端瀏覽器,并將這些數據加上一些限制條件。在條件符合時,這個用戶下次再訪問服務器的時候,數據又被完整的帶給服務器。
因為http是一種無狀態協議,用戶首次訪問web站點的時候,服務器對用戶一無所知。而Cookie就像是服務器給每個來訪問的用戶貼的標簽,而這些標簽就是對來訪問的客戶端的獨有的身份的一個標識,這里就如同每個人的身份證一樣,帶著你的個人信息。而當一個客戶端第一次連接過來的時候,服務端就會給他打一個標簽,這里就如同給你發了一個身份證,當你下載帶著這個身份證來的時候,服務器就知道你是誰了。所以Cookie是存在客戶端的,這里其實就是在你的瀏覽器中。
Cookie中包含了一個由名字=值(name=value)這樣的信息構成的任意列表,通過Set-Cookie或Set-Cookie2HTTP響應(擴展)首部將其貼到客戶端身上。
其實這里有一個非常典型的應用,就是關于你登錄很多網站的賬號信息,你讓記住密碼之后,一段時間內,不需要輸入密碼,每次都是登錄狀態
這里Cookie主要分為兩種:
會話Cookie:不設置過期時間,保存在瀏覽器的內存中,關閉瀏覽器,Cookie便被銷毀
普通Cookie:設置了過期時間,保存在硬盤上
因為最開始的cookie是網景公司定義的,后來又有了RFC版本所以當前的Cookie有兩個版本:Version0Version1他們有兩種設置響應頭的標識,分別是:Set-Cookie和Set-Cookie2,這也造成了一些屬性的不同,這里需要注意:常用的為Version0
Version0的屬性
NAME=Value:鍵值對設置要保存的Name/Value,這里的name不能喝其他屬性的名字一樣
Expires:過期時間
Domain:生成該Cookie的域名
Path:該Cookie是在當前的哪個路徑下生成
Secure:如果設置了這個屬性,那么只會在SSH連接時才會回傳該Cookie
Version1的屬性
Name=VALUE:鍵值對設置要保存的Name/Value,這里的name不能喝其他屬性的名字一樣
Comment:主是想,用于說明該Cookie有什么用途
CommentURL:該服務器為此COokie提供URI注釋
Discard:是否在回話結束丟棄該Cookie,默認為false
Domain:生成該Cookie的域名
Max-Age:最大失效時間,與Version0不同的是這里設置的是在多少秒后失效
Path:該Cookie是在當前的哪個路徑下生成
Port:該Cookie在什么端口下可以回傳服務端,如果有多個端口,以逗號隔開
Secure:如果設置了這個屬性,那么只會在SSH連接時才會回傳該Cookie
關于Python中Cookie和Session爬蟲是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。