<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ScottDotDot </title>
	<atom:link href="http://s.co.tt/tag/http/feed/" rel="self" type="application/rss+xml" />
	<link>http://s.co.tt</link>
	<description>Babblings of a computer curmudgeon.</description>
	<lastBuildDate>Mon, 26 Jan 2026 16:08:52 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1</generator>
	<item>
		<title>Google Chrome Reports &#8220;Duplicate headers received from server&#8221;</title>
		<link>http://s.co.tt/2013/06/10/google-chrome-duplicate-headers-received-from-server/</link>
		<comments>http://s.co.tt/2013/06/10/google-chrome-duplicate-headers-received-from-server/#comments</comments>
		<pubDate>Mon, 10 Jun 2013 21:51:10 +0000</pubDate>
		<dc:creator><![CDATA[Scott]]></dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[http]]></category>

		<guid isPermaLink="false">http://s.co.tt/blog/?p=483</guid>
		<description><![CDATA[It seems that this error message has been around since version 16 of Chrome, and was first reported sometime in 2011. The error message basically says that it received two Content-Disposition headers, and that the response was blocked to prevent HTTP response splitting attacks. However, in most cases this error isn&#8217;t caused by malicious code, but rather because of an innocuous comma in the filename parameter of the Content-Disposition header. Here&#8217;s an example of an actual response header I received while downloading a resume from a popular career site: Content-Disposition: attachment; filename=Beresky_Resume,6pg.docx That was the only Content-Disposition header in the entire response, which raises the question: Why is this a duplicate header? Because according to the HTTP 1.1 specification, section … <a class="continue-reading-link" href="http://s.co.tt/2013/06/10/google-chrome-duplicate-headers-received-from-server/"> Continue reading</a>]]></description>
				<content:encoded><![CDATA[<p>It seems that this error message has been around since <strong>version 16</strong> of Chrome, and was first reported sometime in 2011.</p>
<p><a href="http://s.co.tt/blog/blog/2013/06/10/google-chrome-duplicate-headers-received-from-server/chrome_duplicate_headers_error_message/" rel="attachment wp-att-484"><img src="http://s.co.tt.kisocdnb.net/blog/wp-content/uploads/2013/06/chrome_duplicate_headers_error_message.png" alt="Duplicate headers received from server - Google Chrome error message" title="Chrome Duplicate Headers Message" width="580" height="134" class="aligncenter size-full wp-image-484" /></a></p>
<p>The error message basically says that it received two Content-Disposition headers, and that the response was blocked to prevent <a href="http://en.wikipedia.org/wiki/HTTP_response_splitting" target="_blank">HTTP response splitting</a> attacks.</p>
<p>However, in most cases this error isn&#8217;t caused by malicious code, but rather because of an innocuous comma in the filename parameter of the Content-Disposition header.  Here&#8217;s an example of an actual response header I received while downloading a resume from a popular career site:</p>
<p style="font-family: Courier New,System,Terminal,Courier;">Content-Disposition: attachment; filename=Beresky_Resume,6pg.docx</p>
<p>That was the only Content-Disposition header in the entire response, which raises the question: <strong>Why is this a duplicate header?</strong></p>
<p>Because according to the <a href="http://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-07.txt" target="_blank">HTTP 1.1 specification</a>, section <i>4.2 Message Headers</i>:</p>
<p style="font-family: Courier New,System,Terminal,Courier;">Multiple message-header fields with the same field-name may be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e., #(values)]. It MUST be possible to combine the multiple header fields into one &#8220;field-name: field-value&#8221; pair, without changing the semantics of the message, by appending each subsequent field-value to the first, each separated by a comma.</p>
<p>Hence, Chrome is <strong>correctly</strong> interpreting the Content-Disposition header as two Content-Disposition headers, one with the value <span  style="font-family: Courier New,System,Terminal,Courier;">attachment; filename=Beresky_Resume</span> and the other with the value <span style="font-family: Courier New,System,Terminal,Courier;">6pg.docx</span></p>
<p>I don&#8217;t know that this error message should bother referencing HTTP response splitting attacks, as in most cases that&#8217;s going to be a red herring.  The real problems are that:</p>
<ul>
<li>Two Content-Disposition headers are not valid in this HTTP response.  There is only one body, one binary file, and hence it can only have one disposition.</li>
<li>The &#8220;second&#8221; header (as interpreted by the browser) has the invalid, or at least useless, value of <span style="font-family: Courier New,System,Terminal,Courier;">6pg.docx</span></li>
<li>The filename parameter <strong>should</strong> support the least-capable file system, and not all file systems (and/or file sharing protocols) support commas in file names.</li>
</ul>
<p>The solution is to make a change at the <strong>server</strong> to encode commas, replace them with another character, or omit them entirely when passing a filename parameter in the Content-Disposition header.</p>
<p>In the meantime, if you need to download a file containing a comma but have no control over the server, it appears that IE, FF, and Safari are all far more permissive and will download the file appropriately.</p>
<p><strong>END.</strong></p>
<p>Don&#8217;t mind me, I&#8217;m just putting the full error text below so that this article can be found more easily when searching.  (I hope it was helpful enough to warrant such treatment!)</p>
<p>Duplicate headers received from server<br />
The response from the server contained duplicate headers. This problem is generally the result of a misconfigured website or proxy. Only the website or proxy administrator can fix this issue.<br />
Error 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): Multiple distinct Content-Disposition headers received. This is disallowed to protect against HTTP response splitting attacks.</p>
]]></content:encoded>
			<wfw:commentRss>http://s.co.tt/2013/06/10/google-chrome-duplicate-headers-received-from-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
