大家好,我是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:鸣谢
感谢 沁修,刘明 此教程在她技术分享的基础上完善而成!
视屏地址:
链接:
https://pan.baidu.com/s/1cjiSZc
密码: crtb
------------------------------------------------------------------------------------------------------------------------------------------
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧 !