域名,COOKIE是什么?有什么用处?COOKIE 和SESSION的区别?COOKIE的有效期

这里是修真院前端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析前端知识/技能,本篇分享的是:

【域名,COOKIE是什么?有什么用处?COOKIE 和SESSION的区别?COOKIE的有效期 】

域名,COOKIE是什么?有什么用处?COOKIE 和SESSION的区别?COOKIE的有效期_第1张图片

1.背景介绍

IP地址是Internet主机作为路由寻址用的数字体标识,人不容易记忆。

因而产生了域名这一种字符型标识。cookie中文名称为“小型文本文件”,

某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。

定义于RFC2109。是网景公司的前雇员卢·蒙特利在1993年3月的发明。

2.知识剖析

域名在因特网上用来代替IP地址,因为IP地址没有实际含义,人们不容易记住,

所以用有含义的英文字母来代替。在网络上,专门有DNS(域名服务器)

来进行域名与IP的相互转换,人们输入域名,在DNS上转换为IP,

才能找到相应的服务器,打开相应的网页。

cookie的用途

因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不知道用户到底买了什么。 所以Cookie就是用来绕开HTTP的无状态性的“额外手段”之一。服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。在刚才的购物场景中,当用户选购了第一项商品,服务器在向用户发送网页的同时,还发送了一段Cookie,记录着那项商品的信息。当用户访问另一个页面,浏览器会把Cookie发送给服务器,于是服务器知道他之前选购了什么。用户继续选购饮料,服务器就在原来那段Cookie里追加新的商品信息。结帐时,服务器读取发送来的Cookie就行了。

3.常见问题

COOKIE的有效期

COOKIE 和SESSION的区别

4.解决方案

COOKIE的有效期

cookie 大致可分为两种状态

临时性质的cookie。当前使用的过程中网站会储存一些你的个人信息,当浏览器关闭后这些信息也会从计算机中删除。

设置失效时间的cookie。就算浏览器关闭了,这些信息业依然会在计算机中。如 登录名称和密码,这样无须在每次到特定站点时都进行登录。这种cookie 可在计算机中保留几天、几个月甚至几年。

session的作用和cookie差不多,也是用来解决Http协议不能维持状态的问题。区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗

考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能

考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、所以个人建议:

将登陆信息等重要信息存放为SESSION

其他信息如果需要保留,可以放在COOKIE中

5.编码实战

在默认的情况下,cookie 会在浏览器关闭的时候自动清除,但是我们可以通过expires来设置 cookie 的有效期。语法如下:

document.cookie = "name=value;expires=date"

上面代码中的date值为GMT(格林威治时间)格式的日期型字符串,生成方式如下:

var _date = new Date();

_date.setDate(_date.getDate()+30);

_date.toGMTString();

上面三行代码分解为几步来看:

通过new生成一个Date的实例,得到当前的时间;

getDate()方法得到当前本地月份中的某一天,接着加上30就是我希望这个cookie能过在本地保存30天;

接着通过setDate()方法来设置时间;

最后 用toGMTString()方法把Date对象转换为字符串,并返回结果

6.扩展思考

什么是域名解析服务(DNS)

7.参考文献

参考一:Darren

你可能感兴趣的:(前端零基础,修真院前端小课堂)