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.参考文献
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链接:
视频链接:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
下期预告:return的用法,不见不散~
------------------------------------------------------------------------------------------------------------------------
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~
我的邀请码:92249038,或者你可以直接点击此链接:http://www.jnshu.com/login/1/92249038