|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2012-04-09 13:47 UTC] toby@php.net
Description:
------------
The built in webserver bails out with an error on retrieval of a non-standard HTTP request method (e.g. PATCH).
Test script:
---------------
Run the PHP built in web server on PORT 8042 and use the following script to reproduce the error:
$httpFilePointer = fopen(
'http://localhost:8042',
'r',
false,
stream_context_create(
array(
'http' => array(
'method' => 'PATCH',
),
)
)
);
Expected result:
----------------
A valid HTTP response, depending on the script run by the server.
Actual result:
--------------
The server logs to shell:
[Mon Apr 9 15:45:35 2012] ::1:37726 Invalid request (Malformed HTTP request)
The client complains about a malformed response:
Warning: fopen(http://localhost:8042): failed to open stream: HTTP request failed! in …
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Nov 21 07:00:01 2025 UTC |
Just to make this clear: HTTP allows arbitrary method verbs to be used. Quoting the EBNF from RFC 2616, chapter 5.1.1: Method = "OPTIONS" ; Section 9.2 | "GET" ; Section 9.3 … | extension-method extension-method = token Event if the server itself does not support a certain method, it should not crash, but send a 405 (Method Not Allowed) response. However, for the built in web server, it makes sense to let the executed script handle this and pipe arbitrary method verbs to it.