protected function processProtocol()
    {
        $req = $this->request;
        $req->originalProtocol = $req->protocol = 'http-' . ( isset( $_SERVER['REQUEST_METHOD'] ) ? strtolower( $_SERVER['REQUEST_METHOD'] ) : "get" );

        // Adds support for using POST for PUT and DELETE for legacy browsers that does not support these.
        // If a post param "_method" is set to either PUT or DELETE, then ->protocol is changed to that.
        // (original protocol is kept on ->originalProtocol param)
        // Post is used as this is only meant for forms in legacy browsers.
        if ( $req->protocol === 'http-post' && isset( $_POST['_method'] ) )
        {
            $method = strtolower( $_POST['_method'] );
            if ( $method  === 'put' || $method === 'delete' )
                $req->protocol = "http-{$method}";

            unset( $_POST['_method'] );
        }
    }