РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
246 of 1361 menu

Атрибут headers

Атрибут headers класса Response позволяет задать HTTP-заголовки ответа при создании объекта. Передаётся третьим параметром в конструктор Response и представляет собой ассоциативный массив, где ключами являются названия заголовков, а значениями - их содержимое. Это удобный способ установить сразу несколько заголовков без вызова метода headers->set.

Синтаксис

new Response($content, $status, $headers);

Пример

Давайте создадим ответ с заголовком Content-Type и выведем его содержимое:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(): Response { $headers = [ 'Content-Type' => 'text/plain', 'X-Custom-Header' => 'custom-value', ]; $res = new Response('hello', 200, $headers); return $res; } } ?>

В результате браузер получит заголовок Content-Type: text/plain и X-Custom-Header: custom-value.

Пример

Давайте установим заголовок Cache-Control для кэширования ответа на один час:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(): Response { $headers = [ 'Cache-Control' => 'public, max-age=3600', ]; $res = new Response('article', 200, $headers); return $res; } } ?>

Результат выполнения кода для заголовков:

["Cache-Control: public, max-age=3600"]

Пример

Давайте установим заголовок Location для перенаправления пользователя на другой адрес:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(): Response { $headers = [ 'Location' => '/user/abcde', ]; $res = new Response('', 302, $headers); return $res; } } ?>

Пользователь будет перенаправлен на адрес /user/abcde.

Пример

Давайте зададим сразу несколько заголовков для безопасности:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(): Response { $headers = [ 'X-Frame-Options' => 'DENY', 'X-Content-Type-Options' => 'nosniff', 'Content-Type' => 'text/html; charset=UTF-8', ]; $res = new Response('user', 200, $headers); return $res; } } ?>

Результат выполнения кода для заголовков:

[ "X-Frame-Options: DENY", "X-Content-Type-Options: nosniff", "Content-Type: text/html; charset=UTF-8" ]

Смотрите также

  • класс Response,
    который представляет HTTP-ответ
  • метод setStatusCode,
    который задаёт код состояния ответа
  • метод sendHeaders,
    который отправляет заголовки клиенту
  • метод setContent,
    который задаёт содержимое ответа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить