作者好懶伏社,好久沒發(fā)表文章了,那今天就來一發(fā)塔淤?
在技術(shù)面試中摘昌,我們經(jīng)常會遇到這樣的問題,cookice和session 的區(qū)別高蜂? 那么這2者到底是干嘛的聪黎?
在客戶端瀏覽器向服務器發(fā)送請求,服務器做出響應之后,二者便會斷開連接(一次會話結(jié)束)备恤。那么下次用戶再來請求服務器稿饰,服務器沒有任何辦法去識別此用戶是誰
cookie可以向服務器證明用戶身份 ,我們的web系統(tǒng)中是不是需要將用戶的詳細信息儲存在某個位置供頁面調(diào)用呢露泊?用戶的詳細信息就包括姓名喉镰,年齡,性別等信息惭笑。而cookie是存在于客戶端的侣姆,將用戶詳細信息通過網(wǎng)絡發(fā)送到客戶端保存是極不安全的。且cookie大小不能超過4k脖咐,不能支持中文铺敌。這就限制cookie不能滿足存儲用戶信息的需求。這就需要一種機制在服務器端的某個域中存儲一些數(shù)據(jù)屁擅,這個域就是session还最。
總而言之辟癌,cookie/session的出現(xiàn)就是為了解決http協(xié)議無狀態(tài)的弊端,為了讓客戶端和服務端建立長久聯(lián)系而出現(xiàn)的含滴。
簡單的說痰哨,
1胶果、Cookie和Session都是會話技術(shù),Cookie是運行在客戶端斤斧,Session是運行在服務器端
結(jié)合上述的知識點早抠,那么我們是否可以通過cookie 實現(xiàn)免密登錄呢? 不妨我們來測試一下撬讽?
環(huán)境準備:
## 一蕊连、python環(huán)境
brew安裝悬垃。或者是官網(wǎng)下載安裝包甘苍,直接裝都行
二尝蠕、selenium
pip3 install selenium 【不加版本默認下載最新版】
如果遇到網(wǎng)絡報錯就加個國內(nèi)的鏡像
pip3 install selenium -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
三、下載瀏覽器的driver驅(qū)動
注意事項: selenium3.x版本開始不再提供默認瀏覽器支持载庭,所有瀏覽器都是通過各個瀏覽器官方提供相應的瀏覽器驅(qū)動進行支持看彼,這使得運行在各種瀏覽器上的自動化測試更穩(wěn)定。
1.下載的版本和瀏覽器位數(shù)囚聚,取決于你使用的操作系統(tǒng)的類型和位數(shù)(64bit或32bit),雖然瀏覽器的版本位數(shù)和操作系統(tǒng)的位數(shù)沒有映射關(guān)系靖榕,但是為了防止出現(xiàn)驅(qū)動瀏覽器的問題,建議盡量保持版本一致顽铸。
2.瀏覽器的版本和驅(qū)動版本存在映射關(guān)系序矩,下載使用時需注意,如果兩個版本不匹配selenium將無法驅(qū)動瀏覽器
實戰(zhàn):(上代碼)
方法一:
首先我們進行手動登錄拿到cookies, 并打印出來跋破,拿到登錄信息后簸淀,在添加到進去,就可以實現(xiàn)我們的登錄了毒返。
方法二:
以某東為例
這么多信息租幕,你一條條的添加,豈不累死拧簸? 那么方法二來了
方法二:
以json 形式存儲在本地到一個文件當中, 來劲绪,我們繼續(xù)看代碼
當然用這種方法別忘記在前面加上!
import json