Объекты APPLICATION, CONTEXT, REQUEST, SERVER в Битрикс D7

APPLICATION
Application- это базовая точка входа, через него мы обращаемся к глобальным методам ядра такие как, объект управляемого и тегированного кеша, соединение с базой данных и д.р., относящиеся к текущему сайту и от конкретного хита они не зависят. Application не является изменяемой частью.
// Подключаем приложение для обращения к глобальным сущностям ядра
use \Bitrix\Main\Application;
$cache = Application::getCache(); // возвращает новый экземпляр объекта кеша
$dbConnection = Application::getConnection($name); // возвращает соединение с базой данных указанного имени
// $name - название соединения. Если пустое - то соединение по умолчанию.
$context = Application::getContext(); // возвращает содержание текущего соединения
$docRoot = Application::getDocumentRoot(); // возвращает document root сервера (вместо $_SERVER["DOCUMENT_ROOT"])
$personalRoot = Application::getPersonalRoot(); // возвращает путь к персональной директории (относительно document root)
$instance = Application::getInstance(); // возвращает текущий экземпляр приложения
$managedCache = Application::getManagedCache(); // возвращает объект управляемого кеша
$taggedCache = Application::getTaggedCache(); // возвращает объект тегированного кеша
$utfVode = Application::isUtfMode(); // метод вернёт true если сервер работает в utf-8, если нет, то false
CONTEXT
Контекст - объект, который создается при инициализации Application, отвечающий за конкретный хит. Он содержит данные о запросе, серверные параметры, окружение 1С-Битрикса (id, язык сайта) являющийся изменяемой частью текущего ядра.
use \Bitrix\Main\Application;
use \Bitrix\Main\Context;
// Получаем контекст текущего хита
$context = Application::getInstance()->getContext();
// или
$context = Context::getCurrent();
// get
$culture = $context->getCulture(); //возвращает региональные культурные настройки для контекста
$request = $context->getRequest(); // возвращает объект Request
$server = $context->getServer(); // возвращает объект Server
$responce = $contect->getResponce(); // возвращает объект отклика контекста
$siteId = $context->getSite(); // возвращает ID текущего сайта ("s1")
$langId = $context->getLanguage(); // возвращает ID текущего языка ("ru")
// set
$setCulture = $context->setCulture($culture); // устанавливает региональные культурные настройки для контекста
$setLang = $context->setLanguage($langId); // устанавливает язык контекста
$setResponce = $contect->setResponce($responce); // устанавливает ответ контента
$setSiteId = $context->setSite($siteId); // устанавливает сайт для контекста
REQUEST
Request - объект запроса от которого мы получаем данные такие как, протоколы, методы, пути URL, параметры и т.к.
use \Bitrix\Main\Application,
\Bitrix\Main\Context,
\Bitrix\Main\Request;
// Получаем контекст текущего хита
$context = Application::getInstance()->getContext();
// получаем объект Request
$request = $context->getRequest();
// или
$request = \Bitrix\Main\Context::getCurrent()->getRequest();
// получение параметра GET или POST
$value = $request->get();
// или
$value = $request["param"];
// параметры запроса
$value = $request->getQuery(); // получение GET-параметра
$values = $request->getQueryList(); // получение списка GET-параметров
$value = $request->getPost(); // получение POST-параметра
$values = $request->getPostList(); // получение списка POST-параметров
$value = $request->getFile(); // получение загруженного файла
$values = $request->getFileList(); // получение списка загруженных файлов
$value = $request->getCookie(); // получение значения кука
$values = $request->getCookieList(); // получение списка кукисов
// данные о запросе
$method = $request->getRequestMethod(); // получение метода запроса
$flag = $request->isGet(); // true - GET-запрос, иначе false
$flag = $request->isPost(); // true - POST-запрос, иначе false
$flag = $request->isAjaxRequest(); // true - AJAX-запрос, иначе false
$flag = $request->isHttps(); // true - HTTPS-запрос, иначе false
// данные о запрошенной странице
$flag = $request->isAdminSection(); // true - находимся в админке, иначе false
$requestUri = $request->getRequestUri(); // Запрошенный адрес (напр. "/catalog/category/?param=value")
$requestPage = $request->getRequestedPage(); // Запрошенная страница (напр. "/catalog/category/index.php")
$rDir = $request->getRequestedPageDirectory(); // Директория запрошенной страницы (напр. "/catalog/category")
SERVER
SERVER - объект сервера с которого мы получаем данные из массива $_SERVER, такие как, заголовки, местоположение, пути скриптов и д.р.
use \Bitrix\Main\Application,
\Bitrix\Main\Context,
\Bitrix\Main\Server;
$server = $context->getServer();
// или
$server = Context::getCurrent()->getServer();
$server->getDocumentRoot(); // DOCUMENT_ROOT
$server->getPersonalRoot(); // BX_PERSONAL_ROOT ("/bitrix")
$server->getHttpHost(); // HTTP_HOST
$server->getServerName(); // SERVER_NAME
$server->getServerAddr(); // SERVER_ADDR
$server->getServerPort(); // SERVER_PORT
$server->getRequestUri(); // REQUEST_URI
$server->getRequestMethod();// REQUEST_METHOD
$server->getPhpSelf(); // PHP_SELF
$server->getScriptName(); // SCRIPT_NAME
$server->get('HTTP_ACCEPT');// Любое значение из $_SERVER