`
wrong1111
  • 浏览: 252784 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

chrome 来自服务器的响应包含重复标头。此问题通常是由于网站或代理配置不正确导致的。只有网站或代理管理员才能解决此问题

阅读更多

今天项目中用到了写入流下载。代码如下。

 

 

HttpServletResponse reponse = super.getResponse();

reponse.setHeader("Content-Disposition", "attachment;filename=" + fileName);

reponse.setContentType("application/octet-stream");

reponse.setBufferSize(2048);

reponse.setContentLength(byteArr.length);

ServletOutputStream out = null;

try {

out = reponse.getOutputStream();

out.write(byteArr, 0, byteArr.length);

} catch (IOException e1) {

// TODO Auto-generated catch block

log.error(e1);

}

 

这段代码在项目中一直运行良好。。近日,有位兄弟,在这里面加入了点点代码。。

导致在 chorme 浏览器中,抛出异常。

 

异常如下

 

收到了来自服务器的重复标头
来自服务器的响应包含重复标头。此问题通常是由于网站或代理配置不正确导致的。只有网站或代理管理员才能解决此问题。
错误 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION):我们收到了多个“Content-Disposition”标头。我们不允许此行为,以防遭到 HTTP 响应拆分攻击。

 

 

但使用其他IE8,IE9,firefox 都运行良好。。

 

于上上网一搜,,还真搜出一堆。。解决方法如下

 

原因是因为下载文件名中包含有逗号分隔符。。在所有的浏览器中,下载文件名不支持双字节字符。

 

参考请见 http://greenbytes.de/tech/tc2231/#attmultinstances

 

 

 

Content-Disposition: attachment; filename=foo,bar.html
                                             ^ (PARSE ERROR)
Test Results
FF11 warn (accepts the unquoted value)
FF14 warn (accepts the unquoted value)
MSIE8 warn (accepts the unquoted value)
MSIE9 warn (accepts the unquoted value)
Opera warn (accepts the unquoted value)
Safari warn (treats the comma as delimiter and offers to download "foo.html")
Konq pass (ignores thes header field)
Chr17 pass (reports a network error ("Duplicate headers received from server"))
Chr18 pass (reports a network error ("Duplicate headers received from server"))

'attachment', specifying a filename of foo,bar.html using a comma despite using token syntax.

 

 

 

 

 

 

分享到:
评论

相关推荐

    Asp.Net服务器发送HTTP标头后无法设置内容类型的问题解决

    在涉及到不同类型的响应内容(如文件下载或导出)时,应确保避免使用可能导致部分页面更新的控件,或正确配置这些控件以触发全页面回发。通过这种方式,可以确保服务器能够正确设置HTTP响应的全部内容,包括必要的...

    Ruby-Rails应用程序的服务器时间标头

    Rails框架默认并未开启服务器时间标头,但可以通过一些配置或第三方库来实现。 标题“Ruby-Rails应用程序的服务器时间标头”涉及到的关键知识点包括: 1. **服务器时间标头**:这是一个HTTP响应头,通常称为`X-...

    HTTP常见错误

    这通常是由于提供的认证信息不正确或缺失。401.1和401.2错误进一步细化了未授权的原因,如证书不匹配或WWW验证表头问题。401.3指资源的ACL(访问控制列表)不允许访问,401.4和401.5是授权服务被筛选程序或ISAPI/CGI...

    cdp-modify-response-example:使用Chrome Devtools协议(CDP)在Playwright或Puppeteer中修改响应标头的示例

    此回购包含在Puppeteer和Playwright中拦截响应的示例。 这些示例做什么: :wrench: 在或创建一个新的Chrome-Devtools-Protocol(CDP)会话。 :hammer: 启用Fetch域,让我们用自己的代码替代浏览器的网络层。 :...

    chrome插件修改请求头

    Header Editor是一款管理浏览器请求的Chrome扩展,包括修改请求头、修改响应头、重定向请求、取消请求。  您可以从Redirector导入规则  规则说明:  1、匹配类型  规则会应用到满足相应匹配条件的URL上  全部:...

    HTML1114 (HTTP 标头)的代码页 gb2312 覆盖(META 标记)的冲突的代码页 utf-8

    如果该字段未指定或与页面内的`<meta>`标签中的编码声明不一致,则可能导致浏览器解析错误。 **问题表现** - **谷歌和火狐浏览器**: 这两个现代浏览器通常会根据`<meta>`标签中的声明来解析网页,因此即使HTTP响应...

    VB Http proxy代理服务器源代码.rar

    Http proxy,由VB6.0编写的代理服务器的源码,要... 收集所有必要信息后,它连接到真实服务器并传递标头数据。  打开程序后,可单击监听按钮,实现代码服务的监听功能,也可适时停止这个功能。  本源码来自于国外。

    IIS反向代理Apache、Tomcat、隐式URL.zip

    在这种情况下,由于IIS和Apache不能同时监听同一个端口(如80端口),我们需要利用IIS的反向代理功能来实现对Apache或Tomcat站点的访问。下面将详细讲解如何设置IIS反向代理,以及如何实现隐式URL。 首先,理解反向...

    禁止浏览器缓存当前文档内容

    2. **利用Referer请求头阻止“盗链”**:服务器可以通过检查请求的`Referer`字段来判断请求是否来自预期的源,如果不是,可以拒绝响应,防止资源被其他网站非法引用。 3. **load-on-startup标签的作用**:在Servlet...

    LoadRunner脚本录制及代理录制方法+问题解决及注意点常用设置,fiddler+lr12生成LR11脚本方法步骤

    1. 使用代理录制:设置浏览器的代理为LoadRunner的代理服务器,这样所有网络流量都会通过LoadRunner进行,从而解决录制问题。在LoadRunner中,这需要在"Run Time Settings"的"Recording Options"中配置代理设置。 2...

    vuex-router history模式在IIS服务器上的配置方法.docx

    然而,这种模式下,服务器需要进行额外的配置,以处理这些原本不存在于服务器路由中的路径。 配置 history 模式的步骤如下: 1. **安装 URL 重写模块**:首先,你需要确保 IIS 服务器安装了 URL 重写模块。这可以...

    网页 标头

    网页标头是网页设计中的重要元素,它通常位于页面顶部,包含了网站的logo、导航菜单、搜索框等关键信息,为用户提供对整个网站结构的快速理解。在网页制作过程中,尤其是使用ASP.NET技术进行开发时,标头的设计与...

    chrome.exe

    Chrome具有GPU硬件加速:当激活GPU硬件加速时,使用“Google Chrome”浏览那些含有大量图片之网站时可以更快渲染完成并使页面滚动时不会出现图像破裂的问题。 2013年4月份,Google宣布称将为Chrome浏览器开发新的...

    推荐企业网站FLASH标头

    标题中的“推荐企业网站FLASH标头”指的是在企业网站设计中使用的一种视觉元素,通常位于网页顶部,以吸引用户注意力并展示品牌形象。FLASH是Adobe公司开发的一种矢量图形动画技术,它允许设计师创建动态、交互式的...

    SharePoint Iframe Excel Services 页面报错“此内容不能显示在一个框架中”.pdf

    但其在使用过程中也可能会遇到一些安全性和兼容性的问题,例如Iframe嵌入Excel Services页面时出现的“此内容不能显示在一个框架中”的报错。为了解决这一问题,我们需要深入了解相关知识点,包括Iframe嵌入、点击...

    devexpress表格控件gridcontrol实现纵向标头

    在提供的"VerColHeader"文件中,可能包含了实现上述功能的示例代码或配置文件。通过查看这些文件,你可以更具体地了解如何在实际项目中应用这些技术。记住,理解并掌握这些知识点将帮助你更好地利用DevExpress ...

    on-headers:在响应即将写入标头时执行侦听器

    当响应即将写入标头时,执行一个侦听器。 安装 这是通过提供的模块。 使用完成 : $ npm install on-headers API var onHeaders = require ( 'on-headers' ) onHeaders(res,监听器) 当为res发出标题时,这将...

    IHeader:Chrome扩展程序:告别跨域,自定义HTTP请求响应头

    Chrome对于请求头和响应头的展示具有明确的规定,即控制台中只展示发送出去或刚接收到的路线。因此编辑后的请求链接,控制台的网络栏能够正常展示;而编辑后的响应分区由于不属于刚接收到的细分,所以从控制台上就...

    IIS6.0 IIS,互联网信息服务

    以及引入了命令行工具 Appcmd.exe ,给 Web 服务器的日常管理、监视和配置提供了除图形接口外的另一种方式,更为简单、高效。 同Windows XP一样,在Windows Vista的默认设置下,IIS (Internet 信息服务) 7.0未予安装...

Global site tag (gtag.js) - Google Analytics