【JS/PHP】Cookie工作原理及js/php调用方式

1 篇文章 0 订阅

Cookie工作原理:

如果用户在第一次访问服务器时,服务器会分配一个用户ID发送到客户端,用户本地就会存储这个cookie文件;cookie的产生是在服务器返回信息给客户端之前产生的;php是通过调用setcookie()函数来设置cookie信息,js通过document.cookie来设置cookie值;
如果用户不是第一次访问,即:本地已经存在cookie,则在发送请求时会将cookie一并发给服务器,服务器收到请求之后会作出相应处理,返回对应的信息;

Cookie的作用域:

Cookie的作用域一般是在当前的站点下;如果通过设置来使某个后缀域名下都有效则可以使用domain来设置,如:document.domain=“baidu.com”;则表示在baidu.com下都有效,例:用户在www.baidu.com官网登录,不关闭浏览器的情况下,之后再直接登录style.qq.com,这样同样会带上用户的登陆态。

Cookie生命周期:

Cookie有效期,我们可以在代码里边去设置;或者设置为接受用户输入的有效期,如登录信息:有些站点可能为了用户再次访问时不需要输入用户登录信息,在用户第一次登陆的时候让用户选择保存多久,比如一天、一周等;同样,我们也可以主动去控制,比如涉及到用户隐身的,一般在退出浏览器或者用户多久没有操作浏览器cookie就会过期,让用户重新登录;

Cookie设置:

主要从js和php这里来简单描述下cookie的设置方式和其中需要包括的属性

Js:
简单通用设置方式为:document.cookie;通过设置不同属性的值来赋值给document.cookie;不同的值通过“;”隔开。

一般包括了这几个属性:

  • cookie的值
  • cookie过期时间(expire)
  • cookie的作用域(domain)
  • cookie作用范围(path)
  • cookie安全性(secure)

如:给cookie赋一个名字document.cookie=“cookiename=jinhui”;设置一个过期时间,1天后过期:

Var date = new Date();   
var expire_day = 1*24*3600*1000;   //过期时间  1天,单位毫秒
Var time = date.getTime();  //获取当前时间
Var Expire_time = date.setTime(time+expire); //当前时间+过期天数,然后转换为毫秒
Document.cookie="cookiename=jinhui ; expire=date.toUTCString(expire_time)"; //将时间格式转换为UTC字符串形式赋给document.cookie;

设置cookie的作用域:
如果我们想要让vip.qq.com和haoma.qq.com的登陆态读取同一个cookie,我们可以这样来设置:

Var domain_cookie = "qq.com";
document.cookie = "cookiename=jinhui ; domain = domain_cookie";

这样就可以在qq.com域名下共享这个cookie了。
设置cookie的作用范围:
默认情况下,如果在某个页面创建了一个cookie,那么该页面所在目录中的其他页面也可以访问该cookie。如果这个目录下还有子目录,则在子目录中也可以访问。

例如在http://haoma.qq.com/act/中所创建的cookie可以被act/下的多个活动页面访问,但是如果号码商城页面haoma.qq.com/shop.html想访问的话是访问不到的;那么这个时候我们对cookie的作用范围进行设置:document.cookie=“cookiename=jinhui ; path=/”; 表示根目录下都可以访问该cookie,即:haoma.qq.com/下都可以访问;

Php方式设置cookie方式
使用setcookie这个方法:

Setcookie(string name [, string value [, int expire [, string path [, string domain ]]]]);

Name\value\path\domain用法同上;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值