• 从零开始学习前端JAVASCRIPT — 8、JavaScript基础COOKIE


    1:通信协议

    定义:通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。(通信间交流的规则)

    在计算机通信中,通信协议用于实现计算机与网络连接之间的标准,网络如果没有统一的通信协议,电脑之间的信息传递就无法识别。 通信协议是指通信各方事前约定的通信规则,可以简单地理解为各计算机之间进行相互会话所使用的共同语言。两台计算机在进行通信时,必须使用的通信协议。

    计算机网络资源地址:1)http://www.cnblogs.com/usa007lhy/p/4878322.html

              2)http://blog.csdn.net/basycia/article/details/51880172

    常见的协议:TCP/IP协议、HTTP协议、FTP协议等等。

    1)FTP协议

    File Transfer Protocol(文件传输协议),用于Internet上控制文件的双向传输。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。 

      2)TCP/IP协议

    TCP/IP(Transmission Control Protocol/Internet Protocol)传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

    UDP协议UDP(User Datagram Protocol)用户数据报协议。在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。

    TCP协议和UDP协议的区别:如果TCP比作是打电话,那么UDP就是在发短信。

    TCP面向连接的协议(通信之前必须先建立连接),于是,TCP相对可靠,它建立连接的过程称为3次握手。

    第一个特点:三次握手,建立连接。 

    第二个特点:所有的消息,需要对方确认送达。当消息发送失败,则对当前消息开始进行重复发送,直至收到回应为止。因此可以确保数据的准确送达。

    举例:

    局域网游戏,往往都有这样的特点,当多人联机对战时,若有一个人掉线 其他所有玩家进入读秒状态,那么说明玩家和玩家之间采用了TCP协议。 因为对于游戏来讲,它不允许丢失任何数据,不然有可能出现两边不一致的情况: 我这边画面一刀把你砍死了,你那边画面却吃了个大血瓶抗住了。。。。。

    UDP面向数据报的协议 (不可靠的协议):无需建立连接 发送消息也无需对方确认 无法保证数据的发送顺序,以及准确率。

    数据的发送顺序是 a.........b.........c...........d 由于网路延迟的原因,对方收到数据的顺序有可能是b...........d..........a。

    UDP通常用于视频、语音等通信(丢掉了一帧画面是无所谓的)。 

      3)HTTP协议

    超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。该协议用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

    HTTP协议是一个无状态的通信协议,一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。它基于TCP协议的一种高级协议,用于客户端和服务器直接的通信。


     2:cookie

    cookie的概念:指某些网站为了辨别用户身份,进行session(会话)跟踪而存储在用户本地终端上的数据(通常经过加密)。以文本形式存在。

    谷歌浏览器存储地址: C:UsersAdministratorAppDataLocalGoogleChromeUser DataDefault文件夹下的Cookies文件。

    禁用cookie:改变浏览器的cookie设置。如果浏览器完全禁止cookie功能的话,大多数网站的基本功能无法正常使用。 

      cookie的特点

    1)chrome和safari没有对cookie的个数做限制,一般浏览器限制同一域名数量为50个。

    2)cookie文件的总大小一般为4KB(同一个域名)。

    3)只能使用文本文件。

    4)读取有域名限制。

         不可跨域读取,只能由来自 写入cookie的 同一域名 的网页可进行读取。 简单的讲就是,谁写的cookie,谁才有权利读取 (身份牌是我发你的,当然只有我能读取,你媳妇儿的手机自动连接了邻居老王家的wifi,你知道这意味着什么吗?)

    5)时效限制。

         每个cookie都有时效,最短的有效期是,会话级别:就是当浏览器关闭,那么cookie立即销毁。

    6)cookie的使用

    添加cookie:document.cookie = “key=value”; // 一次写入一个键值对

    读取cookie:document.cookie;

    修改cookie:document.cookie = “key=value”;  // 修改名为key的cookie值

    删除cookie:将cookie值覆盖为空,并将失效时间设置为失效时间。

    失效时间:expires

    var oDate = new Date();

    oDate.setDate(oDate.getDate() + iDay);

    设置失效时间:document.cookie = “key=value;expires=”+ oDate;

    设置域名:domain

    设置域名:document.cookie = “key=value;domain=.baidu.com“;

    注:必须在绑定域名的服务器才可以设置域名,上不同服务器之间的cookie文件不能共享。

    设置路径:path

    设置路径: document.cookie = “key=value;path=/“;

    注:在同一路径下的网页可以共享cookie,路径不同时不可以访问。

    注:如果有中文内容,需要用encodeURIComponent(‘xxxx’)进行编码,再使用decodeURIComponent(‘xxxx’)进行解码,解决中文乱码的问题。

    7)cookie的封装 

    增加/修改cookie函数 

    function setCookie(name,value,iDay){ 

          var newDate = new Date(); 

          newDate.setDate(newDate.getDate()+iDay); 

          document.cookie=name+"="+value+";expires="+newDate; 

    }

    setCookie("user","andy",7); 

    获取cookie函数: 

    function getCookie(name){ 

          var arr = document.cookie().split("; "); 

          for(var i =0; i<arr.length; i++){ 

               var arr2 = arr[i].split("="); 

               if(arr2[0] == name){ 

                     return arr2[1]; 

               } 

          } 

    } 

    删除cookie函数: 

    function removeCookie(name){ 

          setCookie(name,1,-1); 

    } 

    removeCookie("user");


     

     

    cookie的使用demo

     

  • 相关阅读:
    Elasticsearch源码加载到eclipse调试
    Elasticsearch基础教程
    关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
    访问WEB-INF下的JSP (转载)
    SqlServer的代理问题
    SqlServer进行程序跟踪
    git简单的修改
    Linux部署项目
    网址仓库
    Linux基础
  • 原文地址:https://www.cnblogs.com/witkeydu/p/8391357.html
Copyright © 2020-2023  润新知