文章目录
这是一个基础知识,也是初学者经常被问道的知识点,这里做个总结。关于Cookie的图片截图来自书籍《图解HTTP》。
为什么要使用会话控制技术
HTTP是无状态协议,它不对之前的发生过的请求和响应的状态进行管理。不可否认,无状态协议当然也有它的优点。由于不必保存状态,自然可减少服务器的CPU及内存资源的消耗。从另一方面来说,也正是因为HTTP协议本身是非常简单的,所以才会被应用在各个场景里。
Cookie
如图,如果让服务器管理全部客户端状态则会成为负担。
Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。服务器端发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后比对服务器上的记录,最后得到之前的状态信息。
第一次请求,没有Cookie
第二次以后,存有Cookie信息状态的请求。