summaryrefslogtreecommitdiff
path: root/docs/examples/http_server.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/http_server.md')
-rw-r--r--docs/examples/http_server.md38
1 files changed, 38 insertions, 0 deletions
diff --git a/docs/examples/http_server.md b/docs/examples/http_server.md
new file mode 100644
index 000000000..21a9f8b5b
--- /dev/null
+++ b/docs/examples/http_server.md
@@ -0,0 +1,38 @@
+# Simple HTTP web server
+
+## Concepts
+
+- Use the std library [http module](https://deno.land/std@$STD_VERSION/http) 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.
+
+## Sample web server
+
+In this example, the user-agent of the client is returned to the client
+
+```typescript
+/**
+ * webserver.ts
+ */
+import { serve } from "https://deno.land/std@$STD_VERSION/http/server.ts";
+
+const server = serve({ hostname: "0.0.0.0", 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 });
+}
+```
+
+Run this with:
+
+```shell
+deno run --allow-net webserver.ts
+```