当 session_start() 且 cookie_secure 等于 true 时,php 是否使用 HTTP 将 cookie 发送到本地主机?

Does php send a cookie to localhost with HTTP when session_start() with cookie_secure equal to true?

如果我像下面这样为服务器启动会话,并且本地主机客户端尝试通过 HTTP 请求服务器,它是否会响应 session cookie

还是必须通过 HTTPS?

我读了 doc 确实说只能通过 HTTPS,但我想知道 localhost 是否例外。

session_start([
    'cookie_secure' => true
]);

是的,确实如此:

如果您在浏览器中尝试此操作,您还会看到一条警告,指出该 cookie 已被拒绝。

这是有道理的,因为 PHP 无法控制整个通信通道,并且最终用户可能正在连接到内部重定向到未加密 HTTP 服务器的安全代理。