session(會話)和connection(鏈接)的定義:數據庫
connection:是一個物理的概念,它指的是一個經過網絡創建的客戶端和專有服務器(Dedicated Server)或共享服務器(Shared Server)的一個網絡鏈接,既是一條物理路勁。服務器
session:是一個邏輯的概念,它是存在於實例中,一個鏈接能夠擁有多個會話也能夠沒有會話,同一個鏈接上的不一樣會話之間不會相互影響。網絡
session和connection的區別與聯繫:session
1. 一個用戶對應一個session,但不必定對應一個connection ,由於幾個session能夠共享一個connection。server
2. 在dedicated sever(專用服務器)鏈接模式下,session和connection一一對應,且個數上session = connection。進程
3. 在shared server(共享服務器)鏈接模式下, 個數上session >= connection。ip
4. 在shared server的multiplexing session模式下,session >= connection,且並不一一對應。io
有一位專家的比喻更形象:服務器端
有A/B兩個城市,須要從A運送白菜到B城數據
咱們先建設一條公路
而後運送白菜過去,包括準備白菜和運送白菜以及返回等一系列的動做。
一條公路,能夠運送0-n次的白菜
固然從A到B的公路也可能不僅一條。
某一次運送白菜,能夠在真正上路時纔開通某一條道路
一次運送不會影響別的運送的狀態
對應數據庫
A表明客戶端進程
B表明服務器端進程
公路表明鏈接,
運送一次白菜表明一個會話
一個鏈接能夠進行屢次的會話
一個會話能夠不依賴於某個鏈接,甚至沒有鏈接(當我準備好了,真正開始運送時再創建鏈接)
一個會話不會影響別的會話