记录下对Session和Cookie的学习
会话跟踪机制:
1.Cookie
Cookie保存在客户端(浏览器)。
当用户发送一个请求,服务器返回带cookie的结果时,cookie信息以文本文件的形式被服务器保存到客户机(会话期间可以保存在内存中)。之后每次浏览器发送请求,会在请求头部带上cookie信息,用于服务器识别用户,做出相应的反应。
添加cookie时,可以设置几个参数:
name:cookie的键名
value:cookie的值
timeout:有效时间
domain:可以访问该cookie的域名(“.google.com”,则所有以“google.com”结尾的域名都可以访问该Cookie。)
path:指定路径,只有同一路径下可以访问
cookie就是一小段文本信息,可以通过javascript:alert(document.cookie)显示当前网站的cookie信息。
域:cookie绑定的是域名,可以通过设置域来让浏览器决定带哪些cookie值。
请求时,只带cookie的键和值。
(不同编程语言、对cookie的操作不同,但是要理解cookie可以设置哪些属性、分别应用于哪种场景)
(网站的记住密码功能就是利用cookie实现的)
2.Session
Session保存在服务器端。返回一个sessionID给浏览器,以cookie形式保存在客户机,之后,客户机发送请求时,请求头带上sessionID,如果服务器需要,可以通过这个sessionID拿到对应的数据。
sessionID相当于一个key,它也保存在cookie,这种方式保证了客户信息的安全性(因为数据存储在服务器上),但同时增加了服务器的运行压力。(cookie信息变少,也减小了请求带宽)
session默认sessionID的cookie是临时的,关闭浏览器cookie会消失,但是session信息还在,但是会话已经断了。所以,记得手动设置sessionID存储在cookie的有效时间
session数据保存在服务器,所以对数据相比cookie可操作更多。
每个用户一个单独的session,所以session应该尽量精简。
可以参考这篇博客:https://www.cnblogs.com/andy-zhou/p/5360107.html
3.get数据放到url中、post数据放到请求体中