Cookie 和 Session

来源:互联网 发布:dhcp服务器端口 编辑:程序博客网 时间:2024/06/09 15:12

什么是Cookie?
Cookie是浏览器支持的一种本地存储的键值对,类似与python中的字典。

为什么需要Cookie?
首先,http协议是一种无状态协议。无状态请求是指,当用户发送请求给服务器时,服务器不管是谁的请求,直接返回结果。这样的方式,在一些情况下是没有问题的,然而,如果像淘宝,在用户未登录状态下,服务器是会记住用户浏览过哪一些商品的,这时就需要使用Cookie来判别是哪一个用户了。
带有Cookie的请求是一种有状态的请求,在用户第一次向服务器发送请求时,服务器会给用户分配一个ID,然后浏览器会将这个ID保存在本地Cookie中,下一次再向服务器发送请求时,浏览器就会把Cookie一块发送过去,服务器就知道是哪一个用户的请求了。如下图所示。
这里写图片描述

有了Cookie为什么还需要Session?
Cookie的出现给用户带来了一些方便,比如,可以将用户名和密码存放在Cookie中,这样就不用每次访问网站都进行登录验证了,在访问网站的时候,浏览器自动将Cookie发送给服务器进行登录验证。然而,这种方式存在一种隐患,如果Cookie被使用同一台电脑的其他用户看到,就可以分析出你的用户名和密码。Session的引入就解决了这个问题。

服务器会根据用户登录的用户名和密码生成一个Session ID,并且将这个Session ID保存在数据库中,用来标记这个用户。浏览器将这个Session ID保存在本地,下一次需要登录时,就将这个Session ID发送给服务器,服务器就会根据这个Session ID进行验证。利用这种方式,避免了用户直接将用户名和密码直接放置在Cookie中进行发送所造成的安全隐患。

原创粉丝点击