zoukankan      html  css  js  c++  java
  • cookie

    一.通信协议的介绍

    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; 此句表示,此条cookiedate的时间时效,而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;
  • 相关阅读:
    iOS开发——高级篇——iOS抽屉效果实现原理
    iOS开发——高级篇——FMDB 数据库简单使用
    iOS开发——高级篇——多线程dispatch_apply
    iOS开发——基础篇——get和post请求的区别
    iOS开发——高级篇——线程同步、线程依赖、线程组
    谈谈程序员最讨厌做的事
    iOS开发——高级篇——iOS 项目的目录结构
    iOS开发——高级篇——Runtime实际应用
    程序猿如何“智斗”产品经理
    iOS开发——基础篇——iOS开发 Xcode8中遇到的问题及改动
  • 原文地址:https://www.cnblogs.com/wufenfen/p/11903666.html
Copyright © 2011-2022 走看看