cookie

匆匆过客 提交于 2019-12-05 03:50:11

一.通信协议的介绍

1.通信协议

   通信协议:就是在互联网中,实体之间完成通信或服务所需要遵循的规则和约定。
    
    语言交流的规则:语法,主谓宾如何排列。

    说白了,就是咱俩说话用普通话还是家乡话,用英语还是法语,唱着说还是好好说,咱们提前规定好。这就是通信协议
 
        语言中的语法:两个人类之间语言沟通的标准
    通信协议:计算机与计算机之间沟通的语法

 

2.TCP/IP

  IP:ip地址,标记在互联网上的每台机器的身份,用来确定地址和区分网关。
    
    TCP:TCP协议面向连接的协议(通信之间必须先建立连接)
    于是,TCP相对可靠,它建立的连接的过程称为3次握手。
    
    TCP连接的特点: 
        1.需要三次握手
        2.所有的消息,需要对方确认送达

    UDP:基于数据包的协议 (不可靠的协议)
    无需建立连接,发送消息也无需对方确认,无法保证数据的发送顺序,以及准确率
    
    TCP和UDP的区别,如果TCP是打电话(你一句我一句),那么UDP就是发短信(发送 之后不知道对方是否收到)

 

3.HTTP

       HTTP:超文本传输协议,网页协议,无 状态协议
   因为无法监听当前连接的状态,会导致每次请求页面,收到页面之后,连接会被断开,导致用户体验非常差。比如:打电话时我刚说完一句话,你就挂完了电话。购物时,登录账号密码,开始挑选商品,连接断卡,重新登陆,加入购物车继续挑选商品时,连接断开,重新登录,继续选择商品加入购物车,重新登录……解救剁手。如何解决这个问题呢?发明了一个其他技术用来帮助http记住状态:------会话跟踪技术cookie。会话跟踪技术,在一次会话从开始到结束的整个过程,全程跟踪记录客户端的状态(如:是否登陆,购物车信息,是否下载,是否点赞,播放进度等等)
"会话跟踪技术cookie:会话跟踪技术,在一次会话从开始到结束的整个过程,全程跟踪记录客户端的状态(如:是否登录,购物车信息,是否下载,是否点赞,播放进度等等)"
   
    cookie的作用是什么?   "↑↑↑"

 


二.cookie

1.cookie的概念

cookie(会话跟踪技术),相当于第一次跟服务器连接后,服务器给你发的一个身份牌、通行记录,上面可以记录跟你有关的信息(是否登录,购物车的状态...),
下次只要再跟服务器通信,必须带着这个令牌,这样一来,服务器会直接知道你身份牌上所有的信息。

cookie存在浏览器的缓存中。
本地存储
什么是缓存?数据交换的缓冲区----临时储存
  1. cookie的特点
因为cookie会随着http发给服务器

1."只能使用文本(就是字符)文件"(如果浏览器可以随意在客户端机器生成文件,比如身份令牌,那将是个定时炸弹,安全问题会变得非常严重)(文本不会变成可执行文件,就不会是病毒)

2."文件有大小限制4K"(文件若没有大小限制,相当于身份令牌重几百斤,挂在脖子上什么感觉?)

3."数量限制,小于50条"(一般浏览器限制大概在50条左右,门禁卡里能存下一部蓝光高清么)

4."读取有域名限制/不允许跨域"(不可跨域读取,不允许跨路径,浏览器。只能由写入cookie的 同一域名 的网页进行读取。简单来说,谁写的cookie,谁才有权利读取)

5."时效/间限制"(每个cookie有时效,最短的有效期是:"会话级别(关闭浏览器,cookie销毁)",可以指定日期;

"注意:安全学的基本理论:密码锁每次打开都需要重新输入密码,如果只输入一次密码,以后不在验证,就没有安全可言)"

 

 

3.cookie的操作:document.cookie

document.cookie是document对象上的属性

增删改查
字符串的拼接
document.cookie = ""


使用原则:
    cookie本地存储,跟服务器无关
    cookie作用:记录http的连接状态,跟随http发给服务器 
    cookie也要在服务器的环境下使用
设置          会话级默认路径:
        document.cookie = "name=abc"
        cookie的格式要求,名称=值
        在cookie 的名或值 中 不能使用分号(;)、逗号(,)、等号(=)以及空格这是cookie的赋值规则
        
        指定有效期:
        设置cookie的保存时间,通过给expires添加一个日期,设置cookie的过期时间
        此处可以借用Date();
        var date = new Date();
        date.setDate(date.getDate()+28);
        表示获取当前日期的天数,增加28天之后,重新设置给日期,此时date就表示未来的某个时间

        document.cookie = "name=abc;expires=" + date;
        此句表示,此条cookie在date的时间时效,而date的时间为当前日期加上28,也就是28天之后cookie失效
        
        指定路径:
        document.cookie = "user=admin;path=/;expires="+d;

 
    console.log(typeof document.cookie);        // String
    console.log(document.cookie === "");        // true
    
查: console.log(document.cookie);

增: document.cookie = "user=admin";     // 被浏览器执行为:名字为user,值为admin

    expires:日期对象
    var d = new Date();
    d.setDate(d.getDate()+3);

    document.cookie = "user=admin;expires="+d;

    一个document.cookie只能设置一条cookie

    document.cookie = "b=20;path=/1908";

    document.cookie = "c=30;path=/1908;expires=" + d;

    document.cookie = "d=40;expires="+d+";path=/1908";
改:
    document.cookie = "user=root";
    document.cookie = "b=world;path=/1908";
    var d = new Date();
    d.setDate(d.getDate()+5);
    document.cookie = "c=30;path=/1908;expires="+d;


删: 关闭浏览器就删了
    删:
    var d = new Date();
    d.setDate(d.getDate()-1);   // 减任何数都可以
    document.cookie = "a=10;path=/1908;expires="+d;
    document.cookie = "b=10;path=/1908;expires="+d;
    document.cookie = "b=10;expires="+d;

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!