Що таке проміжне програмне забезпечення?
Проміжне програмне забезпечення — це програмне забезпечення, яке збирається у конвеєри додатків для обробки запитів і відповідей. Кожен компонент:
- Оберіть, чи передавати запит наступному компоненту в конвеєрі.
- Робота може бути виконана до і після виклику наступного компонента в конвеєрі.
Делегати запитів використовуються для створення конвеєра запитів, який обробляє кожен HTTP-запит.
Делегати запитів налаштовуються за допомогою методів розширення Run, Map та Use. Окремий делегат запиту може бути вказаний у вбудованому анонімному методі (який називається inline middleware) або в багаторазовому класі. Ці багаторазові класи та вбудовані методи анонімізації є проміжними або проміжними компонентами. Кожен компонент проміжного програмного забезпечення у потоці запиту відповідає за виклик наступного компонента в конвеєрі і, за потреби, короткого замикання каналу.
Міграція HTTP-модулів на проміжне програмне забезпечення пояснює різницю між ASP.NET Core і конвеєрами запитів у попередніх версіях (ASP.NET) і надає більше прикладів проміжного програмного забезпечення.
Використовуйте IApplicationBuilder для створення конвеєра проміжного програмного забезпечення
Процес запиту ASP.NET Core складається з серії делегатів запитів, як показано на наступному рисунку (процес виконання слідує чорній стрілці):
Кожен делегат може виконувати дії до і після наступного делегата. Делегат також може вирішити не передавати запит наступному делегату, що називається коротким замиканням у конвеєрі запитів. Коротке замикання зазвичай бажане, оскільки воно уникає зайвої роботи. Наприклад, статичне файлове проміжне програмне забезпечення може повернути запит на статичний файл і зруйнувати решту конвеєра. Делегати для обробки винятків потрібно викликати на ранніх етапах конвеєра, щоб вони могли виявляти винятки в наступних конвеєрах.
Найпростіше — налаштувати делегата ASP.NET основному додатку для обробки всіх запитів. Цей сценарій не включає сам конвеєр запитів. Натомість для кожного HTTP-запиту викликається анонімний метод.
Перший додаток. Запуск делегата завершує конвеєр.
Є такий код:
При доступі через браузер виявляється, що він дійсно знаходиться в першому додатку. Запуск завершує конвеєр.
Ви можете делегувати кілька запитів через додаток. Використання пов'язане між собою. Наступний параметр позначає наступного делегата в конвеєрі. (Майте на увазі, що ви можете завершити конвеєр, не викликаючи наступний параметр.) Зазвичай ви можете виконувати дії до і після наступної делегації, як показано в наступному прикладі:
Використання браузера для доступу до таких результатів, як:
Видно, що порядок виконання делегата запиту відповідає блок-схемі вище.
Примітка:
Після того, як відповідь буде надіслано клієнту, не дзвоните далі. Invoke。 Після початку відповіді зміни в HttpResponse створять виняток. Наприклад, встановлення заголовків відповідей, статусних кодів тощо створює виняток. Після наступного дзвінка напишіть тіло для відповіді.
може призвести до порушення угоди. Наприклад, написання більше за довжину змісту, описану у content-length.
Адаптивне форматування контенту може бути порушене. Наприклад, напишіть HTML-футер у CSS-файл.
HttpResponse.HasStarted — це корисна підказка, щоб вказати, чи було надіслано заголовок відповіді та/або написано тіло.
Вбудоване проміжне програмне забезпечення
ASP.NET Core постачається з такими компонентами проміжного програмного забезпечення:
| Проміжне програмне забезпечення | опис | | Автентифікація | Доступна підтримка автентифікації | | CORS | Налаштуйте міждоменне спільне використання ресурсів | | Кешування відгуків | Доступна підтримка відповіді кешу | | Стиснення відгуків | Забезпечте підтримку стиснення відгуків | | Маршрутизація | Визначення та обмеження маршрутизації запитів | | Сесія | Забезпечує керування сесіями користувачами | | Статичні файли | Забезпечує підтримку статичного перегляду файлів і каталогів | | Переписування URL-проміжного програмного забезпечення | Використовується для переписування URL і запиту підтримки перенаправлення |
|