cookie 的五个参数
$name cookie 名字
$value cookie 值(数组形式)
$expire cookie 过期时间
$path 当前域名下的有效路径
$domain 作用域 默认本域名下 可以跨域
$secure 是否只能通过 https 访问
$httponly 是否只能 http 访问 不允许其他脚步语言访问
setcookie 设置 cookie 信息
内存 cookie
硬盘 cookie
Cookie:
保存在客户端:内存cookie(浏览器维护,关闭后消失,暂时)、硬盘cookie(硬盘里,手工清理/设置过期时间,长期);
使用场景:响应头 set cookie 发给服务器;(永久登录/购物车);
操作:设置、读取、更新、删除;
设置:setcookie();/setrawcookie();
setcookie ( string $name(
名字)
[, string $value
(值)= "" [, int $expire
(过期时间,s,默认0)= 0 [, string $path
(有效路径:默认是当前目录及其子目录有效,也可以指定整个根目录/: 即参数:‘/’)
= "" [, string $domain
(设置作用域,默认在本域下)= "" [, bool $secure(
只能通过https,默认关闭,还可以http)
= false [, bool $httponly
(是否只使用http访问,默认false,若true,客户端js不能用,xss有关)= false ]]]]]] ) : bool
读取cookie:数据保存在预定义变量$_COOKIE中;
玩玩反反复复
localStorage可以用来存储一些原来需要从数据库读取的系统配置信息,数据字典等(如果是临时数据可以存储在sessionStorage中),如果数据较大,可以再存储一份数据更新时间,将更新时间与数据库中的更新时间比对,决定是否重新从数据库中读取,从而减少数据库交互,节省带宽。
cookie禁用后也可通过url传递session_id
<?php echo "helloworld"; ?>
session注销
用户登录+验证码(登录状态检测和注销)
验证码封装
PHP封装验证码
HTTP 超文本传输协议
最大特点是无状态,无连接。
请求时建立连接,响应完后释放连接。
setcookie()属性
session_set_save_handle();
将Session保存到mysql或者redis
清除cookie:setcookie();
清除session:session_destroy();
setcookie("TestCookie", $value, time()+3600);
setcookie('history_id','',-1,'/');这句的意思是,销毁名称为history_id的cookie
session存放位置修改:session.save_path = “e:\www\tmp”;
cookie:存放于客户端,不同浏览器大小不同,最大字节长度为4K。同时浏览网站时,会随着head头传输,如若太大增加服务器压力。
cookie参数中可以设置作用域,子域名可以设置允许访问。
为了更好优化,推出了localstorage,sessionstorage最大可以到5M。
session存放于服务器端,开启式后会在cookie中写入PHPSESSIONID。
内置函数:session_id(); session_name();
修改session的生存周期:
setcookie(session_name(),session_id(),time()+3600 );
客户端禁用cookie之后也可以使用session,只要在url中附着上phpsessionid传递过来即可。
设置cookie的参数
默认会话管理器是文件形式,一个用户对应一个文件,不总以应对千万访问级别。
使用mysql作为会话管理器,因为需要到数据库进行查询,会影响性能。
最佳方法:使用memcache或redis作为会话管理器。
1.1默认启动keep-alive
connection:keep-alive 持久连接
无连接限制我们每次连接只处理一次,服务器接受到请求之后并且答应后就断开了连接,尽快释放资源
http是无状态请求,超文本传输协议
最典型的是使用请求和响应模式,最大的特点是无连接无状态
http特点:
无状态,无协议
cookie
cookie