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

1.背景介绍

网站为什么要有域名?

①.什么是IP地址

我们知道,在Internet上有千百万台主机,为了区分这些主机,人们给每台主机都分配了一个专门的地址,称为IP地址。 通过IP地址就可以访问到每一台主机。我们的每个虚拟主机用户,都分配一个永久的IP地址。

②.什么是域名

虽然可以通过IP地址来访问每一台主机,但是要记住那么多枯糙的数字串显然是非常困难的,为此,Internet提供了 域名(Domain Name)。域名是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标 识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。例如“IT修真院”主机 的域名就是“jnshu.com”。

什么是cookie

Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端 上的数据(通常经过加密)。定义于 RFC2109 和 2965 中的都已废弃,最新取代的规范是 RFC6265[1] 。(可以 叫做浏览器缓存)

什么是session

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。

2.知识剖析

域名的用处

①终端必备——用域名建站

域名可以用来建站,从而实现价值最大化。但凡想要在互联网上 大展拳脚的企业,都需要有一个域名来为自己开路。 域名是网站的门面,是用户访问平台的重要途径,是一个流量入口,同时也是企业立足于互联 网的根本,对其项目开发及运营具有重要作用。

②宣传之需——借域名提升品牌形象

域名之所以备受终端喜爱,还有一个重要的原因是能够帮助企业进行广告宣传,促进品 牌推广,从而获取更多的流量。再土豪的企业,也没法天天烧钱做广告,但是有一个契合品牌的好域名就不一样了,它 能够剩下一笔广告费,有助于提升品牌形象。

Cookie的用处

①.保存用户的登陆状态,例如上例中的,用户进行登陆,成功登陆后,服务器生成特定的cookie返回给客户端,客户端下次访 问该域名下的任何页面,将该cookie的信息发送给服务器,服务器经过检验,来判断用户是否登陆。

②.记录用户的行为,例如,京东商场左下角有一个最近访问的产品记录信息,当当网上有你最近浏览过的书籍信息,都是根据用户 访问页面,记录到cookie的信息来制作的。

③.电商购物车的处理,因为在不同页面,点击添加到购物车,这个信息也是记到了cookie里面。结账的时候统一提交

④.定制页面。如果网站提供了换肤的功能,我们这个时候也是将他记录到cookie里面,以便下次访问还是保持原来的风格页面。

cookie和session的的区别

①.cookie存于客户端,只能保存字符串对象,不能保存对象类型 需要客户端浏览器的支持:客户端可以不支持,浏览器用户可以禁用Cookie;

session存于服务器端。状态信息保存在服务器端。这意味着安全性更高 通过类似与Hashtable的数据结构来保存 能支持任何类型的对象(session中可含有多个对象)

cookie的有效期

默认情况下,cookie是一个会话级别的,用户退出浏览器后被删除

cookie的有效期是可以自行设置的,版权归作者所有。 如果设置了过期时间,浏览器就会把 cookie 保存到硬盘上,关闭后再次打开浏览器, 这些 cookie 依然有效直到超过设定的过期时间。

3.常见问题

cookie是不安全的,因为他可以被用户篡改。同时由于cookie存储大量的信息,一旦这些信息泄露出来,也是危害很大的,所以,我们要慎用cookie

5.编码实战

浏览器中如何查看和禁用cookie。

js中cookie操作:

js中cookie操作

//保存表单中的信息到Cookie中

function saveCookie(){

var userName = document.getElementById("username").value;

var password = document.getElementById("password").value;

console.log(userName+password);

var date = new Date();

date.setDate(date.getDate()+1);

// date.setTime(date.getTime()+5000);

//将cookie保存5秒钟

setCookie("userName",userName,date.toGMTString(),"","","");

setCookie("password",password,date.toGMTString(),"","","");

showCookie()

}

//设置Cookie

/*

在cookie的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。在cookie的名中做到这点很容易,但要保存的值是不确定的。如何

来存储这些值呢?方法是用encodeURI()函数进行编码,它能将一些特殊符号使用十六进制表示,例如空格将会编码为“20%”,从而可以存储于

cookie值中,而且使用此种方案还可以避免中文乱码的出现。在获取cookie时可以通过decodeURI()方法对cookie进行解码。

Cookie的保存格式为:"name=value; expires=evalue; path=pvalue;"

每个属性之间通过:'分号+空格'(; )隔开;

参数值的意思:

name:表示要存入对象的名称,唯一必须设置(通常使用:user@domain格式命名,user为本地用户,domain为所访问网站的域名)。value:表示要存入得值。

expires:该对象的有效时间(可选)(默认为当前浏览器会话有用,关闭浏览器就消失);

path:指定该Cookie作用范围(可选)(即:在那些网页上可用);

domain:设置web服务器的Cookie共享域(可选)(如:test*.com)表示域名为test*.com的服务器共享该Cookie

secure:设置Cookie的传输过程是否加密(可选)(一般为SSH加密)

*/

function setCookie(name,value,expires,path,domain,secure){

document.cookie=name+"="+encodeURI(value)+

((expires) ? "; expires=" + expires : "")+

((path) ? "; path=" + path : "")+

((domain) ? "; domain=" + domain : "")+

((secure) ? "; secure=" + secure : "");

}

/**

获取浏览器中的Cookie时,只能够一次获取所有的cookie值,而不能指定cookie名称来获得指定的值,这正是处理cookie值最麻 烦的一部分。

用户必须自己分析这个字符串,来获取指定的cookie值

**/

//获取浏览器中的Cookie

function getCookie(cName){

var cookieString = decodeURI(document.cookie);

var cookieArray = cookieString.split("; ");

console.log(cookieArray.length);

for(var i = 0; i < cookieArray.length; i++){

var cookieNum = cookieArray[i].split("=");

console.log(cookieNum.toString());

var cookieName = cookieNum[0];

var cookieValue = cookieNum[1];

if(cookieName == cName){

return cookieValue;

}

}

return false;

}

function showCookie(){

var txt =  document.getElementById("txt_showCookie");

txt.value = "用户名:"+getCookie("userName")+"\n密码:"+getCookie("password");

}

//删除Cookie就是简单的将cookie的expires属性设置为一个过去的时间即可。

function deleteCookie(){

var date = new Date();

date.setTime(date.getTime()-1000);

setCookie("userName",password,date.toGMTString(),"","","");

setCookie("password",password,date.toGMTString(),"","","");

showCookie();

}




cookie显示区域

6.扩展思考

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

人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是一一对应的, 它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成, 整个过程是自动进行的。

7.参考文献

参考一:cookie和session的区别和各自的应用场景

8.更多讨论

cookie与本地存储之间的区别

①. cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

②. cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

③. 数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。

④. 作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。

PPT链接:

视频链接:


域名,Cookie,Cookie 和session的区别_腾讯视频

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

下期预告:return的用法,不见不散~

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

技能树.IT修真院

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

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

我的邀请码:92249038,或者你可以直接点击此链接:http://www.jnshu.com/login/1/92249038

推荐阅读更多精彩内容