日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python如何使用session和cookie_Python爬虫番外篇之Cookie和Session-阿里云开发者社区

發布時間:2024/9/19 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python如何使用session和cookie_Python爬虫番外篇之Cookie和Session-阿里云开发者社区 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

什么是Cookie

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

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

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

其實這里有一個非常典型的應用,就是關于你登錄很多網站的賬號信息,你讓記住密碼之后,一段時間內,不需要輸入密碼,每次都是登錄狀態

Cookie的分類

這里Cookie主要分為兩種:

會話Cookie:不設置過期時間,保存在瀏覽器的內存中,關閉瀏覽器,Cookie便被銷毀

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

Cookie屬性

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

Version 0的屬性

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

Expires:過期時間

Domain:生成該Cookie的域名

Path: 該Cookie是在當前的哪個路徑下生成

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

Version 1的屬性

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

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

CommentURL:該服務器為此COokie提供URI注釋

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

Domain:生成該Cookie的域名

Max-Age:最大失效時間,與Version 0不同的是這里設置的是在多少秒后失效

Path:該Cookie是在當前的哪個路徑下生成

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

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

關于Session

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

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

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

cookie 和session的區別是:cookie數據保存在客戶端,session數據保存在服務器端。

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

session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能,如果主要考慮到減輕服務器性能方面,應當使用COOKIE

cookie和session各有優缺點,所以將登陸信息等重要信息存放為SESSION;其他信息如果需要保留,可以放在COOKIE中所有的努力都值得期許,每一份夢想都應該灌溉!

總結

以上是生活随笔為你收集整理的python如何使用session和cookie_Python爬虫番外篇之Cookie和Session-阿里云开发者社区的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。