因为浏览器和服务器之间的连接是无状态的,也就是当前请求不会携带上一次请求的信息,所以无法判断用户是否登录。所以需要登录标记和统一拦截技术。
与会话相关的技术:cookie
(客户端会话跟踪技术)、session
(服务端会话跟踪技术)、令牌技术
cookie
通过访问http://localhost:8080/c1
来设置cookie(通过http协议中的response对象),服务端响应了我们设置的cookie,如下图Set-Cookie
里的key和value就是我们设置的。
浏览器拿到响应后的数据后,会自动解析响应头,将Set-Cookie的值存储到浏览器本地。 存储位置如下图所示:
通过http协议中的request对象访问服务端时,会将这个cookie携带在请求头中,如下图:
cookie缺点:不能解决跨域问题
跨域问题是指在 Web开发中,一个网页的JavaScript代码通过AJAX请求后端服务器接口时,如果请求的目标地址与当前页面的地址不在同一个域(域名、端口或协议任何一项不同),就会产生跨域问题
session
session是服务器端的跟踪技术,所以session是存储在服务器端的。浏览器在第一次请求服务器时,可以直接在服务器中获取会话对象session,服务端响应时,会将这个sessionid通过cookie响应给浏览器,浏览器会将cookie的值存储在本地,后续每次请求会携带这个cookie