1. 程式人生 > >軟體測試人員必備網路知識(二):什麼是Session?Cookie與Session之間有哪些區別?

軟體測試人員必備網路知識(二):什麼是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?CookieSession之間哪些區別

什麼是Session?Session什麼時候產生?    Session:在計算機中,尤其是在網路應用中,稱為“會話控制”。Session 物件儲存特定使用者會話所需的屬性及配置資訊。這樣,當用戶在應用程式的 Web 頁之間跳轉時,儲存在 Session 物件中的變數將不會

java基礎鞏固系列Integerint之間區別

在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筆記整理RDDspark核心概念名詞

大數據 Spark [TOC] Spark RDD 非常基本的說明,下面一張圖就能夠有基本的理解: Spark RDD基本說明 1、Spark的核心概念是RDD (resilient distributed dataset,彈性分布式數據集),指的是一個只讀的,可分區的分布式數據集,這個數據集的全

深入理解overlayfs使用原理分析

在初步瞭解overlayfs用途之後,本文將介紹如何使用overlayfs以及理解該檔案系統所特有的一些功能特性。由於目前主線核心對overlayfs正在不斷的開發和完善中,因此不同的核心版本改動可能較大,本文儘量與最新的核心版本保持一致,但可能仍會存在細微的出入。 核心版本:Linux-4.1

API網關KongKongKubernetes集成的方法

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在回收垃