軟體測試人員必備網路知識(二):什麼是Session?Cookie與Session之間有哪些區別?
什麼是Session?Session什麼時候產生?
Session:在計算機中,尤其是在網路應用中,稱為“會話控制”。Session 物件儲存特定使用者會話所需的屬性及配置資訊。這樣,當用戶在應用程式的 Web 頁之間跳轉時,儲存在 Session 物件中的變數將不會丟失,而是在整個使用者會話中一直存在下去。
當用戶請求來自應用程式的 Web 頁時,如果該使用者還沒有會話,則 Web 伺服器將自動建立一個 Session 物件。當會話過期或被放棄後,伺服器將終止該會話。
簡單來說,客戶端瀏覽服務端的時候,服務端把客戶端資訊以某種形式記錄在伺服器上,這種記錄就是Session。所以Session是儲存在伺服器上的。
為什麼要使用Session?什麼是SessionID?
因為很多第三方可以獲取到這個Cookie,伺服器無法判斷Cookie是不是真實使用者傳送的,所以Cookie可以偽造,偽造Cookie實現登入進行一些HTTP請求。
如果從安全性上來講,Session比Cookie安全性稍微高一些,我們先弄清一點,SessionID是從哪裡來的,sessionID是如何使用的:客戶端第一次請求Session物件時候,伺服器會為客戶端建立一個session,並將通過特殊演算法算出一個session的ID,下次請求資源時(Session未過期),瀏覽器會將sessionID(實質是cookie)放置到請求頭中,伺服器接收到請求後就得到該請求的SessionID,伺服器找到該id的session返還給請求者使用。
一個會話只能有一個session物件,對session來說是隻看sessionID。按理來說,只要知道SessionID就可以進行偽登入。但是你想得到這個sessionID,得知道別人什麼時候進行登入。同時sessionID是加密的,session過期時sessionID也會失效,想在短時間內功破加了密的sessionID有點難度。
Session的生命週期?
根據需求設定,一般來說,半小時。
舉個例子,你登入一個伺服器,伺服器返回給你一個sessionID,登入成功之後的半小時之內沒有對該伺服器進行任何HTTP請求,半小時後你進行一次HTTP請求,會提示你重新登入。這就是我們常說的Session已失效,也就是說就算的session_id還存在,但是session照樣會結束自己的生命週期。
Cookie與Session之間有哪些區別或者是優缺點?
知道了Cookie與Session,我們來做一些簡單的總結: 1、Cookie可以儲存在瀏覽器或者本地,session只能存在伺服器 2、session比cookie更具有安全性 3、因為Session是儲存在伺服器當中的,所以Session過多,可能會對伺服器產生壓力。在我看來,Session的生命週期算是減少伺服器壓力的一種方式。 4、單個cookie儲存的資料不能超過4K,很多瀏覽器都限制一個站點最多儲存20個cookie
網路知識一共是4個系列,如果大家覺得有用,後期是陸續發給大家哦
相關推薦
軟體測試人員必備網路知識(二):什麼是Session?Cookie與Session之間有哪些區別?
什麼是Session?Session什麼時候產生? Session:在計算機中,尤其是在網路應用中,稱為“會話控制”。Session 物件儲存特定使用者會話所需的屬性及配置資訊。這樣,當用戶在應用程式的 Web 頁之間跳轉時,儲存在 Session 物件中的變數將不會
java基礎鞏固系列(二):Integer與int之間的區別
在JDK1.5之後引入了自動裝箱(autoboxing)與自動拆箱(unboxing),這讓很多對java的初學者感到很疑惑,我剛才也是其中一員。 首先,有一些基本的概念需要了解: 1、Ingeter是int的包裝類,int的初值為0,Ingeter的初值為null。 2
軟體測試面試必備網路知識要點
本文通過一些知識要點整理,可能整理不專業 1.網路分類 目前最主要的三種網路 1.電信網路(俗稱的電話網路) 2.有限電視網路 3.計算機網路(目前發展最快、資訊時代核心技術) 作為軟體測試在工作中主
軟體測試人員必備Linux命令(初、中、高階)
有些技能可以事半功倍,有些命運掌握在我們手中。熟練的掌握和使用這些命令可以提高工作效率,並且結合這些命令對測試過程中遇到的問題進行一些初步的定位。 1 目錄與檔案操作 1.1 ls(初級) 使用許可權:所有人 功能 : 顯示指定工作目錄下之內容(列出目前工作目錄所含之檔案及子目錄)。 引數 : -a
軟體測試相關概念以及原則(二)
敏捷測試:1、強調從客戶角度進行測試 2、重點關注迭代測試新功能,不再強調測試階段 3、儘早測試,不間斷測試,具備條件即測試 4、強調持續反饋 5、預防缺陷重於發現缺陷 敏捷測試 VS 傳統測試 傳統測試:1、測試是質量的最後保護者 2、嚴格的變
PHP7語法知識(二):流程控制語句
bre each循環 if條件 HP Go 條件控制語句 語句 跳轉 AC 一、條件控制語句 1、if條件控制語句; 2、switch分支語句 二、循環控制語句 1、while循環; 2、do while循環; 3、for循環; 4、foreach循環; 三、跳轉語句 1、
Windows網路程式設計(二):Socket簡介
Socket簡介 Socket被稱為套接字,描述了IP和埠等資訊,是一個通訊鏈的控制代碼。 微軟專門開發了一套支援多種網路協議的網路程式設計介面,叫做Winsock,Winsock是Windos SDK的一部分,全稱Windows Sockets API。它對多種協議做了封裝,S
JPA基礎知識(二):使用JPA持久化物件的步驟
使用JPA持久化物件的步驟 1. 建立JPA工程 2. 導jar包 3. 建立persistence.xml 3.1 指定與xx資料庫的互動 3.2 指定JPA使用哪個持久化框架,以及配置框架的基本屬性 3.3 在檔案中配置持久化單元
機器學習基本知識(二):邏輯迴歸
一、分類和迴歸 迴歸(Regression)和分類(Classification)是機器學習中的兩大類問題,迴歸問題的輸出是連續的,而分類的輸出則是代表不同類別的有限個離散數值。
[Python]網路爬蟲(二):利用urllib2通過指定的URL抓取網頁內容
版本號:Python2.7.5,Python3改動較大,各位另尋教程。 所謂網頁抓取,就是把URL地址中指定的網路資源從網路流中讀取出來,儲存到本地。 類似於使用程式模擬IE瀏覽器的功能,把URL作為HTTP請求的內容傳送到伺服器端, 然後讀取伺服器端的響應資源。 在
[Python]網路爬蟲(二):利用urllib通過指定的URL抓取網頁內容
1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=F
802.11無線網路學習(二):802.11 網路概論
1. 縮寫 MAC(Media Access Control) —— 媒介訪問控制 LLC(Logical Link Control) —— 邏輯鏈路控制層 PHY(Physical) —— 物理層 FHSS(Frequency Hopping Spread
UI網路筆記(二):UI網路之Post同步和非同步的密文請求
一、Post相關內容 1、有同步、非同步的方式; 2、get(明文)瀏覽器裡看,post(密文)把引數變成NSData 3、post可變字串需要兩個: 一個拼接URL+interface req的時候只把URL+interface的字串放進來 一個拼接ke
Spark筆記整理(二):RDD與spark核心概念名詞
大數據 Spark [TOC] Spark RDD 非常基本的說明,下面一張圖就能夠有基本的理解: Spark RDD基本說明 1、Spark的核心概念是RDD (resilient distributed dataset,彈性分布式數據集),指的是一個只讀的,可分區的分布式數據集,這個數據集的全
深入理解overlayfs(二):使用與原理分析
在初步瞭解overlayfs用途之後,本文將介紹如何使用overlayfs以及理解該檔案系統所特有的一些功能特性。由於目前主線核心對overlayfs正在不斷的開發和完善中,因此不同的核心版本改動可能較大,本文儘量與最新的核心版本保持一致,但可能仍會存在細微的出入。 核心版本:Linux-4.1
API網關Kong(二):Kong與Kubernetes集成的方法
ada Once services per gpl recommend methods args timeout 作者: 李佶澳 轉載請保留:原文地址 發布時間:2018-09-30 16:07:13 +0800 說明 先說組成 控制平面與數據平面
機器學習速成筆記(二): 訓練與損失
訓練模型通過有標籤樣本來學習(確定)所有的權重和偏差的理想值。 損失是對槽糕預測的懲罰,損失是一個數值,模型的預測完全正確,則損失為零,反之,模型的預測越槽糕,損失越大。 平方損失:一種常見的損失函式,線性迴歸模型就是使用該平方損失 均方誤差:每個樣本的平均平方損失,計算均方誤差,要算出
演算法快學筆記(二):陣列與連結串列
1. 說明 當程式需要將資料儲存到記憶體時,計算機會給你一個儲存地址。需要存 儲多項資料時,有兩種基本方式——陣列和連結串列。但它們並非都適用於所有的情形,因此知道它們的特性很重要。本文將對陣列與連結串列的原理與優缺點進行總結。 2. 陣列 使用陣列儲存多個元素的時候,陣列中元素
Docker的使用初探(二):Docker與.NET Core的結合
目錄 Docker的使用初探(二):Docker與.NET Core的結合 新增Dockefile 1. 在建立專案時新增 2. 手動新增 3. 容器業務流程協調控制程式支援 Dockefile語法 Docker專
Java基礎總結從0開始(二):final、finally、finalize的區別
final:用於修飾類、方法和屬性;被修飾的類不能被繼承,方法不能重寫,屬性不可改變即參量; -----ps:abstract和final不能同時修飾類finally:多用捕獲異常後必須執行執行的程式碼塊,比例關閉連線,IO流等;finaliza:JVM在回收垃