thinkphp 响应头Set-Cookie的数据

139 阅读1分钟

请求链接 www.shopxo.com/ 不要试cookie网站是假的

thinkphp 响应头返回:

set-cookie: PHPSESSID=bmnr1p3mnc9vgn6a4kjok7uq85; path=/ 
set-cookie: uuid=17c433d3-a60d-ecc6-4876-c5a177fa6663; path=/ 
set-cookie: PHPSESSID=b046a1cc9d0b9779a81905ecbbbd77f5; expires=Tue, 03-Sep-2024 19:37:50 GMT; Max-Age=43200; path=/ 

在 thinkphp 的 index 的 controller 中调用了

session_start(); 
session('uuid', $value); 
cookie('uuid', $value); 

这3个方法, session的name在配置文件中设置为PHPSESSID

问: session的数据怎么跑到了响应头set-cookie 中?

答: 从你的描述来看,响应头中的 Set-Cookie 字段包含了多次设置 PHPSESSIDuuid 的信息。让我们逐个分析一下:

  1. session_start(): 这会启动一个新的会话或恢复现有会话。启动会话时,PHP 会自动在响应头中添加 Set-Cookie,其中包含当前会话的 PHPSESSID
  2. session('uuid', $value): 这会将 uuid 值存储在当前的会话中。此时,并不会直接影响响应头中的 Set-Cookie
  3. cookie('uuid', $value): 这会显式地设置一个名为 uuid 的 cookie。在响应头中,你会看到相应的 Set-Cookie