Skip to content
Snippets Groups Projects
Commit 7780c4de authored by Fabien Potencier's avatar Fabien Potencier
Browse files

[HttpKernel] removed Response content when Request method is HEAD as per RFC2616

parent c62b2309
Branches
Tags
No related merge requests found
......@@ -36,12 +36,17 @@ class ResponseListener
*/
public function onCoreResponse(FilterResponseEvent $event)
{
$request = $event->getRequest();
$response = $event->getResponse();
if ('HEAD' === $request->getMethod()) {
$response->setContent('');
}
if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
return;
}
$response = $event->getResponse();
if (null === $response->getCharset()) {
$response->setCharset($this->charset);
}
......@@ -50,7 +55,6 @@ class ResponseListener
return;
}
$request = $event->getRequest();
$format = $request->getRequestFormat();
if ((null !== $format) && $mimeType = $request->getMimeType($format)) {
$response->headers->set('Content-Type', $mimeType);
......
......@@ -76,4 +76,15 @@ class ResponseListenerTest extends \PHPUnit_Framework_TestCase
$this->assertEquals('application/json', $event->getResponse()->headers->get('content-type'));
}
public function testFilterRemovesContentForHeadRequests()
{
$response = new Response('foo');
$request = Request::create('/', 'HEAD');
$event = new FilterResponseEvent($this->kernel, $request, HttpKernelInterface::MASTER_REQUEST, $response);
$this->dispatcher->dispatch(CoreEvents::RESPONSE, $event);
$this->assertEquals('', $response->getContent());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment