Cookie:小型文本文件。某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常加密)。
(服务器通过set-Cookie头给客户端一个字符串,客户端访问相同域名时就会带上这个字符串)
Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。按存在时间,可分为非持久Cookie(内存中)和持久Cookie(硬盘中)。
1、cookie缺点:
①Cookie会被附加在每个HTTP请求中,所以无形中增加了流量。
②由于在HTTP请求中的Cookie是明文传递的,所以安全性成问题,除非用HTTPS。
③Cookie的大小限制在4KB左右,对于复杂的存储需求来说是不够用的。
2、Cookie特点:
①服务器通过 set-Cookie 响应头设置Cookie
②浏览器得到 Cookie 之后,每次请求都带上Cookie
③服务器读取Cookie 就知道登录用户的信息
④Cookie默认用户关闭页面失效,但可以设置Cookie过期时间
Session
一种持久网络协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包的作用机制。
(服务器通过Cookie给用户一个随机sessionID,sessionID 对用服务器里的一小块内存(所有用户的session),每次用户访问服务器时,服务器通过sessionID 读取对应的session,从而知道用户信息)
Cookie与Session的关系:
①Session是基于Cookie实现的,因为Session必须将SessionID放到Cookie里发给客户端
②Cookie是Session的基石。
Cookie与Session的区别:
①Cookie 文件存储在客户端中;Session 文件存储在服务器中。
②Cookie不安全,用户可以篡改,只可以存储不重要的信息;Session比较安全,适合存储账号密码及其个人资料等。
③Cookie中只能保管ASCII字符串;Session中能够存取任何类型的数据