Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 可以从4xx响应设置cookies吗?_Http_Cookies_Http Status Code 406 - Fatal编程技术网

Http 可以从4xx响应设置cookies吗?

Http 可以从4xx响应设置cookies吗?,http,cookies,http-status-code-406,Http,Cookies,Http Status Code 406,当我检测到一个特定的客户端错误时,我只是尝试设置(实际上,删除-通过最大年龄设置为0)一个会话cookie。我使用的HTTP响应来自4xx类别(例如401、406等) cookie删除在服务器端生成的此类响应中工作正常: Response resp = Response.status(Response.Status.OK).header( "Set-Cookie", cookieName+"="+sessio

当我检测到一个特定的客户端错误时,我只是尝试设置(实际上,删除-通过最大年龄设置为0)一个会话cookie。我使用的HTTP响应来自4xx类别(例如401、406等)

cookie删除在服务器端生成的此类响应中工作正常:

            Response resp = Response.status(Response.Status.OK).header(
                "Set-Cookie",
                cookieName+"="+sessionId+"; "+
                "Version=1; Max-Age=0; Path=" + cookiePath + "; " +
                "Expires=Thu, 01 Jan 1970 00:00:00 GMT").entity("").build();
…但在这方面失败了:

            Response resp = Response.status(Response.Status.UNAUTHORIZED).header(
                "Set-Cookie",
                cookieName+"="+sessionId+"; "+
                "Version=1; Max-Age=0; Path=" + cookiePath + "; " +
                "Expires=Thu, 01 Jan 1970 00:00:00 GMT").entity("").build();
(唯一的区别是:200=>406)

Cookie不能设置为4xx响应是真的吗?

声明必须接受这些Cookie

源服务器可以发送一个带有任何 答复。用户代理可以忽略中包含的设置Cookie头 具有100级状态代码但必须处理设置Cookie的响应 其他响应中包含的标题(包括包含400个字符的响应)- 和500级状态代码)。一个源服务器可以包括多个 在单个响应中设置Cookie头字段。出现 Cookie或Set-Cookie标头字段不排除HTTP缓存 从存储和重用响应


您是否使用多个浏览器进行过测试?如果
Set Cookie
标题确实存在,您是否已检查浏览器的开发人员工具?这可能还与
Response
类的实现有关。我知道这很奇怪-感谢您证明这看起来像是一个浏览器错误(我正在使用Firefox26/Linux进行编码)。