Небольшой пример работы с сущностями Request, Response и Server на новом ядре D7.

В моём примере мы проверим, что пришёл запрос методом POST, добавим значение в куку, полученную из объекта Request и средиректим на нужный адрес, отправив заголовки.

Пример кода

use Bitrix\Main;
use Bitrix\Main\Context;
use Bitrix\Main\Web\Cookie;
 
define('NEED_AUTH', true);
 
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/header.php');
 
$request = Context::getCurrent()->getRequest();
 
$response = Context::getCurrent()->getResponse();
 
$server = Context::getCurrent()->getServer();
 
if ($request->isPost()) {
 
    $response->addCookie(
        new Cookie(
            'selftest-filter-section-include-sub',
            trim((string)$request->getPost('selftest-filter-section-include-sub'))
        )
    );
 
    $filterPostSection = array_filter((array)$request->getPost('selftest-filter-section'));
 
    if (!empty($filterPostSection)) {
        $response->addCookie(new Cookie('selftest-filter-section', implode(',', $filterPostSection)));
 
        $response->addHeader('Location', '/path/to/url/');
 
        $response->flush();
    }
 
}
 
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/footer.php');

Код выдран из проекта и зависит, конечно, от контекста.

Получение куки на новом ядре D7

use Bitrix\Main\Context;
 
 
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/header.php');
 
$request = Context::getCurrent()->getRequest();
 
$someCookie = $request->getCookie('some-cookie');

При работе с куками через API битрикса, не забываем, что каждой куки автоматически добавляется префикс, который формируется так:

$cookiePrefix = \Bitrix\Main\Config\Option::get('main', 'cookie_name', 'BITRIX_SM') . '_';