http
http
is a module to provide HTTP client and server implementations.
Server
Server APIs utilizing Deno’s HTTP server APIs.
import { serve } from "https://deno.land/std@0.136.0/http/server.ts";
serve(() => new Response("Hello World\n"));
console.log("http://localhost:8000/");
File Server
A small program for serving local files over HTTP.
deno run --allow-net --allow-read https://deno.land/std/http/file_server.ts
> HTTP server listening on http://localhost:4507/
HTTP Status Code and Status Text
Helper for processing status code and status text.
import {
Status,
STATUS_TEXT,
} from "https://deno.land/std@0.136.0/http/http_status.ts";
console.log(Status.NotFound); //=> 404
console.log(STATUS_TEXT.get(Status.NotFound)); //=> "Not Found"
Cookie
Helpers to manipulate the Cookie
header.
getCookies
import { getCookies } from "https://deno.land/std@0.136.0/http/cookie.ts";
const headers = new Headers();
headers.set("Cookie", "full=of; tasty=chocolate");
const cookies = getCookies(headers);
console.log(cookies); // { full: "of", tasty: "chocolate" }
setCookie
import {
Cookie,
setCookie,
} from "https://deno.land/std@0.136.0/http/cookie.ts";
const headers = new Headers();
const cookie: Cookie = { name: "Space", value: "Cat" };
setCookie(headers, cookie);
const cookieHeader = headers.get("set-cookie");
console.log(cookieHeader); // Space=Cat
deleteCookie
Note: Deleting a
Cookie
will set its expiration date before now. Forcing the browser to delete it.
import { deleteCookie } from "https://deno.land/std@0.136.0/http/cookie.ts";
const headers = new Headers();
deleteCookie(headers, "deno");
const cookieHeader = headers.get("set-cookie");
console.log(cookieHeader); // deno=; Expires=Thus, 01 Jan 1970 00:00:00 GMT
Note: It is possible to pass the exact same path and domain attributes that were used to set the cookie.
import { deleteCookie } from "https://deno.land/std@0.136.0/http/cookie.ts";
const headers = new Headers();
deleteCookie(headers, "deno", { path: "/", domain: "deno.land" });
Note: At the moment multiple
Set-Cookie
in aResponse
is not handled.