欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python爬蟲番外篇之Cookie和Session詳解

 更新時間:2017年12月27日 13:45:06   作者:python修行路  
這篇文章主要介紹了Python爬蟲番外篇之Cookie和Session詳解,具有一定借鑒價值,需要的朋友可以參考下

關(guān)于cookie和session估計很多程序員面試的時候都會被問到,這兩個概念在寫web以及爬蟲中都會涉及,并且兩者可能很多人直接回答也不好說的特別清楚,所以整理這樣一篇文章,也幫助自己加深理解

什么是Cookie

其實簡單的說就是當(dāng)用戶通過http協(xié)議訪問一個服務(wù)器的時候,這個服務(wù)器會將一些Name/Value鍵值對返回給客戶端瀏覽器,并將這些數(shù)據(jù)加上一些限制條件。在條件符合時,這個用戶下次再訪問服務(wù)器的時候,數(shù)據(jù)又被完整的帶給服務(wù)器。

因為http是一種無狀態(tài)協(xié)議,用戶首次訪問web站點的時候,服務(wù)器對用戶一無所知。而Cookie就像是服務(wù)器給每個來訪問的用戶貼的標簽,而這些標簽就是對來訪問的客戶端的獨有的身份的一個標識,這里就如同每個人的身份證一樣,帶著你的個人信息。而當(dāng)一個客戶端第一次連接過來的時候,服務(wù)端就會給他打一個標簽,這里就如同給你發(fā)了一個身份證,當(dāng)你下載帶著這個身份證來的時候,服務(wù)器就知道你是誰了。所以Cookie是存在客戶端的,這里其實就是在你的瀏覽器中。

Cookie中包含了一個由名字=值(name=value)這樣的信息構(gòu)成的任意列表,通過Set-Cookie或Set-Cookie2HTTP響應(yīng)(擴展)首部將其貼到客戶端身上。如下圖例子所示:

其實這里有一個非常典型的應(yīng)用,就是關(guān)于你登錄很多網(wǎng)站的賬號信息,你讓記住密碼之后,一段時間內(nèi),不需要輸入密碼,每次都是登錄狀態(tài)

Cookie的分類

這里Cookie主要分為兩種:

會話Cookie:不設(shè)置過期時間,保存在瀏覽器的內(nèi)存中,關(guān)閉瀏覽器,Cookie便被銷毀

普通Cookie:設(shè)置了過期時間,保存在硬盤上

Cookie屬性

因為最開始的cookie是網(wǎng)景公司定義的,后來又有了RFC版本所以當(dāng)前的Cookie有兩個版本:Version0Version1他們有兩種設(shè)置響應(yīng)頭的標識,分別是:Set-Cookie和Set-Cookie2,這也造成了一些屬性的不同,這里需要注意:常用的為Version0

Version0的屬性

NAME=Value:鍵值對設(shè)置要保存的Name/Value,這里的name不能喝其他屬性的名字一樣

Expires:過期時間

Domain:生成該Cookie的域名

Path:該Cookie是在當(dāng)前的哪個路徑下生成

Secure:如果設(shè)置了這個屬性,那么只會在SSH連接時才會回傳該Cookie

Version1的屬性

Name=VALUE:鍵值對設(shè)置要保存的Name/Value,這里的name不能喝其他屬性的名字一樣

Comment:主是想,用于說明該Cookie有什么用途

CommentURL:該服務(wù)器為此COokie提供URI注釋

Discard:是否在回話結(jié)束丟棄該Cookie,默認為false

Domain:生成該Cookie的域名

Max-Age:最大失效時間,與Version0不同的是這里設(shè)置的是在多少秒后失效

Path:該Cookie是在當(dāng)前的哪個路徑下生成

Port:該Cookie在什么端口下可以回傳服務(wù)端,如果有多個端口,以逗號隔開

Secure:如果設(shè)置了這個屬性,那么只會在SSH連接時才會回傳該Cookie

關(guān)于Session

上面我們知道了Cookie可以讓服務(wù)器端跟蹤每個客戶端的訪問,但是每次客戶端的訪問都必須傳回這些Cookie,如果Cookie很多,這無形地增加了客戶端與服務(wù)端的數(shù)據(jù)傳輸量,而Session的出現(xiàn)正是為了解決這個問題。

