summaryrefslogtreecommitdiff
path: root/docs/examples/http_server.md
diff options
context:
space:
mode:
authorBartek Iwańczuk <biwanczuk@gmail.com>2021-07-20 16:25:36 +0200
committerGitHub <noreply@github.com>2021-07-20 16:25:36 +0200
commitd744c0c6d9a557bbaa2a23571ffb3acabf19c35a (patch)
tree6f7fb8a71b786e79c48f4b2c11a5a9ca988717e8 /docs/examples/http_server.md
parent9b9becf1ae256b645e37a7eecf3441f3ae4b8ea5 (diff)
chore: move docs to separate repository
Diffstat (limited to 'docs/examples/http_server.md')
-rw-r--r--docs/examples/http_server.md88
1 files changed, 0 insertions, 88 deletions
diff --git a/docs/examples/http_server.md b/docs/examples/http_server.md
deleted file mode 100644
index af239dfd3..000000000
--- a/docs/examples/http_server.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# Simple HTTP web server
-
-## Concepts
-
-- Use Deno's integrated HTTP server to run your own web server.
-
-## Overview
-
-With just a few lines of code you can run your own HTTP web server with control
-over the response status, request headers and more.
-
-> ℹ️ The _native_ HTTP server is currently unstable, meaning the API is not
-> finalized and may change in breaking ways in future version of Deno. To have
-> the APIs discussed here available, you must run Deno with the `--unstable`
-> flag.
-
-## Sample web server
-
-In this example, the user-agent of the client is returned to the client:
-
-**webserver.ts**:
-
-```ts
-// Start listening on port 8080 of localhost.
-const server = Deno.listen({ port: 8080 });
-console.log(`HTTP webserver running. Access it at: http://localhost:8080/`);
-
-// Connections to the server will be yielded up as an async iterable.
-for await (const conn of server) {
- // In order to not be blocking, we need to handle each connection individually
- // in its own async function.
- (async () => {
- // This "upgrades" a network connection into an HTTP connection.
- const httpConn = Deno.serveHttp(conn);
- // Each request sent over the HTTP connection will be yielded as an async
- // iterator from the HTTP connection.
- for await (const requestEvent of httpConn) {
- // The native HTTP server uses the web standard `Request` and `Response`
- // objects.
- const body = `Your user-agent is:\n\n${requestEvent.request.headers.get(
- "user-agent",
- ) ?? "Unknown"}`;
- // The requestEvent's `.respondWith()` method is how we send the response
- // back to the client.
- requestEvent.respondWith(
- new Response(body, {
- status: 200,
- }),
- );
- }
- })();
-}
-```
-
-Then run this with:
-
-```shell
-deno run --allow-net --unstable webserver.ts
-```
-
-Then navigate to `http://localhost:8080/` in a browser.
-
-### Using the `std/http` library
-
-If you do not want to use the unstable APIs, you can still use the standard
-library's HTTP server:
-
-**webserver.ts**:
-
-```ts
-import { serve } from "https://deno.land/std@$STD_VERSION/http/server.ts";
-
-const server = serve({ port: 8080 });
-console.log(`HTTP webserver running. Access it at: http://localhost:8080/`);
-
-for await (const request of server) {
- let bodyContent = "Your user-agent is:\n\n";
- bodyContent += request.headers.get("user-agent") || "Unknown";
-
- request.respond({ status: 200, body: bodyContent });
-}
-```
-
-Then run this with:
-
-```shell
-deno run --allow-net webserver.ts
-```