cookie
概念:cookie技术是客户端的解决方案
1. 用户使用浏览器访问网站,用户名等信息提交至服务器;
2. 服务器在向客户端响应时将信息存放于HTTP响应头(Response Header);
3. 浏览器会将这些信息存放
4. 客户端再向服务器发送请求的时候,Cookie信息将会在HTTP请求头(Request Header)
cookie的作用域
cookie中domain参数默认为当前域名。
domain参数可以设置父域名以及自身,但不能设置其它域名,包括子域名,否则cookie不起作用。
cookie的作用域:cookie的作用域是domain本身以及domain下的所有子域名。
session
概念:session是解决http协议无状态问题的服务端解决方案
1. 创建Session的同时,服务器会为该Session生成唯一的Session id发到客户端。
2. 客户端发送请求时,将Session id带上。
3. 服务器根据session id找到对应的文件,读取的时候对文件内容进行反序列化就得到session的值,保存的时候先序列化再写入。
保存session
默认session是保存在files中。php中主要根据php.ini的配置session.save_handler来选择保存session的方式。
多台server一般使用memcached的方式session。
简单的memcache配置:
session.save_handler = memcache
session.save_path = "tcp://10.28.41.84:10001"
cookie 和session 的区别
1、cookie数据存放在bai客户的浏览du器上,session数据放在服务器上。
2、cookie不是很安全,别人可zhi以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
cookie与session的关系
cookie和session分别属于客户端和服务端,服务端的session实现依赖与客户端的cookie
session和cookie之间是通过$_COOKIE['PHPSESSID']来联系的,通过$_COOKIE['PHPSESSID']可以知道session的id,从而获取到其他的信息。