同一個客戶端每次和服務(wù)端交互時,不需要每次都傳回所有的Cookie值,而是只要傳回一個ID這個ID是客戶端第一次訪問服務(wù)器的時候生成的,而且每個客戶端是唯一的。這樣每個客戶端就有了一個唯一的ID,客戶端只要傳回這個ID就行了,這個ID通常是NANE為JSESIONID的一個Cookie。所以Session其實是利用Cookie進行信息處理的。

cookie和session的共同之處在于:cookie和session都是用來跟蹤瀏覽器用戶身份的會話方式。

cookie和session的區(qū)別是:cookie數(shù)據(jù)保存在客戶端,session數(shù)據(jù)保存在服務(wù)器端。

cookie不是很安全,別人可以分析存放在本地的COOKIE并進行COOKIE欺騙,如果主要考慮到安全應(yīng)當(dāng)使用session,當(dāng)然也沒有絕對的安全,只是相對cookie,session更加安全

session會在一定時間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會比較占用你服務(wù)器的性能,如果主要考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE

cookie和session各有優(yōu)缺點,所以將登陸信息等重要信息存放為SESSION;其他信息如果需要保留,可以放在COOKIE中

總結(jié)

以上就是本文關(guān)于Python爬蟲番外篇之Cookie和Session詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • python列表的逆序遍歷實現(xiàn)

    python列表的逆序遍歷實現(xiàn)

    這篇文章主要介紹了python列表的逆序遍歷實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python實現(xiàn)人機五子棋

    python實現(xiàn)人機五子棋

    這篇文章主要為大家詳細介紹了python實現(xiàn)人機五子棋,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Pyqt助手安裝PyQt5幫助文檔過程圖解

    Pyqt助手安裝PyQt5幫助文檔過程圖解

    這篇文章主要介紹了Pyqt助手安裝PyQt5幫助文檔過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • PyQT5 QTDesigner窗口及組成的實現(xiàn)

    PyQT5 QTDesigner窗口及組成的實現(xiàn)

    這篇文章主要介紹了PyQT5 QTDesigner窗口及組成的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python?浪漫煙花實現(xiàn)代碼全解

    Python?浪漫煙花實現(xiàn)代碼全解

    這篇文章主要為大家詳細介紹了如何利用Python制作旖旎風(fēng)景浪漫的煙花,文中的示例代碼講解詳細,對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-02-02
  • python導(dǎo)入庫的具體方法

    python導(dǎo)入庫的具體方法

    在本篇內(nèi)容里小編給大家分享的是關(guān)于python如何導(dǎo)入庫的步驟和方法,有需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • 解決django.db.utils.IntegrityError:(1048, Column last_login cannot be null)

    解決django.db.utils.IntegrityError:(1048, Column las

    這篇文章主要介紹了解決django.db.utils.IntegrityError:(1048, Column last_login cannot be null)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • python使用matplotlib繪圖時圖例顯示問題的解決

    python使用matplotlib繪圖時圖例顯示問題的解決

    matplotlib 是python最著名的繪圖庫,它提供了一整套和matlab相似的命令A(yù)PI,十分適合交互式地進行制圖。下面這篇文章主要給大家介紹了在python使用matplotlib繪圖時圖例顯示問題的解決方法,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。
    2017-04-04
  • 在PyTorch中實現(xiàn)高效的多進程并行處理

    在PyTorch中實現(xiàn)高效的多進程并行處理

    PyTorch是一個流行的深度學(xué)習(xí)框架,一般情況下使用單個GPU進行計算時是十分方便的,但是當(dāng)涉及到處理大規(guī)模數(shù)據(jù)和并行處理時,需要利用多個GPU,所以這篇文章我們將介紹如何利用torch.multiprocessing模塊,在PyTorch中實現(xiàn)高效的多進程處理,需要的朋友可以參考下
    2024-07-07
  • 關(guān)于Python中的元組介紹

    關(guān)于Python中的元組介紹

    大家好,本篇文章主要講的是關(guān)于Python中的元組介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12

最新評論