Что такое Middleware?

Категория: веб разработка

Ознакомьтесь с этим общим термином и узнайте, как можно использовать middleware в своих собственных проектах. Возможно, вы слышали, как люди используют термин "middleware" в различных контекстах, и задавались вопросом, о чем именно идет речь. Узнайте о широком и разнообразном наборе технологий и процессов, на которые они могут ссылаться.

Middleware означает многое Middleware - это гибкий термин, который люди используют для обозначения различных вещей. В самом широком смысле его можно рассматривать как "программы, которые выполняются между другими программами". Другими словами, любое программное обеспечение, которое зависит от отдельного кода для предоставления своего ввода и обработки своего вывода.

Некоторое middleware существует как полноценное приложение, которое преобразует данные из одного состояния в другое, с четко определенными протоколами и форматами данных для использования другим кодом. Но middleware также может быть настолько детализированным, как отдельная функция, встраивающаяся в серию других функций, которые выполняет фреймворк.

Как работает Middleware? Middleware обычно так сильно, как сильны его протоколы и публично определенное поведение. Строгие протоколы для обмена информацией позволяют программистам писать программное обеспечение, которое соблюдает стандарты для корректной работы.

Сервер веб-приложений действует как middleware, соединяя пользовательский опыт сайта с логикой и моделью данных, предоставляемыми приложением и базой данных. Поскольку он не тесно связан с системами, с которыми он взаимодействует, вы можете - по крайней мере, в теории - заменить сервер приложений на совместимый, не переписывая код приложения или перестраивая базу данных.

Компоненты middleware часто используют технологии, такие как JSON, REST, XML и SOAP. Они все зрелые, популярные и текстовые, что значительно облегчает замену или изменение порядка компонентов. Их текстовой формат и широкий набор инструментов также обеспечивают более простую и надежную отладку.

Различные типы Middleware Поскольку термин настолько широк, существует множество различных примеров и использований middleware. Некоторые из наиболее распространенных включают:

  • Брокеры сообщений, которые добавляют структуру в межпроцессное взаимодействие.
  • Серверы веб-приложений и веб-фреймворки.
  • Игровые движки, предоставляющие поведение по умолчанию, которое можно использовать, расширять или заменять.
  • Платформы для потокового вещания событий, такие как Apache Kafka.

Использование Middleware в разработке программного обеспечения Одним из наиболее осязаемых способов использования middleware является через веб-фреймворки. Большинство фреймворков предоставляют основное окружение, которое вы можете настраивать и расширять в соответствии с вашими требованиями. Модель часто включает передачу HTTP-запросов через серию встроенных и пользовательских функций в определенном порядке и возврат HTTP-ответа в конце.

Фреймворк Express.js использует эту модель для поддержки настройки. Вот пример функции middleware, написанной на JavaScript:

app.use('/user/:id', (req, res, next) => {
console.log('Request Type:', req.method)
next()
})

Функция крайне проста:

  • Обрабатывает конкретные URL, начинающиеся с "/user/", за которыми следует идентификатор.
  • Регистрирует тип метода запроса, который может быть GET, POST и так далее.
  • Вызывает предоставленную функцию next, чтобы продолжить обработку цепочки функций middleware.

Этот последний вызов next - важный шаг в процессе middleware и демонстрирует, насколько универсальным может быть этот подход. Пока каждая функция middleware ведет себя независимо, вы можете легко вставлять и вытаскивать их и изменять порядок поведения всей цепочки.

Фреймворк на PHP, Laravel, имеет почти идентичную настройку middleware. Обратите внимание, что пространство имен явно определяет этот класс как "Middleware".

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class EnsureTokenIsValid
{
/**
* Обрабатывает входящий запрос.
*/

public function handle(Request $request, Closure $next): Response
{
if ($request->input('token') !== 'my-secret-token') {
return redirect('home');
}

return $next($request);
}
}

Снова роль этого конкретного класса крайне конкретна: он просто проверяет запрос, содержит ли он токен. В этом случае функция middleware может прервать цепочку, отклонив вызов следующей функции, и вместо этого отправив перенаправление. Функция перенаправления вернет соответствующий объект Response, который функция middleware должна вернуть в рамках своего контракта сигнатуры.

Этот последний пример показывает, как Django, веб-фреймворк на основе Python, обрабатывает middleware. Django использует термин "плагин" для описания своей архитектуры middleware, что аналогично другим подходящим терминам, которые вы можете слышать, таким как "хук" или "обратный вызов". По сути, это просто еще один случай настройки middleware, обеспечивающей гибкость в структурированном процессе.

def simple_middleware(get_response):
# Одноразовая конфигурация и инициализация.

def middleware(request):
# Код, который выполняется для каждого запроса до
# вызова представления (и позже middleware).

response = get_response(request)

# Код, который выполняется для каждого запроса/ответа после
# вызова представления.

return response

return middleware

Затем вы можете управлять тем, какое middleware выполняется и в каком порядке, с помощью простого массива:

MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]

Django предоставляет поведение по умолчанию, такое как класс CommonMiddleware, который может быть полезен для большинства приложений; он запрещает доступ определенным "плохим" пользователям и обрабатывает нормализацию URL. Для критичных с точки зрения безопасности middleware часто запускается в начале конвейера, но такая гибкость позволяет вам настраивать порядок в зависимости от потребностей вашего приложения.

Зачем полезно Middleware? Middleware упрощает соединение приложений, которые не были предназначены для взаимодействия. Он предоставляет функциональность для их интеграции, а также надежные, структурированные протоколы, по которым они могут взаимодействовать.

В результате middleware имеет несколько важных преимуществ, включая:

  • Упрощенное развитие приложений и сокращение времени до маркета.
  • Эффективное подключение.
  • Более быстрый переход к изменениям.
  • Легкодоступные инструменты рабочего места.

В конечном итоге middleware представляет собой форму модульности, концепции, которая полезна при применении во всех формах программирования, от самого высокого уровня до самого низкого.





Если вам нужен по настоящему хороший и профессиональный веб хостинг или свой высокопроизводительный сервер, то смело переходите по ссылке и заказывайте!

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *



Карта сайта
Copyright © 2024