• Cookie详解


    为什么会有cookie呢,这就要说一下Http协议了。

    Http是一个无连接,无状态的协议。(什么是无连接?什么是无状态?)如何理解HTTP协议的“无连接,无状态”特点

    无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

    无状态:每次连接都是独立的,无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。

    Cookie 的工作机制是用户识别及状态管理。Web 网站为了管理用户的状态会通过 Web 浏览器,把一些数据临时写入用户的计算机内。接着当用户访问该Web网站时,可通过通信方式取回之前发放的Cookie。

     cookie的组成

    name:cookie 变量的名字

    value:cookie 变量的值

    domain:cookie的域

    path:cookie的路径

    expires:过期时间(从格林尼治时间1970.1.1 00:00:00 开始的cookie过期秒数)

    secure:是否在使用SSL连接时发送这个cookie。

    下图为一个cookie 例子

     Cookie工作流程

     第一次请求和返回:

    response headers中有 

    Set-Cookie:JSESSIONID=QMsVhp5MsHb5v8RJZd6BXTwsTlkknvGvH19bLyvrm2vcXpMGR6NJ!394414630; path=/; HttpOnly
    告诉浏览器设置cookie

     第二次请求:request带上了cookie

    path和domain匹配到,就会发送cookie,

    1.domain

    如果domain=a.com

    访问www.a.com  ,   a1.a.com ,a2.a.com 会发送cookie。访问b.com 就不会发送cookie。

    2.path

    如果path = /private

    访问 a.com/private 就会发送cookie ,访问a.com/public就不会发送cookie。

  • 相关阅读:
    js的new操作符深度解析
    vue的v-if和v-show的区别
    gulp的简单打包示例(一)
    vue报错Error in v-on handler: "RangeError: Maximum call stack size exceeded"
    svg图片在vue脚手架vue-cli怎么使用
    charles 抓包 https 证书
    navicat 批量插入 测试数据
    Zookeeper + Guava loading cache 实现分布式缓存
    Zookeeper Curator API 使用
    Zookeeper JAVA API的使用
  • 原文地址:https://www.cnblogs.com/alway-july/p/8301811.html
Copyright © 2020-2023  润新知