in computer science, in particlular networking, a session是一種在多個裝置、計算機或者使用者(login session)之間進行的半永久性(其資訊傳輸通道是活動的)的互動式(動作)的資訊交換過程,即連線建立到連線斷開的這一時間段中一系列的資訊交換的過程,更多的是一些列狀態的遷移過程,也稱為dialogue,conversation,meeting。其包含以下三個方面:第一是半永久,也就是說這個包含了何時開始何時結束的過程,對於面向連線的一些通訊而言,往往是連線的建立意味著會話的開始,連線的斷開意味著會話的結束。第二互動式的,其可以通過傳輸資料來進行一些動作及狀態遷移。第三資訊交換,及資訊的傳輸,可以是單向也可以是雙向。
session往往是一種雙向連線通訊,其意味著在兩個方向上的多個資訊資料報的傳輸。
session control主要是對於會話的開始和退出及其中間的過程的追蹤,以及狀態的遷移的記錄和控制。session往往伴隨著session control的。
會話在tcp/ip體系中各層的表
1、資料鏈路層
資料鏈路層的傳輸過程,往往意味著開頭的頭部字段,ethernet協議首部會有7個位元組用於同步1個位元組表明後面的資料是mac位址,告訴接收方,需要開始接收資料了,雖然其也有類似於建立連線的過程(這個更多的是一種類似於約定的東西),但是卻沒有互動式,所以並沒有會話這個概念。
2、網路層
網路層主要是ip協議,其是乙個無連線的協議,所以並沒有連線的概念,也就沒有互動式的概念,所以其沒有會話的概念。
3、傳輸層
傳輸層常見的就是tcp和udp,對於tcp而言,其具有連線建立和連線斷開的過程,且其通訊雙方是互動的,可以認為其連線通訊過程是一種會話過程。而udp與其相對,沒有會話的概念。
4、應用層
這個層根據使用者的自己的協議來確定,其是否需要建立連線和是否是互動式的來確定是否有會話的概念,對於一些常見的協議,例如telnet,其需要使用者登入,意味著連線開始,使用者退出意味著連線斷開,期間可以有資料傳輸,所以有會話的概念。http其每次開始傳輸資料之前,都需要先建立乙個完整的tcp連線,然後再開始http報文傳輸,伺服器回應完畢之後,tcp連線斷開,其具有連線建立過程具有資訊傳輸,所以是有會話的這個概念的,只不過這個會話很短。
在確定一些協議有沒有會話的概念的時候,應該僅僅從該協議本身出發,看這個協議有沒有連線建立的這樣乙個過程,連線的建立往往意味著會話的開始,而session control從建立階段到結束階段一直要存在,會話概念的分析要避免這個協議本身所依賴的底層協議所帶來的影響。只要該協議有連線的建立,則意味著該協議,應該具有session,也需要其產生乙個session control。
在以使用者為個體的應用層的架構中,使用者的登入相當於連線的建立,使用者的退出相當於連線的斷開,所以通常來說都是有會話這個概念的,我們可以命名為使用者層。所以乙個協議的設計可以在應用層再進行分層設計,只不過變得相當複雜了。
這就有乙個重要的問題了,如何分層,通訊的分層設計?
一些個人理解。
session狀態的理解及表現。
一 官方 session status 返回值為 有以下幾種情況,當status為1時,列印 session,會提示變數不存在。這時候就需要用到session start 了,開啟session之後,status變成了2,才可以用到session 如果直接給 session賦值,這時的 sessio...
理解Cookie和Session的區別及使用
http是一種無狀態的協議,為了分辨鏈結是誰發起的,需自己去解決這個問題。不然有些情況下即使是同乙個 每開啟乙個頁面也都要登入一下。而session和cookie就是為解決這個問題而提出來的兩個機制。在 中,http請求是無狀態的。也就是說即使第一次和伺服器連線後並且登入成功後,第二次請求伺服器依然...
Token和session的理解及使用
最近專案中有用到token和session,但是我對此不是很理解,所以特地整理下學習筆記,已便自己檢視,也可以幫助到更多跟我一樣有疑惑者。一 我們先解釋一下他的含義 1 token的引入 token是在客戶端頻繁向服務端請求資料,服務端頻繁的去資料庫查詢使用者名稱和密碼並進行對比,判斷使用者名稱和密...