[ 
http://jira.magnolia-cms.com/browse/MAGNOLIA-3306?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Rabe updated MAGNOLIA-3306:
---------------------------------

    Description: 
For most Magnolia instances out in the wild, including the corporate website, 
*sending a HTTP HEAD request triggers a {{403 Forbidden}} response*, but HTTP 
GET is just fine.  See attached screenshot.  (Hint: Day software gets it right, 
and navy.com works correctly too...)

To reproduce what I did in the screenshot, enter in a terminal:
{code:none}
$ nc somedomain 80
HEAD / HTTP/1.1
Host: somedomain

{code}
... (followed by an empty line to finish the header) and then comes the 
response from the server.  *Expected behaviour* would be that the HEAD request 
gets the same response (minus content) as a GET request.

This issue was brought to my attention today when Antti wanted to find the 
broken download link on http://www.magnolia-cms.com/home.html using
http://validator.w3.org/checklink/, resulting in 
http://validator.w3.org/checklink/checklink?uri=http%3A%2F%2Fwww.magnolia-cms.com%2Fhome.html&hide_type=all&depth=&check=Check
 (lots of 403 errors).  The link checker correctly uses HTTP HEAD requests 
instead of HTTP GET requests (the ones you normally do with your web browser 
when going anywhere).

*This is how HTTP HEAD should work:* (quoting 
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4)
{quote}
The HEAD method is identical to GET except that the server MUST NOT return a 
message-body in the response. The metainformation contained in the HTTP headers 
in response to a HEAD request SHOULD be identical to the information sent in 
response to a GET request. This method can be used for obtaining 
metainformation about the entity implied by the request without transferring 
the entity-body itself. This method is often used for testing hypertext links 
for validity, accessibility, and recent modification.
{quote}

I have tested this locally with an admin instance as well on port 8080.  It 
does not work either:
{code:none}
~ $ nc localhost 8080
HEAD /magnolia-webapp-registration/.magnolia/pages/adminCentral.html HTTP/1.1
Host: localhost:8080

HTTP/1.1 403 Forbidden
Server: Apache-Coyote/1.1
X-Magnolia-Registration: Registered
Content-Type: text/html;charset=UTF-8
Content-Length: 964
Date: Fri, 24 Sep 2010 14:23:23 GMT
{code}
(A GET request gets me {{401 Unauthorized}}, which is the correct response as I 
have to login first.)

  was:
For most Magnolia instances out in the wild, including the corporate website, 
*sending a HTTP HEAD request triggers a {{403 Forbidden}} response*, but HTTP 
GET is just fine.  See attached screenshot.  (Hint: Day software gets it right, 
and navy.com works correctly too...)

To reproduce what I did in the screenshot, enter in a terminal:
{code:none}
$ nc somedomain 80
HEAD / HTTP/1.1
Host: somedomain

{code}
... and then comes the response from the server.  *Expected behaviour* would be 
that the HEAD request gets the same response (minus content) as a GET request.

This issue was brought to my attention today when Antti wanted to find the 
broken download link on http://www.magnolia-cms.com/home.html using
http://validator.w3.org/checklink/, resulting in 
http://validator.w3.org/checklink/checklink?uri=http%3A%2F%2Fwww.magnolia-cms.com%2Fhome.html&hide_type=all&depth=&check=Check
 (lots of 403 errors).  The link checker correctly uses HTTP HEAD requests 
instead of HTTP GET requests (the ones you normally do with your web browser 
when going anywhere).

*This is how HTTP HEAD should work:* (quoting 
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4)
{quote}
The HEAD method is identical to GET except that the server MUST NOT return a 
message-body in the response. The metainformation contained in the HTTP headers 
in response to a HEAD request SHOULD be identical to the information sent in 
response to a GET request. This method can be used for obtaining 
metainformation about the entity implied by the request without transferring 
the entity-body itself. This method is often used for testing hypertext links 
for validity, accessibility, and recent modification.
{quote}

I have tested this locally with an admin instance as well on port 8080.  It 
does not work either:
{code:none}
~ $ nc localhost 8080
HEAD /magnolia-webapp-registration/.magnolia/pages/adminCentral.html HTTP/1.1
Host: localhost:8080

HTTP/1.1 403 Forbidden
Server: Apache-Coyote/1.1
X-Magnolia-Registration: Registered
Content-Type: text/html;charset=UTF-8
Content-Length: 964
Date: Fri, 24 Sep 2010 14:23:23 GMT
{code}
(A GET request gets me {{401 Unauthorized}}, which is the correct response as I 
have to login first.)


> HTTP HEAD request returns status code 403, while GET returns 200
> ----------------------------------------------------------------
>
>                 Key: MAGNOLIA-3306
>                 URL: http://jira.magnolia-cms.com/browse/MAGNOLIA-3306
>             Project: Magnolia
>          Issue Type: Bug
>            Reporter: Felix Rabe
>            Assignee: Boris Kraft
>         Attachments: Screen shot 2010-09-24 at 3.10.49 PM.jpg
>
>
> For most Magnolia instances out in the wild, including the corporate website, 
> *sending a HTTP HEAD request triggers a {{403 Forbidden}} response*, but HTTP 
> GET is just fine.  See attached screenshot.  (Hint: Day software gets it 
> right, and navy.com works correctly too...)
> To reproduce what I did in the screenshot, enter in a terminal:
> {code:none}
> $ nc somedomain 80
> HEAD / HTTP/1.1
> Host: somedomain
> {code}
> ... (followed by an empty line to finish the header) and then comes the 
> response from the server.  *Expected behaviour* would be that the HEAD 
> request gets the same response (minus content) as a GET request.
> This issue was brought to my attention today when Antti wanted to find the 
> broken download link on http://www.magnolia-cms.com/home.html using
> http://validator.w3.org/checklink/, resulting in 
> http://validator.w3.org/checklink/checklink?uri=http%3A%2F%2Fwww.magnolia-cms.com%2Fhome.html&hide_type=all&depth=&check=Check
>  (lots of 403 errors).  The link checker correctly uses HTTP HEAD requests 
> instead of HTTP GET requests (the ones you normally do with your web browser 
> when going anywhere).
> *This is how HTTP HEAD should work:* (quoting 
> http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4)
> {quote}
> The HEAD method is identical to GET except that the server MUST NOT return a 
> message-body in the response. The metainformation contained in the HTTP 
> headers in response to a HEAD request SHOULD be identical to the information 
> sent in response to a GET request. This method can be used for obtaining 
> metainformation about the entity implied by the request without transferring 
> the entity-body itself. This method is often used for testing hypertext links 
> for validity, accessibility, and recent modification.
> {quote}
> I have tested this locally with an admin instance as well on port 8080.  It 
> does not work either:
> {code:none}
> ~ $ nc localhost 8080
> HEAD /magnolia-webapp-registration/.magnolia/pages/adminCentral.html HTTP/1.1
> Host: localhost:8080
> HTTP/1.1 403 Forbidden
> Server: Apache-Coyote/1.1
> X-Magnolia-Registration: Registered
> Content-Type: text/html;charset=UTF-8
> Content-Length: 964
> Date: Fri, 24 Sep 2010 14:23:23 GMT
> {code}
> (A GET request gets me {{401 Unauthorized}}, which is the correct response as 
> I have to login first.)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.magnolia-cms.com/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


----------------------------------------------------------------
For list details see
http://www.magnolia-cms.com/home/community/mailing-lists.html
To unsubscribe, E-mail to: <[email protected]>
----------------------------------------------------------------

Reply via email to