1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-26 16:09:27 -05:00
denoland-deno/std/http
Kitson Kelly 9837d324a7 Update to TypeScript 3.7 (#3275)
and update to prettier 1.19

Also, update `assert()` and remove not null assertions where possibly
in `cli`.

Closes #3273
2019-11-13 13:42:34 -05:00
..
testdata std/http: add serveTLS and listenAndServeTLS (#3257) 2019-11-04 13:45:29 -05:00
cookie.ts Move everything into std subdir 2019-10-09 17:10:09 -04:00
cookie_test.ts Move everything into std subdir 2019-10-09 17:10:09 -04:00
file_server.ts Update to TypeScript 3.7 (#3275) 2019-11-13 13:42:34 -05:00
file_server_test.ts Remove tsconfig files - they are not part of build process (#3262) 2019-11-04 18:13:28 -05:00
http_bench.ts Use top-level for-await in various places (#3217) 2019-10-28 15:58:35 -04:00
http_status.ts Add jsdoc for std/http/http_status.ts 2019-11-08 17:27:09 -05:00
racing_server.ts Use top-level for-await in various places (#3217) 2019-10-28 15:58:35 -04:00
racing_server_test.ts Move everything into std subdir 2019-10-09 17:10:09 -04:00
README.md feat: top-level-for-await (#3212) 2019-10-27 09:04:42 -04:00
server.ts net: Check for closing status when iterating Listener (#3309) 2019-11-09 14:40:22 -05:00
server_test.ts Update to TypeScript 3.7 (#3275) 2019-11-13 13:42:34 -05:00

http

A framework for creating HTTP/HTTPS server.

Helper to manipulate Cookie through ServerRequest and Response.

import { ServerRequest } from "https://deno.land/std/http/server.ts";
import { getCookies } from "https://deno.land/std/http/cookie.ts";

let request = new ServerRequest();
request.headers = new Headers();
request.headers.set("Cookie", "full=of; tasty=chocolate");

const cookies = getCookies(request);
console.log("cookies:", cookies);
// cookies: { full: "of", tasty: "chocolate" }

To set a Cookie you can add CookieOptions to properly set your Cookie

import { Response } from "https://deno.land/std/http/server.ts";
import { Cookie, setCookie } from "https://deno.land/std/http/cookie.ts";

let response: Response = {};
const cookie: Cookie = { name: "Space", value: "Cat" };
setCookie(response, cookie);

const cookieHeader = response.headers.get("set-cookie");
console.log("Set-Cookie:", cookieHeader);
// Set-Cookie: Space=Cat

Deleting a Cookie will set its expiration date before now. Forcing the browser to delete it.

import { Response } from "https://deno.land/std/http/server.ts";
import { delCookie } from "https://deno.land/std/http/cookie.ts";

let response: Response = {};
delCookie(response, "deno");

const cookieHeader = response.headers.get("set-cookie");
console.log("Set-Cookie:", cookieHeader);
// Set-Cookie: deno=; Expires=Thus, 01 Jan 1970 00:00:00 GMT

Note: At the moment multiple Set-Cookie in a Response is not handled.

Example

import { serve } from "https://deno.land/std/http/server.ts";
const s = serve("0.0.0.0:8000");
const body = new TextEncoder().encode("Hello World\n");

for await (const req of s) {
  req.respond({ body });
}

File Server

A small program for serving local files over HTTP.

Install it by using deno install

deno install file_server https://deno.land/std/http/file_server.ts --allow-net --allow-read