当我们清除浏览器缓存的时候缓存.png
会看到是否清除cookie的选项,那么到底cookie是什么?
cookie是什么?
cookie中文意义是曲奇饼,在电脑中是在登录时由服务器发给客户端的一段字符串。查看方式:


cookie的作用
为了更好的理解这个概念,我们有必要来了解一下注册和登录发生了什么。
-
注册和登录
当我们在登录某一个网站,比如简书的时候,我们需要注册一个简书的账号,这样我们才能写文章,或者给别人点赞。
注册.png
下面是流程
- 点击注册按钮
浏览器给服务器发送请求,服务器查看路径,然后返回注册的界面。 - 里面输入昵称,手机号和密码之后,提交。
这个form表单发对服务器发起请求,服务器在收到请求之后,查看path,符合要求。接受用户输入的内容,再通过一种方式给手机发一条验证码。 - 用户将验证码输入,浏览器再次提交。
服务器核对验证码是否正确,正确的情况下将数据录入数据库,并且返回一个登录界面。
失败的情况下就返回验证码输入错误。 - 登录,输入注册的时候的用户名和密码。
浏览器再次发送请求,服务器核对数据库,匹配的时候就返回用户主页数据。这个时候服务器会给浏览器发送一段字符串,他的名字叫cookie
-
cookie
这个时候你会发现在主页中跳转到任何页面,都是处于登录状态的,不会因为你跳转页面就退出登录,那么服务器是如何识别用户的呢?打开我们的跳转页面,打开network,刷新一下,打开一个请求可以看到请求中有cookie,而这个cookie是和之前服务器给的cookie一致的,浏览器就是通过这个来识别用户是否改变。
跳转后的请求.png
想像一下,没有cookie每一次你跳转页面都需要输入用户和密码的感受
问题:那我不输入?
回答:你不输入,浏览器怎么知道是谁的主页,谁的博客?登录一次就让你一直处于裸奔状态你能忍? -
在服务端设置cookie的方式:
Set-Cookie: <cookie-name>=<cookie-value>
Set-Cookie: <cookie-name>=<cookie-value>; Expires=<date>
Set-Cookie: <cookie-name>=<cookie-value>; Max-Age=<non-zero-digit>
Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value>
Set-Cookie: <cookie-name>=<cookie-value>; Path=<path-value>
Set-Cookie: <cookie-name>=<cookie-value>; Secure
Set-Cookie: <cookie-name>=<cookie-value>; HttpOnly
Set-Cookie: <cookie-name>=<cookie-value>; SameSite=Strict
Set-Cookie: <cookie-name>=<cookie-value>; SameSite=Lax
-
cookie的有效期
cookie储存在内存和硬盘中。
内存cookie都是默认让浏览器来处理,当我们关闭时,cookie就删除了。不过当我们登录时选择一周内有效后,这个cookie就被放在硬盘中,在不被人为清理的情况下,会保留一周时间。 -
cookie的安全性
cookie会含带我们浏览网页的信息,比如当我们浏览购物网时,将一个中意的商品加入我们购物车,然后跳转另外一个页面看其他的商品,这个时候cookie会记录这个商品,这样我们就不会丢失就如购物车的这个商品的信息。但是同时,我们的信息也被记录下来。
另外在登录时,这个cookie也很容易伪造,所以现在的网站都使用各种方式来验证用户,来杜绝盗用登录。
网友评论