从零开始学习前端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:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\文件夹下的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");