🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 1、COOKIE过期有效性设置 (1)即时性COOKIE设置 * 描述:默认cookie的有效期是关闭浏览器时,自动失效。该cookie称为临时cookie; * 语法: ``` bool setcookie ( string $name , string $value [, int $expire = 0 ]) ``` * 参数:$expire可选,指定cookie保存的时间,默认为0,关闭浏览器失效; ![](https://img.kancloud.cn/80/b4/80b419d8bf2a16a5789bb6ac7312f3a5_505x368.png) (2)有效性COOKIE设置 * 语法: ``` bool setcookie ( string $name , string $value [, int $expire = 0 ]) ``` * 参数:$expire可选,指定cookie保存的时间,默认为0,关闭浏览器失效; * 说明:$expire为一个时间戳。一般用time()+N表示新的时间戳。在当前时间点,再加上N秒后,产生一个新的时间戳。 * 提示:一旦指定了有效的过期时间,cookie失效跟关闭浏览器无关(持久cookie)。 ![](https://img.kancloud.cn/f7/ec/f7ece32f6ff1eb50cf07cc37268b114a_578x94.png) ![](https://img.kancloud.cn/36/69/36697b43364dff1c108159bd1f4bd5fc_515x414.png) ## 2、COOKIE路径有效性 * 描述:设置COOKIE只能在指定的目录及其子目录下有效 * 语法: ``` bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path]]] ) ``` * 参数:$path默认为"/",代表当前网站根目录,在当前目录及其所有子目录都可以使用。 * 说明:由于浏览器每次请求时,携带到服务器端很多的COOKIE数据,会导致请求数据变得庞大;将COOKIE划分到各个路径中,减少每个路径下COOKIE的数量。 例如:京东保存在客户端的有1万个COOKIE数据,大小为100MB,每次请求都需要1个小时。这样一来,每次请求带1个万COOKIE,但是当前页码只使用2个COOKIE,造成带宽浪费。 解决方案是:请求页面需要什么COOKIE,就带什么COOKIE过去,有针对性,会节省宽带。 ![](https://img.kancloud.cn/90/ee/90eee89d31b41d25bbc36b59f6dd2cb1_642x75.png) ![](https://img.kancloud.cn/cf/23/cf239abd2e1ead7f612f9be71e40681b_546x136.png) ![](https://img.kancloud.cn/e0/62/e06234878be81098a3f8a09acfcb283f_514x375.png) ## 3、COOKIE域名有效性 * 描述:给一个COOKIE指定访问的域名 * 语法: ``` bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain]]]] ) ``` * 提示:默认情况下,cookie只能在当前域名下有效。 * 域名划分: 主域名:itcast.cn 一级域名:www.itcast.cn 二级域名:news.itcast.cn 三级域名:php.news.itcast.cn * 说明:如果COOKIE域名有效性,设置为主域名,则在所有域名下都可以使用。如果设置为子域名,则只能在子域名下使用该COOKIE。 ![](https://img.kancloud.cn/cd/f8/cdf885eecf3938159938b0e5df02a759_718x116.png) 第一步:修改hosts文件添加二级域名 ![](https://img.kancloud.cn/e2/45/e2459fcf157d10ced77d8dd86e82b28c_351x179.png) 第二步:将两个域名都指向同一个虚拟目录 ![](https://img.kancloud.cn/72/1b/721bbae1a6bc8937836aeecb828aa2f2_639x402.png) ![](https://img.kancloud.cn/4e/2d/4e2d1cfcbb4ca514f064e69e139839d9_493x318.png) 第三步:测试结果 ![](https://img.kancloud.cn/4a/07/4a0745e307b3d56faa620e4df9b541f4_714x120.png) ![](https://img.kancloud.cn/f6/bd/f6bdf73af328b35f6009255582d91831_734x179.png) ![](https://img.kancloud.cn/9c/b1/9cb110bef35ec90fef898c1bc6985385_451x137.png) ![](https://img.kancloud.cn/dc/ed/dcedd7e343dcb8b1b191d369323cdf86_508x377.png) ## 4、是否仅https安全连接才能发送cookie呢? * 描述:是否仅限https来发送COOKIE数据,默认情况下,为http协议发送; * 语法: ``` bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false]]]]] ) ``` * https:是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL 。 ![](https://img.kancloud.cn/07/f3/07f3247ce2778af59de7382249cb0744_468x180.png) ![](https://img.kancloud.cn/3c/15/3c1587e2658a8ac458439d7921d98063_429x132.png) ![](https://img.kancloud.cn/4a/39/4a39b70366d9730598d1454ca525d326_727x117.png) ![](https://img.kancloud.cn/38/29/3829f2f3b4860976eb50732d8b627a6d_509x374.png) ## 5、是否只能通过http协议来使用COOKIE呢? * 描述:客户端的COOKIE除了可以通过HTTP协议来使用外,还可以使用JS来使用COOKIE。 * 语法: ``` bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] ) ``` * 提示:除了COOKIE通过http发往服务器使用,JS也可以使用该COOKIE。 ![](https://img.kancloud.cn/40/ae/40aead0811b7b2628b5e7c300aed6391_800x172.png) ![](https://img.kancloud.cn/33/4c/334c97fb81ecb047510ea97d99aa31f2_581x262.png) ![](https://img.kancloud.cn/4d/9f/4d9f12c58a65a9a39fa32e3beb8d2ea4_800x337.png)