Bug #70361 [Com]: HTTP stream wrapper doesn't close keep-alive connections

From: Date: Tue, 25 Aug 2015 22:06:00 +0000
Subject: Bug #70361 [Com]: HTTP stream wrapper doesn't close keep-alive connections
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-195515@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=70361&edit=1

 ID:                 70361
 Comment by:         me at kelunik dot com
 Reported by:        me at kelunik dot com
 Summary:            HTTP stream wrapper doesn't close keep-alive
                     connections
 Status:             Open
 Type:               Bug
 Package:            Streams related
 PHP Version:        Irrelevant
 Block user comment: N
 Private report:     N

 New Comment:

Patch is outdated, PR contains test fixes and NEWS entry.


Previous Comments:
------------------------------------------------------------------------
[2015-08-25 18:04:48] me at kelunik dot com

Description:
------------
Downloading a file with file_get_contents("http://example.com/example.json"); defaults to
using HTTP/1.0. RFC compliant servers should respond with a HTTP/1.1 in such a case if they support
HTTP/1.1. Some servers initiate a keep-alive connection in that case, resulting a client hang,
because PHP waits until the connection is closed instead of relying on the Content-Length header.

This behavior should be fixed in two ways: (1) Always send "Connection: close" – even
for HTTP/1.0 requests – and (2) use Content-Length to determine the end of a response and close
the connection then.

My attached patch only fixes the first point.

Information regarding relevant spec: http://serverfault.com/a/442978/217277
file_get_contents behavior description: http://stackoverflow.com/a/4240241/2373138



------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=70361&edit=1


Thread (4 messages)

« previous php.bugs (#195515) next »