@std/http
Обзор
Предоставляет удобные для пользователя serve поверх встроенного HTTP-сервера Deno и другие утилиты для создания HTTP-серверов и клиентов.
Файловый сервер
Небольшая программа для раздачи локальных файлов по HTTP.
deno run --allow-net --allow-read jsr:@std/http/file-server
Listening on:
- Local: http://localhost:8000
Если предоставлено разрешение --allow-sys=networkInterfaces, файловый сервер также отобразит адреса локальной сети, по которым можно получить доступ к серверу.
Код состояния HTTP и текст состояния
Вспомогательное средство для обработки кода состояния и текста состояния.
Ошибки HTTP
Предоставляет классы ошибок для каждого кода состояния ошибки HTTP, а также вспомогательные функции для структурированной обработки ошибок HTTP.
Методы
Предоставляет вспомогательные функции и типы для безопасной работы со строками HTTP-методов.
Согласование
Набор функций для согласования типов содержимого, кодировок и языков при обработке запросов.
Примечание: некоторые библиотеки поддерживают согласование кодировок символов, анализируя заголовок
Accept-Charset. Это устаревший заголовок, который клиенты не отправляют, а серверы должны игнорировать, поэтому такая возможность не предоставляется.
Обработка user-agent
Класс UserAgent разбирает строки user-agent, позволяя семантически интерпретировать флаг user-agent.
Например, интеграция user-agent, переданного в заголовке User-Agent HTTP-запроса, будет выглядеть так:
import { UserAgent } from "@std/http/user-agent";
Deno.serve((req) => {
const userAgent = new UserAgent(req.headers.get("user-agent") ?? "");
return new Response(`Hello, ${userAgent.browser.name}
on ${userAgent.os.name}${userAgent.os.version}!`);
});
Маршрутизация
route позволяет легко направлять запросы разным обработчикам на основе пути и метода запроса.
import { route, type Route } from "@std/http/unstable-route";
import { serveDir } from "@std/http/file-server";
const routes: Route[] = [
{
pattern: new URLPattern({ pathname: "/about" }),
handler: () => new Response("About page"),
},
{
pattern: new URLPattern({ pathname: "/users/:id" }),
handler: (_req, _info, params) => new Response(params?.pathname.groups.id),
},
{
pattern: new URLPattern({ pathname: "/static/*" }),
handler: (req: Request) => serveDir(req)
},
{
method: ["GET", "HEAD"],
pattern: new URLPattern({ pathname: "/api" }),
handler: (req: Request) => new Response(req.method === 'HEAD' ? null : 'ok'),
},
];
function defaultHandler(_req: Request) {
return new Response("Not found", { status: 404 });
}
Deno.serve(route(routes, defaultHandler));
Добавление в проект
deno add jsr:@std/http
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/std/http