cookie执行的底层也是基于http协议的,通过抓包分析发现:第一次请求服务器的时候,服务器端会创建cookie并且将cookie发送回浏览器端(通过设置了响应头:set-cookie:msg=hello),
浏览器端发现响应头中有set-cookie头后,则将cookie的信息保存在本地,下次再请求的时候,则会自动帮我们把已有的cookie信息携带上发送给服务器(通过请求头:cookie:msg=hello),
服务器则可以通过获取cookie的方式取出cookie的信息
浏览器第一次建立会话请求服务器,服务器端会调用request.getSession这行代码---在内存中开辟了一块内存空间存放session,session.setAttribute()就可以存值了,
并且在创建完session空间的同时为该空间生成了一把钥匙,该钥匙其实就是一个cookie:JESSIONID=12323432894;返回该cookie到浏览器,浏览器接收到cookie存放在自己的内存中,
同时下次请求的时候携带该cookie,当服务器接收到有JESSIONID的cookie时,取出value值来判断是否与我们内存中的session的钥匙相匹配,如果匹配才能取值或存值 |
|