<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Snooda]]></title> 
<link>http://www.snooda.com/index</link> 
<description><![CDATA[Snooda's Blog]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Snooda]]></copyright>
<item>
<link>http://www.snooda.com/read/322</link>
<title><![CDATA[curl耗时长问题-Expect: 100-continue]]></title> 
<author>snooda &lt;admin@snooda.com&gt;</author>
<category><![CDATA[网络]]></category>
<pubDate>Tue, 22 Jan 2013 09:17:33 +0000</pubDate> 
<guid>http://www.snooda.com/read/322</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;最近发现有个问题，一个自制的webserver在应答前端请求时，总是要处理1s以上，似乎是由于哪里等待了1秒。研究了下发现：Expect: 100-continue这个东东。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;100-continue这个状态码之前是很少遇到的。这个是http1.1协议为了提高效率设置的。当客户端要POST较大数据给webserver时，可以在发送http头时带上Expect: 100-continue，服务器如果接受这个请求，应答一个HTTP/1.1 100 Continue，那么客户端就继续传输正文，否则应答417，客户端就放弃传送剩余的数据了。这样就避免客户端吭哧吭哧传了一大堆数据上去，结果服务端发现不需要的情况。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;libcurl在不同版本里逻辑不同，有的版本libcurl会在POST数据大于1024字节的时候发送100-continue请求，有的版本则不会。我们用到的libcurl版本会发送，而自制webserver不会应答这个请求，客户端等待1s钟没有收到肯定或否定的应答，还是继续传输了正文，虽然逻辑上并没有问题，但速度上就慢了下来。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;加了下逻辑，对100-continue进行应答，速度马上提高很多。<br/><br/><br/><br/><br/>Tags - <a href="http://www.snooda.com/tags/webserver/" rel="tag">webserver</a> , <a href="http://www.snooda.com/tags/http/" rel="tag">http</a>
]]>
</description>
</item><item>
<link>http://www.snooda.com/read/322#blogcomment135</link>
<title><![CDATA[[评论] curl耗时长问题-Expect: 100-continue]]></title> 
<author>1 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 17 Apr 2014 07:51:27 +0000</pubDate> 
<guid>http://www.snooda.com/read/322#blogcomment135</guid> 
<description>
<![CDATA[ 
	5
]]>
</description>
</item><item>
<link>http://www.snooda.com/read/322#blogcomment137</link>
<title><![CDATA[[评论] curl耗时长问题-Expect: 100-continue]]></title> 
<author>P.S.V.R &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 05 Sep 2014 02:22:56 +0000</pubDate> 
<guid>http://www.snooda.com/read/322#blogcomment137</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item><item>
<link>http://www.snooda.com/read/322#blogcomment149</link>
<title><![CDATA[[评论] curl耗时长问题-Expect: 100-continue]]></title> 
<author>456 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 11 May 2015 10:07:29 +0000</pubDate> 
<guid>http://www.snooda.com/read/322#blogcomment149</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item><item>
<link>http://www.snooda.com/read/322#blogcomment148</link>
<title><![CDATA[[评论] curl耗时长问题-Expect: 100-continue]]></title> 
<author>123 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 11 May 2015 10:07:32 +0000</pubDate> 
<guid>http://www.snooda.com/read/322#blogcomment148</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>