辛辛苦苦输完了用户名密码登陆了,然后再刷新之后发现又需要再次登陆,这大概是会让人崩溃的,所以如何让服务器知道你就是你呢,这就需要用到cookie了。
在你登陆之后(这边拿百度来举栗子),百度通过 Set-Cookie头 发给你一张通行证(通常是一串字符串),然后你在访问百度的时候,在请求中就会和百度说我有通行证(访问相同域名的网页时需要带上那一串字符串(注意访问同一一级域名下的二级域名时是不行 ,需要设置Cookie的domain参数)),百度就会扔给你一个登陆成功的界面。
Cookie的有效期由maxAge决定,默认值-1,为负数时表示该Cookie仅在本浏览器窗口以及本窗口打开的子窗口内有效,关闭窗口后该Cookie即失效(此时cookie为临时性Cookie,保存在浏览器内存中,不会被写到Cookie文件中),为0时表示删除该Cookie。
为了方便起见,最直接的是把用户名密码原文都存到Cookie中,下次访问时只需要拿出Cookie与数据库用户名密码对比就可以了。但这是很危险的。这时可以使用基于Cookie的Session。
Session就是在服务器端使用一块内存来存本来要发给你的字符串(用一个哈希表存下来),然后key用一个随机数,对应的value就是你的用户名密码(也就是那串字符串),通过之前的方法把这个随机数作为你的通行证,在访问的时候通过随机数在哈希表中找到你的用户名密码。
Cookie&Session
最新推荐文章于 2024-04-20 22:39:16 发布