HTTP被设计为无状态的. 当你访问一个url,然后刷新一下(第二次请求),服务器认为这是一个全新的请求,也就是说服务器并不知道这是你发起的第二个请求,它只是按照一个全新的请求来处理,问题时,有些网站需要用户登录,那么如何记录用户的状态呢? 这时候就用到了cookie, cookie中有一个表名会话的key(session id), 然后每次请求都要附在header中,让程序取出cookie中session id的值以判断这个请求之前是否存在, 发起这个请求的用户是否登录等信息
我原来也以为cookie就是存在客户端本地的,下次客户端登录时浏览器会读取再自动填写,只是做本地存储。直到遇到公司的项目发现xx_token是存储在cookie里的,而谷歌浏览器控制台中能看到请求的request header中有cookie一项,其中有键值对。这不同于直接把xx_token放到request header下或url的参数中。联想到最近写的python flask,flask框架的session基于cookie实现,每次后端都能把session取出,原来是每次客户端都有发过来才能用啊。
HTTP被设计为无状态的.
当你访问一个url,然后刷新一下(第二次请求),服务器认为这是一个全新的请求,也就是说服务器并不知道这是你发起的第二个请求,它只是按照一个全新的请求来处理,问题时,有些网站需要用户登录,那么如何记录用户的状态呢?
这时候就用到了cookie, cookie中有一个表名会话的key(session id), 然后每次请求都要附在header中,让程序取出cookie中session id的值以判断这个请求之前是否存在, 发起这个请求的用户是否登录等信息