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

290 阅读6分钟
原文链接: www.jianshu.com

大家好,我是IT修真院北京总院第22期的学员张雪飞,一枚正直纯洁善良的web程序员

今天讲下深度思考中的知识点—— ——域名,COOKIE是什么?有什么用处?COOKIE 和SESSION的区别?COOKIE的有效期?

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

8.更多讨论

问题一:删除Cookie有办法有哪些?

回答:1,把它的值设置为空;

写一个同名(name值相同),同域(domain值相同),同路径(path值相同),

同时长/不同时长(max-age/expires值相同/不同),但值为空(value为空)的Cookie;

2,把这个Cookie的过期时间设置为已经过去的一个时间点,例如,昨天,去年。

写一个同名(name值相同),同域(domain值相同),同路径(path值相同),值为空/不为空(value为空/不为空)

的Cookie,但时长为过去时间/值为下一毫秒就过期(max-age/expires的值为上一分钟,去年,昨天等值,

或者为max-age=1毫秒等);

问题二:什么是域名解析?

回答:域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站一种服务。域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。

如果是需要建站,除了注册域名,还需要向虚拟主机提供商申请空间,如果空间是国内的还需要备份,国外的空间则不需要。

问题三:如果Cookie不设置过期时间,Cookie是在什么时候删除的?

回答:如果不设置保存时间,cookies生存期限就到关闭浏览器为止。

鸣谢

感谢大家观看

BY : 沁修 | 刘明

9:鸣谢

感谢  沁修,刘明 此教程在她技术分享的基础上完善而成!

PPT

视屏地址:

链接:

https://pan.baidu.com/s/1cjiSZc

密码: crtb

------------------------------------------------------------------------------------------------------------------------------------------

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧 !

猛戳这里有惊喜