diff options
Diffstat (limited to 'std/http/README.md')
m--------- | std | 0 | ||||
-rw-r--r-- | std/http/README.md | 77 |
2 files changed, 77 insertions, 0 deletions
diff --git a/std b/std deleted file mode 160000 -Subproject 43aafbf33285753e7b42230f0eb7969b300f71c diff --git a/std/http/README.md b/std/http/README.md new file mode 100644 index 000000000..e4086c1a4 --- /dev/null +++ b/std/http/README.md @@ -0,0 +1,77 @@ +# http + +A framework for creating HTTP/HTTPS server. + +## Cookie + +Helper to manipulate `Cookie` through `ServerRequest` and `Response`. + +```ts +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` + +```ts +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. + +```ts +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 + +```typescript +import { serve } from "https://deno.land/std/http/server.ts"; +const s = serve("0.0.0.0:8000"); + +async function main() { + for await (const req of s) { + req.respond({ body: new TextEncoder().encode("Hello World\n") }); + } +} + +main(); +``` + +### File Server + +A small program for serving local files over HTTP. + +Install it by using `deno install` + +```sh +deno install file_server https://deno.land/std/http/file_server.ts --allow-net --allow-read +``` |