<?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>LocalDev &#187; 417</title>
	<atom:link href="http://localdev.de/tags/417/feed/" rel="self" type="application/rss+xml" />
	<link>http://localdev.de</link>
	<description>Web, Desktop &#38; Mobile Development</description>
	<lastBuildDate>Thu, 01 Dec 2011 18:54:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Lighttpd 1.4: HTTP 417 Expectation Failed</title>
		<link>http://localdev.de/2010/01/lighttpd-1-4-http-417-expectation-failed/</link>
		<comments>http://localdev.de/2010/01/lighttpd-1-4-http-417-expectation-failed/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 14:22:40 +0000</pubDate>
		<dc:creator>Fabian Martin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[417]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[cURL]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[Header]]></category>
		<category><![CDATA[Lighttpd]]></category>

		<guid isPermaLink="false">http://localdev.de/?p=417</guid>
		<description><![CDATA[Versucht man mit einer cURL oder .NET Anwendung POST Daten an einen Lighttpd 1.4 Server zu senden, bekommt man die Meldung Dies liegt daran, das die Programme einen Expect: 100-continue Header senden, und als Antwort 100 (Continue) oder 417 Expectation Failed erwarten. Lighty kennt den Header jedoch nicht, und antwortet deswegen mit dem besagten 417 [...]]]></description>
			<content:encoded><![CDATA[<p>Versucht man mit einer cURL oder .NET Anwendung POST Daten an einen Lighttpd 1.4 Server zu senden, bekommt man die Meldung</p>
<pre class="brush: plain; title: ; notranslate">

HTTP/1.1 417 Expectation Failed
</pre>
<p>Dies liegt daran, das die Programme einen <em>Expect: 100-continue</em> Header senden, und als Antwort <em>100 (Continue)</em> oder <em>417 Expectation Failed</em> erwarten. Lighty kennt den Header jedoch nicht, und antwortet deswegen mit dem besagten <em>417 Expectation Failed</em>.</p>
<p>Der <em>Expect: 100-continue</em> Header soll verhindern, das Daten an den Server gesendet werden, die nicht benötigt werden. Erkennt der Server z.B. das er die Anfrage ablehnen muss, kann er dies dem Client mitteilen, noch bevor die POST Daten übermittelt wurden.</p>
<p>Wer dennoch POST Daten an Lighty senden möchte, kann die folgenden Paramter anpassen:</p>
<p><strong>.NET</strong></p>
<pre class="brush: csharp; title: ; notranslate">

System.Net.ServicePointManager.Expect100Continue = false;
</pre>
<p><strong>cURL unter PHP</strong></p>
<pre class="brush: php; title: ; notranslate">
curl_setopt($objCurl, CURLOPT_HTTPHEADER, array('Expect: '));
</pre>
<p><strong>cURL auf der Kommandozeile</strong></p>
<pre class="brush: bash; title: ; notranslate">
curl -v -H &quot;Expect: &quot; -F &quot;field=value&quot; http://example.com/upload.php
</pre>
<p>Alternativ aktualisiert man auf Lighttpd 1.5. Dieser kennt den <em>Expect: 100-continue</em> Header und beantwortet entsprechende Anfragen korrekt.</p>
<p>Browser senden übrigens keinen <em>Expect: 100-continue</em> Header.</p>
]]></content:encoded>
			<wfw:commentRss>http://localdev.de/2010/01/lighttpd-1-4-http-417-expectation-failed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

