会话 (计算机科学)

✍ dations ◷ 2025-05-18 19:26:28 #网络协议

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

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

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

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

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

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

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

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

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

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

相关

  • 过氧化物过氧化物,指一类含有过氧基-O-O-的化合物,具有强氧化性,又可分为有机过氧化物与无机过氧化物。在包含过氧基的化合物中,每个氧原子的氧化数为 -1。1798年德国科学家亚历山大·冯·
  • 丝绸丝绸是用蚕丝编制而成的纺织品。丝绸著名的光泽外表来自于蚕丝三棱镜般的纤维结构,这令布料能够以不同的角度折射入射光,并将光线散射出去。在中国,丝绸一词也指代人造的、具有
  • 塞门扎格雷格·莱昂纳德·塞门扎(英语:Gregg Leonard Semenza,1956年7月1日-),美国医学家,知名于对生命系统如何利用、调节氧气的研究。他的团队发现HIF-1(缺氧诱导因子-1)所调控的基因能够
  • Clsub2/subOsub2/sub二氧化二氯是一种氯的氧化物,是大气层中氟利昂参与光化学反应的中间体之一,可由两个一氧化氯自由基结合而形成。
  • 气压表气压表或称气压计(英语、德语: Barometer)是用来测量气压的仪器,在气象学中被广泛使用。气压表有多种造型和原理。因此它是压力表的一类。气压记是由气压表发展出来的仪器,气压
  • ǁ不送气边搭嘴音(Tenuis lateral click)是一种辅音,主要出现于南非的一些口语中。其中,术语“不送气”(tenuis)又称“无声爆破音”,特指清音、不送气(unaspirated)、未颚音化、未声门
  • 梅费尔坐标:51°30′32″N 0°08′51″W / 51.508755°N 0.14743°W / 51.508755; -0.14743梅费尔(Mayfair)是英国伦敦市中心的一个区域,位于威斯敏斯特市内。梅费尔得名于一年一度为
  • 箭头箭头是一种符号,用于指明方向、表达趋势或其他抽象用途。
  • 司机司机,现多指汽车司机,亦可称“驾驶员”,是指驾驶和控制车辆的人,包括路面车辆和铁路车辆在内。司机可以分为职业司机、车主或其亲友借车暂用,还有是出租车司机、代客泊车多种,虽然
  • 各国邻国列表各国邻国列表分别列出各国的陆上邻国与海上邻国的数量与其总和。海上邻国的标准是两国有相邻的领海、毗连区或专属经济海域。