当前位置:主页 > 教程 > 编程教程 >

php技术宅细说浏览器中的cookie
栏目分类:编程教程   发布日期:2019-06-18   作者:素年    来源:未知

首先我们来看一下浏览器中的cookie是如何工作的。 每当浏览器向服务器发起http请求的时候,都会检查本地是否有相应的cookie,如果有则添加到请求头中一起发送到服务器端。由此可以看出cookie适合存储那些每次都要发给服务端的内容,比如身份信息等。 下面来
  首先我们来看一下浏览器中的cookie是如何工作的。
  
  每当浏览器向服务器发起http请求的时候,都会检查本地是否有相应的cookie,如果有则添加到请求头中一起发送到服务器端。由此可以看出cookie适合存储那些每次都要发给服务端的内容,比如身份信息等。
  
  下面来看一下cookie的构成。
  
  cookie有多个属性,每个属性都是用键值对表示的,键值对之间由一个分号和一个空格隔开。例如:document.cookie="nickname=会编程的猿; expires=11 Nov 2018 11:11:11 GMT;"。
  
  cookie中的属性如下图所示:
  
  图1 cookie的属性
  
  图1中Name列是cookie的名字;Value列是cookie的值;Domain列是cookie的域;Path列是cookie的路径;Expires/Max-Age列是cookie的有效期;Size列是cookie大小;Http列是控制cookie只能通过http请求的方式访问;Secure列控制cookie只能在https下才被发送;SameSite列是限制cookie在不同站点之间是否被传递的,用的比较少。
  
  下面我们重点介绍这其中的几个属性。
  
  domain和path组合在一起来控制cookie可以被发送到哪些URL地址。当URL的域名是domain或者其子域名并且路径是path或者其子路径时,请求该URL就会携带cookie信息。举个例子:假设cookie的domain属性设置为.abc.def,path属性设置为/,那么当访问book.abc.def/novel或者music.abc.def或者abc.def/movie的时候都会携带该cookie信息。domain的默认值是当前网页的域名,path的默认值是当前网页的路径。
  
  expires和max-age都可以设置cookie的有效期。expires设置的是一个时间点,到时间点之后cookie失效;max-age设置的是一个时间段,从cookie创建的时候算起,过max-age时间之后cookie失效,他们的等效关系是expires=创建时间 + max-age。如果不设置cookie的有效期,那么浏览器关闭之后cookie就会失效,上图1中的Expires/Max-Age列值为session的就是没有设置有效期的cookie。
  
  HttpOnly属性限制cookie只能通过http请求的方式访问,而不能通过本地js访问,可以防止js修改cookie的内容。比如上图1中Http列值为√的就表示设置了HttpOnly属性,我们在本地通过js获取cookie如下:
  
  图2 通过js获取cookie信息
  
  我们可以看到通过js只能获取到没有设置HttpOnly属性4个的cookie。图1中有两个设置了HttpOnly属性的cookie通过js是获取不到的。
  
  看到这里真是辛苦了,下面放松一下^_^
  
  公众号内回复关键词“红包”即可领取红包,快快行动吧。
  
  篇幅有限,关于cookie的设置以及cookie跨域的相关内容后续文章再作介绍,感谢阅读。

相关热词:

Copyright © 2016-2020 我爱分享网 版权所有   豫ICP备16008703号-1   关于我们 | 广告合作 | 版权声明 | 意见反馈 | 联系方式 | 原创投稿 | 网站地图 |
特效 教程 资源 资讯 福利