HTTP headers can be used to add the additional information to request or response during client and server communication. This tutorial provides 2 methods how to get request header in Symfony 7 application.
Method 1 - 'get' method
The Request
object holds HTTP headers in the public headers
property. It is an instance of HeaderBag
. The get
method can be used to retrieve header by its name from headers
property. A header name is case-insensitive, so we can use User-Agent
, user-agent
, USER-AGENT
etc.
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class TestController
{
#[Route('/')]
public function index(Request $request): Response
{
$header = $request->headers->get('User-Agent');
return new Response($header);
}
}
Method 2 - 'all' method
The HeaderBag
class has the all
method that enables to get all headers. This method accepts an optional argument which allows retrieving the headers by name.
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class TestController
{
#[Route('/')]
public function index(Request $request): Response
{
$header = $request->headers->all('User-Agent')[0] ?? null;
return new Response($header);
}
}
Leave a Comment
Cancel reply