Spec-Zone.ru › Deno 2

@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

Посмотреть все символы в @std/http на

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/std/http

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API