【问题标题】:Does http 307 (temporary redirect) accepts cookie value revalidated at the server end?http 307(临时重定向)是否接受在服务器端重新验证的 cookie 值?
【发布时间】:2018-03-22 23:52:58
【问题描述】:
我正在从我的浏览器调用一个 POST 请求(比如 request A)。我在重定向请求时尝试在后端执行以下操作,
1) Clear a cookie value
2) Set 307 header value and
3) Adding Location header with redirect url (say request B) value.
(2) 和 (3) 工作正常。
(1) 未按预期工作。当 请求 B 被调用时,cookie 值不会被清除 - 它会重用请求 A 中的值。有人可以提供一些关于此的见解吗?
【问题讨论】:
标签:
redirect
cookies
request
http-post
http-status-code-307
【解决方案1】:
确保在 A 的响应中有适当的 Set-Cookie 标头。
一些 Web 应用程序框架在重定向时无法以通常的方式添加这些标头。
我已经使用这个简单的 CGI 测试了 Chrome 和 Edge (40.15063) 在 307 重定向中按预期处理 Set-Cookie(从而清除 cookie):
#!/bin/sh
echo Status: 307 Temporary Redirect
echo "Content-Type: text/html"
printf 'Set-Cookie: Your-Cookie=; path=/; domain=Your-Domain; expires=%s' "$(date --rfc-2822 --utc --date='1 day ago')"
echo "Location: Your-B-url"
echo