For faster navigation, this Iframe is preloading the Wikiwand page for 会话 (电脑科学).

会话 (电脑科学)

此条目没有列出任何参考或来源。 (2010年11月10日)维基百科所有的内容都应该可供查证。请协助补充可靠来源改善这篇条目。无法查证的内容可能会因为异议提出而被移除。

电脑科学领域来说,尤其是在网络领域,会话(英语:sessionMicrosoft Windows译作会话连线阶段)是一种持久网络协议,在客户端(或用户代理)和伺服器端之间建立关联,从而起到交换数据包的作用机制,session在网络协议(例如telnetFTP)中是非常重要的部分。

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

软件实现

[编辑]

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

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

伺服器端的会话

[编辑]

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

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

客户端的会话

[编辑]

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

伺服器端会话和客户端的协作

[编辑]

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

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

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

{{bottomLinkPreText}} {{bottomLinkText}}
会话 (电脑科学)
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?