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

 ID:                 61679
 User updated by:    t...@php.net
 Reported by:        t...@php.net
 Summary:            Error on non-standard HTTP methods
-Status:             Assigned
+Status:             Open
 Type:               Bug
 Package:            Built-in web server
 Operating System:   Linux
 PHP Version:        5.4.0
 Assigned To:        laruence
 Block user comment: N
 Private report:     N

 New Comment:

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.


Previous Comments:
------------------------------------------------------------------------
[2012-04-09 13:58:01] larue...@php.net

hmm, I will try to fix it when I find what will apache does in such case :)

------------------------------------------------------------------------
[2012-04-09 13:47:56] t...@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 …




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



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

Reply via email to