JavaWeb-Session和Cookie
一、Cookie概述
1.1 Cookie的属性
Cookie是由服务器发送到用户浏览器并保存在本地的一小块数据,用于保持浏览器和服务器之间的状态。一个典型的Cookie属性包括:名称(name),值(value),过期时间(expires),域(domain),路径(path),安全标志(secure),最大年龄(max-age)和HttpOnly标志。
- 1、名称和值是必需的属性,分别指定了Cookie的名称和值。
- 2、过期时间用于指定Cookie何时应该被删除。
- 3、域和路径定义了该Cookie的可访问范围,告诉浏览器该Cookie属于哪个网站。
- 4、安全标志设置为true时,浏览器只会在HTTPS和SSL等安全协议中传输此Cookie,不会在不安全的HTTP协议中传输此Cookie。
- 5、最大年龄设置Cookie的有效期,单位为秒。当达到最大年龄时,Cookie将被自动删除。
- 6、HttpOnly标志指示浏览器禁止通过JavaScript访问该Cookie,从而减少XSS攻击的风险。
1.2 Cookie的工作机制
Cookie的工作机制基于服务器与浏览器之间的信息交换。其工作流程如下:
- 1、服务器通过Set-Cookie报头把特定的信息(即Cookie)发送给浏览器。
- 2、浏览器接收到服务器发来的Set-Cookie报头后,会保存相应的Cookie信息,并在下次向同一服务器再发起请求时,将该Cookie信息携带并发送到服务器上。
- 3、服务器通过解析浏览器发送过来的Cookie信息,确定用户状态或身份。
具体来说,Cookie机制主要应用在保持用户的登录状态上。例如,当用户登录一个网站时,前端会通过用户登录API向后端传递用户信息,后端核对信息是否匹配数据库。如果匹配成功,后端