当用户浏览网站的时候,网站会将一小段数据发送给用户并存储在用户的浏览器中。用户访问相同网站的时候,浏览器就会将网站在用户中种下的cookie连同用户请求一同发送给客户端。

在PHP中,可以使用setcookie()函数向客户端发送一个cookie。参数如下:

1
2
3
4
5
6
7
name 必需。指定cookie的名称。
value 可选。指定cookie的值。
expire 可选。指定cookie的过期时间
path 可选。指定cookie在服务器上可用的路径
domain 可选。指定cookie有效的域
secure 可选。cookie应当只通过HTTPS传输
httponly 可选。当为TRUE时,表明cookie只可以通过HTTP协议访问。

当浏览器向网站发送请求的时候,它会根据cookie的域来判断携带哪个cookie。

如果cookie中没有设置domain属性,此时,有效的域就是“发送的请求“中域。

  • domain=.example.com,则该cookie对www.example.com也可用。
  • domain=.example.com,则该cookie对example.com也可用。
  • domain=example.com,会默认转换为domain=.example.com,因此,对www.example.com也可用。
  • domain=example.com,对anotherexample.com不可用,即cookie是不可以跨域的。
  • www.example.com可以对example.com设置cookie。
  • www.example.com不可以对www2.example.com设置cookie。