会话 (计算机科学)

✍ dations ◷ 2025-06-30 10:18:40 #网络协议

在计算机科学领域来说,尤其是在网络领域,会话(session,Microsoft Windows 中文版译作工作阶段)是一种持久网络协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包的作用机制,session在网络协议(例如telnet或FTP)中是非常重要的部分。

在不包含会话层(例如UDP)或者是无法长时间驻留会话层(例如HTTP)的传输协议中,会话的维持需要依靠在传输数据中的高级别程序。例如,在浏览器和远程主机之间的HTTP传输中,HTTP cookie就会被用来包含一些相关的信息,例如session ID,参数和权限信息等。

TCP 会话通常是通过子进程和(或)多线程在软件中实现的,当计算机创建或者加入一个会话时即创建一个新的进程或线程。HTTP 会话通常不会针对每个会话创建一个线程,而是由一个储存每个会话状态信息的数据库实现的。使用多线程或者多进程的方式带来的好处是降低了软件的复杂度,因为每个线程或者进程都单独具备自己的历史信息并且封装了变量。而这样做的劣势是带来了大量系统资源的开销,而且会话会因为系统的重启而被打断。

当客户端在多个服务器调取数据时,保持会话状态的一致性是需要注意的,客户端需用同时保持和某一个主机的连接,或者多个服务器端需要共享一个储存会话信息的文件系统或者数据库。否则,当用户在一个新的而不是一开始保存会话信息的主机上提交访问请求的时候,主机会因为无法获知原来主机的会话的访问状态而产生问题。

服务器端的会话是快速而高效的,但是在负载均衡系统和高速应用系统中的使用会比较麻烦,而在没有储存能力的系统上更是无法使用。在负载均衡系统中可以通过共享储存或者设立独立的存储服务器来解决,这需要根据系统的效率和加载分布的需求情况。

使用缓存存储会话数据是一种不需要储存介质的解决方案。这种方式适合于处理少量数据的客户端操作(例如路由或网络桥接器对多个客户端产生的请求)。但是这种方式会消耗较多内存空间。

客户端会话使用了Cookie和加密技术来完成上面提到的数据储存需求。

在动态页面完成解析的时候,储存在会话中的变量会被压缩后传输给客户端的Cookie。此时完全依靠客户端的文件系统来保存这些数据(或者内存)。

在每一个成功的请求中,Cookie中都保存有服务器端用户所具有的身份证明(PHP中的session id)或者更为完整的数据。

虽然这样的机制可以保存数据的前后关联,但是必须要保障数据的完整性和安全性。

相关

  • 丙二酰辅酶A脱羧酶丙二酰辅酶A脱羧酶(英语:Malonyl-CoA decarboxylase,又称为丙二酸单酰辅酶A脱羧酶)是一个与丙二酰辅酶A脱羧酶缺乏症相关的酶。这种酶催化丙二酰辅酶A转变为乙酰辅酶A与二氧化碳
  • 理查·欧文理查·欧文爵士,KCB,FRS,FMRS(英语:Sir Richard Owen,1804年7月20日-1892年12月18日),英国生物学家、比较解剖学家与古生物学家,皇家学会成员,曾经对许多脊椎动物进行分类与命名。理查
  • 病毒体一个位于宿主细胞之外的独立、功能完全的病毒颗粒一些病毒拥有的包裹病毒体的脂肪泡一段DNA或RNA。如果把核苷酸比作字的话,那么基因就是由核苷酸写成的句子。基因会指导病毒
  • 傲慢傲慢(古希腊语:ὕβρις,英语:Hubris或 hybris),是贬义词。形容极度自信与骄傲的心理状态,以致于拥有这种心态的人会脱离现实,对自己的能力、成就、竞争力与处境有过度正面的评价,
  • 山蚁亚科蚁亚科(Formicinae),或称山蚁亚科,隶属于蚁科,可下分为约51属11族。山蚁亚科存在一些原始的特征,如茧、工蚁具有单眼,除了栖息在土中的物种,大部分物种小颚须、下唇须及触角节数减少
  • 六部六部(地方及藩属国的称六曹),中国、朝鲜、越南古代数个官署的统称。从隋唐开始,对中央行政机构中的吏部、户部、礼部、兵部、刑部、工部各部的总称。以上六部,最高领导长官称为尚
  • 约翰·福布斯·纳什小约翰·福布斯·纳什(英语:John Forbes Nash Jr.,1928年6月13日-2015年5月23日),美国数学家,前马萨诸塞理工学院摩尔荣誉讲师,主要研究博弈论、微分几何学和偏微分方程。晚年为普林
  • 蒙帕拿斯公墓蒙帕纳斯公墓(法语:Cimetière du Montparnasse)是与拉雪兹神父公墓、蒙马特公墓并列的巴黎三大公墓之一,位于圣日耳曼德佩广场南部的蒙帕纳斯区,属于巴黎十四区。蒙帕纳斯最初的
  • 美国国会图书馆图书分类法美国国会图书馆图书分类法(英语:Library of Congress Classification),现时为不少欧美大学图书馆所采用,它用了26个英文字母其中的21个(I、O、W、X、Y未被使用)作分类代码,比0-9的
  • 夏季奥林匹克运动会跳水比赛跳水自1904年夏季奥运会起成为是夏季奥运会比赛项目之一。跳水和游泳、花样游泳和水球都由国际游泳联合会管理和监督。国际奥林匹克委员会规定了以下项目为奥运会跳水项目。