http
The http module provides utilities to create HTTP servers and clients. It supports request/response streaming, headers, and status codes.
API Surface
Server
http.createServer([options], requestListener)— create an HTTP server.- server.listen(port[, host], callback) — start listening.
- request (IncomingMessage):
req.method,req.url,req.headersreq.on("data"),req.on("end")
- response (ServerResponse):
res.statusCode,res.setHeader(name, value)res.write(data),res.end([data])
Client
http.request(options, callback)— create HTTP request.http.get(options, callback)— shortcut for GET.- ClientRequest:
.write(),.end(). - IncomingMessage: stream for response body.
Examples (English only)
const http = require("http");
// Simple HTTP server
const server = http.createServer((req, res) => {
console.log(req.method, req.url);
res.statusCode = 200;
res.setHeader("Content-Type", "text/plain");
res.end("Hello World\n");
});
server.listen(3000, () => console.log("Server running on port 3000"));
// Simple HTTP client GET
http.get("http://localhost:3000", (res) => {
console.log("status:", res.statusCode);
res.on("data", (chunk) => console.log("body:", chunk.toString()));
});
Notes
- Responses must be explicitly ended with
res.end(). - Always set proper headers (e.g.,
Content-Type) for clients. - Request and response bodies are streams; handle
'data'and'end'. - For HTTPS, use the separate
httpsmodule.