为什么要使用cookie和session?
cookie和session是一种追踪客户端与服务器端通信的一种方式。
我们知道http链接是无状态链接,每次客户端访问服务端,服务端都不会知道访问者是谁,这样的好处就是http设计简单,缺点也显而易见:每次关闭浏览器后又要重新登录
生成的记录如何返回给客户,客户下次访问又如何传递到服务器中?
这就是利用了cookie。cookie是一段存储在浏览器中的文本,它可以保存用户的信息,服务端通过设置返回头的set-cookie字段就能返回给浏览器并保存cookie,浏览器又自动设置请求头的cookie字段将cookie传递给服务器。
既然cookie就能保存用户的信息,那session又是干什么用的?
cookie是保存在浏览器中的,服务器中没有保存,如果我们在浏览器中伪造一个cookie然后传递给服务器,服务器怎么知道cookie是真是假,所以在服务端中也要有一种机制要记录会话信息。
当用户第一次访问服务器时,在服务器中生成记录并保存在session中,然后将这个记录通过cookie返回给浏览器,浏览器下次访问时带上cookie,服务器再通过session验证传过来的cookie是否正确。
另外cookie是存储在浏览器端的,存储的登录信息不够安全任何人都能访问,而存储在服务器端更安全。
sessionId是什么?
上面所说的用户第一次访问会产生一个记录,这个记录就是这次会话的sessionId,sessionId又一cookie的形式传递给浏览器。