美文网首页
cookie-电脑的曲奇饼

cookie-电脑的曲奇饼

作者: 张路1806 | 来源:发表于2018-12-09 19:23 被阅读0次
当我们清除浏览器缓存的时候 缓存.png

会看到是否清除cookie的选项,那么到底cookie是什么?

cookie是什么?

cookie中文意义是曲奇饼,在电脑中是在登录时由服务器发给客户端的一段字符串。查看方式:

在chrome Storage中 cookie.png
响应中的cookie.png

cookie的作用

为了更好的理解这个概念,我们有必要来了解一下注册和登录发生了什么。

  • 注册和登录
    当我们在登录某一个网站,比如简书的时候,我们需要注册一个简书的账号,这样我们才能写文章,或者给别人点赞。


    注册.png

    下面是流程

  1. 点击注册按钮
    浏览器给服务器发送请求,服务器查看路径,然后返回注册的界面。
  2. 里面输入昵称,手机号和密码之后,提交。
    这个form表单发对服务器发起请求,服务器在收到请求之后,查看path,符合要求。接受用户输入的内容,再通过一种方式给手机发一条验证码。
  3. 用户将验证码输入,浏览器再次提交。
    服务器核对验证码是否正确,正确的情况下将数据录入数据库,并且返回一个登录界面。
    失败的情况下就返回验证码输入错误。
  4. 登录,输入注册的时候的用户名和密码。
    浏览器再次发送请求,服务器核对数据库,匹配的时候就返回用户主页数据。这个时候服务器会给浏览器发送一段字符串,他的名字叫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也很容易伪造,所以现在的网站都使用各种方式来验证用户,来杜绝盗用登录。

相关文章

网友评论

      本文标题:cookie-电脑的曲奇饼

      本文链接:https://www.haomeiwen.com/subject/xjrkhqtx.html