cookie网络协议

协议

TCP/IP协议簇

/ISO 国际标准化组织认证

OSI(开放系统互连)/RM(参考模型)

七层模型

物理层 数据链路层 网络层 传输层 会话层 表示层 应用层

TCP/IP 四层模型

网络接口层 网络层 传输层 应用层

TCP 传输控制协议

保证端到端的可靠连接三次握手

HTTP 超文本传输协议 应用层协议 //无状态协议

FTP 文件传输协议

跨域

浏览器自身的安全机制 同源策略 协议 域名 端口号

以上3个任何一个不一样,就是非同源

非同源会出现跨域错误

jsonp json width padding 包裹起来的JSON数据

利用script标签的src属性没有同源限制

将本应该通过Ajax访问到的资源放到src后,作为src的属性值

/服务端在接收到请求后进行处理,将最终数据用一个函数包裹起来(函数调用)

/浏览器会接收到函数包裹起来的数据,正常来将会报错,

在前端需要定义这个函数,用形参接收这个数据

var oScript = document.createElement("script");

oScript.src =

"http://localhost/course/day28/test.php?jsoncallback=aaa";

document.body.appendChild(oScript);

function foo(data){

console.log(data);

}

cors跨域资源共享

服务器代理

cookie

//存储在本地的数据片段 大小限制4k

现代浏览器可以存170条左右cookie

对比localStorage

4k 5M

没有API 自带API

随http发送给服务器 单纯存数据

默认是在会话期有效(浏览器存续期间) 永久有效

创建cookie / 修改cookie


      document.cookie = "username1=aaa";

      document.cookie = "username2=aaa";
      

设置cookie的生命周期

var oDate = new Date();

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

document.cookie = "username3=bbb;expires="+oDate;

删除cookie/设施这一个过去的时间作为生命周期


var oDate = new Date();

oDate.setDate(oDate.getDate()-1);

document.cookie = "username3=bbb;expires="+oDate;

查看cookie

console.log(document.cookie);//输出所有cookie,以; 相隔

封装cookie的函数

function setCookie(k,v,n){//参数 键名 键值 生命周期

var oDate = new Date();

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

document.cookie = `${k}=${v};expires=${oDate}`;

}

function getCookie(k){

let cookies = document.cookie;

cookies = cookies.split("; ");//先将全部cookie数据分割成数组

for(let i = 0;i < cookies.length;i++){

let arr = cookies[i].split("=");

 //将单个cookie分割为键名和键值的形式

if(arr[0] == k){

return arr[1];

}

}

}

function removeCookie(k){

setCookie(k,1,-1);

}

你可能感兴趣的:(cookie网络协议)