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表明服务器端进程
公路表明链接,
运送一次白菜表明一个会话
一个链接能够进行屡次的会话
一个会话能够不依赖于某个链接,甚至没有链接(当我准备好了,真正开始运送时再创建链接)
一个会话不会影响别的会话