測試工作中我們經常會聽到這兩個詞,作為測試一定要了解這兩個概念,對于測試應用的接口、業務了解很有幫助。
Cookie和Session的作用?
為什麼會有這兩個東西,首先明确一下HTTP協定的一個重要特點“無狀态”,資料交換完成,服務端和用戶端就斷開連接配接了,是以請求之間沒有相關聯系,每一個請求都是一個獨立的新請求,為了實作狀态保留的,保證前後正常通信,需要在用戶端或伺服器端存儲與會話相關的資料,是以設計了這兩個機制。
Cookie的原理是什麼?
Cookie中文稱為“甜餅”,是由W3C組織提出的儲存在用戶端本地,友善下次通路服務端時直接放到請求封包頭中,如登入的cookie,下次通路同一網站時,使用者不必再次輸入使用者名和密碼就已經直接登入,所有的主流浏覽器如IE、Netscape、Firefox、Opera等都支援Cookie。
session原理什麼?
Session儲存在伺服器上用來記錄使用者狀态的機制。用戶端浏覽器通路伺服器的時候,伺服器把用戶端資訊以某種形式記錄在伺服器上。這就是Session。Session在使用者第一次通路伺服器的時候自動建立。用戶端浏覽器再次通路時隻需要從該Session中查找該客戶的狀态就可以了。
一般用戶端和服務端通過一個SessionID來進行溝通,為了防止不同的使用者之間出現沖突和重複,SessionID一般是一個32或者48個位元組的随機字元串。
cookie 和session 的差別:
存放位置不同:cookie資料存放在用戶端(浏覽器);session資料放在伺服器端,一般存儲在記憶體中,但是SessionID存儲在用戶端cookie中。
cookie由浏覽器存儲在本地,安全有風險,不宜存儲敏感資訊,如密碼等。
session會在一定時間内儲存在伺服器上,通路較多時,影響伺服器性能。
如何測試?
檢查cookie是否按照設定時間保持。
重新整理對cookie有什麼影響。
删除cookie後應用的狀态。
與token的關系?
有些網站的登入并不是采取cookie形式,而是用token,一般app的登入,都是用token來校驗的,大家可以抓包一些軟體驗證一下。關于token後面會單獨給大家講解。
歡迎關注轉發,點贊
持續分享開發測試知識!