一.背景介绍
1.什么是IP地址
互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(英语:IP Address),是分配给网络上使用网际协议(英语:Internet Protocol,IP)的设备的数字标签。IP地址是唯一的。常见的IP地址分为IPv4与IPv6两大类。可以把IP地址类比为一个电话号码,180.149.132.47即是一个IP地址。
2.什么是域名
网域名称(英语:Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。可以理解为联系人名称,如www.baidu.com就是一个域名。
3.什么是DNS
网域名称系统(DNS,Domain Name System)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。DNS将域名转换为IP地址的过程叫解析,
域名必须对应一个IP地址,而IP地址不一定只对应一个域名。可以把DNS理解为一个通讯录。
4.什么是cookie
cookie是一小段文本信息,以键值对的形式存储在客户端,伴随着用户请求和页面在Web服务器和浏览器之间传递。用户每次访问站点时,Web应用程序都可以读取Cookie包含的信息。
5.什么是session
Session指的是服务器端为客户端所开辟的存储空间,在其中保存的信息就是用于保持状态。
用户打开浏览器访问一起网站,浏览器的COOKIE中会生成sessionID,在每次请求时都会自动带上sessionID,然后服务器端根据sessionID找到对应的session值。
sessionID就相当于是一个钥匙,服务器上存session的地方相当于一个柜子,只能拿自己的钥匙开自己的柜子取自己的东西。
session一般存储用户相关的的信息,如用户登录状态、权限控制等,其他的信息也可存。另外就是无论你站点上的用户是否登录都会生成sessionID。
二.知识剖析
1.域名的用处
a.比IP地址更容易记忆
b.有利于SEO(搜索引擎优化)
2.Cookie的用处
Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。即用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的会话了。cookie可以解决此问题。
a.cookie可以跟踪会话,确认访问者的身份。
b.cookie可以将用户登录凭据保存在本地,cookie到期之前再访问该服务器就不必再登录了。
三.常见问题
1.cookie和session的的区别
a.cookie数据存放在客户的浏览器上,session数据放在服务器上。
b.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session
c.session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。
d.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
所以个人建议:将登陆信息等重要信息存放为SESSION其他信息如果需要保留,可以放在COOKIE中
2.cookie的有效期
分为会话cookie和持久cookie
如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。
如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。
存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。
四.解决方案
五.编码实战
在使用JavaScript存取cookie时,必须要使用Document对象的cookie属性;一行代码介绍如何创建和修改一个cookie:
document.cookie='username=Darren'
以上代码中'username'表示cookie名称,'Darren'表示这个名称对应的值。假设cookie名称并不存在,那么就是创建一个新的cookie;如果存在就是修改了这个cookie名称对应的值。如果要多次创建cookie,重复使用这个方法即可。
六.扩展思考
cookie与本地存储之间的区别
a.cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。
b.cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
c.数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。
七.参考文献
参考一:session到底是什么?
参考三:wiki-Cookie
八.更多讨论
IPv4和IPv6的区别
IPv4,由四组数字组合而成,由句点隔开(如207.44.214.87);IPv6,由8组4位16进制数表示,用冒号隔开(如2001:0db8:0000:0042:0000:8a2e:0370:7334)。
IPv6的优点:
a.更大的地址空间。IPv4中规定IP地址长度为32,即有2^32-1个地址;而IPv6中IP地址的长度为128,即有2^128-1个地址。
b.更小的路由表。IPv6能使得路由器能在路由表中用一条记录(Entry)表示一片子网,提高了路由器转发数据包的速度。
c.增强的组播(Multicast)支持以及对流的支持(Flow-control)。这使得网络上的多媒体应用有了长足发展的机会。
d.加入了对自动配置(Auto-configuration)的支持。使得网络(尤其是局域网)的管理更加方便和快捷.
e.更高的安全性.在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验。