最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

什么是Cookie

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

因?yàn)閔ttp是一種無(wú)狀態(tài)協(xié)議,用戶首次訪問(wèn)web站點(diǎn)的時(shí)候,服務(wù)器對(duì)用戶一無(wú)所知。而Cookie就像是服務(wù)器給每個(gè)來(lái)訪問(wèn)的用戶貼的標(biāo)簽,而這些標(biāo)簽就是對(duì)來(lái)訪問(wèn)的客戶端的獨(dú)有的身份的一個(gè)標(biāo)識(shí),這里就如同每個(gè)人的身份證一樣,帶著你的個(gè)人信息。而當(dāng)一個(gè)客戶端第一次連接過(guò)來(lái)的時(shí)候,服務(wù)端就會(huì)給他打一個(gè)標(biāo)簽,這里就如同給你發(fā)了一個(gè)身份證,當(dāng)你下載帶著這個(gè)身份證來(lái)的時(shí)候,服務(wù)器就知道你是誰(shuí)了。所以Cookie是存在客戶端的,這里其實(shí)就是在你的瀏覽器中。

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

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

Cookie的分類

這里Cookie主要分為兩種:

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

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

Cookie屬性

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

Version0的屬性

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

Expires:過(guò)期時(shí)間

Domain:生成該Cookie的域名

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

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

Version1的屬性

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

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

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

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

Domain:生成該Cookie的域名

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

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

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

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

關(guān)于Session

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

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

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

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

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

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

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

總結(jié)

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

相關(guān)文章

  • python如何獲取當(dāng)前文件夾下所有文件名詳解

    python如何獲取當(dāng)前文件夾下所有文件名詳解

    這篇文章主要給大家介紹了關(guān)于python如何獲取當(dāng)前文件夾下所有文件名的相關(guān)資料,文中給出了詳細(xì)的示例代碼,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧
    2019-01-01
  • 微軟開源最強(qiáng)Python自動(dòng)化神器Playwright(不用寫一行代碼)

    微軟開源最強(qiáng)Python自動(dòng)化神器Playwright(不用寫一行代碼)

    這篇文章主要介紹了微軟開源最強(qiáng)Python自動(dòng)化神器Playwright(不用寫一行代碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python TestSuite生成測(cè)試報(bào)告過(guò)程解析

    Python TestSuite生成測(cè)試報(bào)告過(guò)程解析

    這篇文章主要介紹了Python TestSuite生成測(cè)試報(bào)告過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Django restframework 框架認(rèn)證、權(quán)限、限流用法示例

    Django restframework 框架認(rèn)證、權(quán)限、限流用法示例

    這篇文章主要介紹了Django restframework 框架認(rèn)證、權(quán)限、限流用法,結(jié)合實(shí)例形式詳細(xì)分析了Djangorestframework 框架認(rèn)證、權(quán)限、限流的具體使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • Pytorch中Softmax和LogSoftmax的使用詳解

    Pytorch中Softmax和LogSoftmax的使用詳解

    這篇文章主要介紹了Pytorch中Softmax和LogSoftmax的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python編程快速上手——PDF文件操作案例分析

    Python編程快速上手——PDF文件操作案例分析

    這篇文章主要介紹了Python 文件操作,結(jié)合具體實(shí)例形式分析了Python針對(duì)pdf文件的遍歷、讀寫、加密、解密等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • Python讀取postgresql數(shù)據(jù)庫(kù)詳情

    Python讀取postgresql數(shù)據(jù)庫(kù)詳情

    這篇文章主要介紹了Python讀取postgresql數(shù)據(jù)庫(kù)詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式

    基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式

    今天小編就為大家分享一篇基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python爬蟲之教你如何爬取地理數(shù)據(jù)

    python爬蟲之教你如何爬取地理數(shù)據(jù)

    這篇文章主要介紹了python爬蟲之教你如何爬取地理數(shù)據(jù),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • pandas中concat函數(shù)實(shí)現(xiàn)橫向連接

    pandas中concat函數(shù)實(shí)現(xiàn)橫向連接

    在pandas中,concat函數(shù)可用于合并不同的Series和DataFrame對(duì)象,本文主要介紹了pandas中concat函數(shù)實(shí)現(xiàn)橫向連接,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04

最新評(píng)論

富锦市| 久治县| 勃利县| 枣阳市| 左云县| 彰化县| 湖南省| 和静县| 合肥市| 苍南县| 临安市| 临泽县| 韶关市| 惠来县| 祁阳县| 子长县| 时尚| 德化县| 肇源县| 彝良县| 泗水县| 高碑店市| 玉田县| 凤台县| 珲春市| 平塘县| 盐亭县| 玛沁县| 涞水县| 宁城县| 芮城县| 明溪县| 滨州市| 绥滨县| 新绛县| 梁平县| 舞钢市| 稻城县| 祁门县| 舞钢市| 桐庐县|