<br><br><div><span class="gmail_quote">On 6/19/07, <b class="gmail_sendername">Ashraf Amayreh</b> &lt;<a href="mailto:mistknight@gmail.com">mistknight@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I use CURL rather than the drupal function because drupal uses fsockets, fsockets are known to have issues when retrieving from HTTP 1.0 as opposed to HTTP 1.1, this is solved by sending specific headers, these headers are ignored on some Linux systems and that may increase the response time by as much as 5x what CURL would take, normally they would be similar in speed although CURL is slightly faster. In specific situations like firewall presence or failure in DNS resolution fsockets may stall for a few minutes. I read about these issues in a number of articles and I also found them listed in the comments under fsocketopen. CURL just saved me the hassle and probably tens of issues :-)
</blockquote><div><br>&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><a href="http://www.php.net/manual/en/function.fsockopen.php" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://www.php.net/manual/en/function.fsockopen.php</a><br><br>Finally, with CURL I can support both HTTP and FTP URLs weather they are authenticated with a username and password or not. Only con to using CURL is that it has to be installed on the server machine and enabled in PHP (weather as a module or compiled).
</blockquote><div><br>Ashraf,<br><br><code><span class="html">From the comments at the PHP fsockopen page:<br></span></code><code><span class="html">===</span></code><br><code><span class="html">
EDITORS NOTE: HTTP/1.1 uses persistent connection causing this delay. Use &quot;Connection: close&quot; header to disable it.</span></code> <br><code><span class="html">===</span></code><br>and<br>===<br><code><span class="html">

Just a note to everyone who is using fsockopen and fread / fgets for a HTTP connection.<br>
<br>
Unless you specify &quot;Connection: Close&quot; in your headers you will need to
wait for the socket to time out before feof($streamPointer) to return
true.<br>
<br>
This has wasted 2 days of my time, grr!<br>
===<br></span></code><br>The first example in the page, before the comments, also does the close for<br>this reason.<br><br>This is detailed in the RFC too<br><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1">
http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1</a><br></div><br>Are you saying the header Connection: Close is ignored?<br><br></div>Any reason why Drupal should not use HTTP/1.1?