浅谈session实现原理(阿里面试题)

最近博主刚刚经历了阿里的技术一面,面试官上来就问了我很多有关网络协议的东东,以前看报文的时候,总有一个cookic在浏览器中.例如php为服务器脚本语言的,会有这样一个名为PHPSESSID的cookic.反正当时有印象,就是没答出来.

直接上原题

问: 当用户登录某网站后,向服务器发送一个请求,服务器如何判断是这个用户请求的

首先,你要明白一点,最初http协议在设计的时候,主要面向当时的web1.0网站,他们不需要知道是谁来访问,只需要向外界提供相应的web服务即可. 但是,在web2.0的网站中,用户和网站发生相关的信息交互.所以,web服务提供者需要知道,是谁发起了请求.也就是,服务端有能力从http数据包中提取用户的相关信息.

现在一般采用使用服务器端产生的Session结合浏览器的Cookie.实现用户与客户端之间唯一秘钥,上面的PHPSESSID的值就是相关的session ID与cookic结合的相关信息.

一般来说包括以下4个步骤:

1.服务器端的产生Session ID
2.服务器端和客户端存储Session ID
3.从HTTP Header中提取Session ID(发送的是一个COOKIC值)
4.根据Session ID从服务器端的Hash中获取请求者身份信息

好吧,怪自己平时项目做太多了,没去想细节的东西,太相信别人的博客了��

你可能感兴趣的:(浅谈session实现原理(阿里面试题))