1. HTTP协议基础与核心机制
HTTP协议作为Web开发的基石,其工作原理直接影响着前后端交互的每个环节。我们先从TCP/IP协议栈中的位置来看,HTTP作为应用层协议,默认运行在TCP协议的80端口(HTTPS则是443端口)。一个完整的HTTP事务由"请求-响应"模型构成,这种无状态的设计虽然简化了服务器实现,但也催生了Cookie、Session等状态管理机制。
请求报文的结构值得开发者牢记:
code复制GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
起始行包含方法(GET)、URI(/index.html)和协议版本,头部字段则承载元信息。响应报文同样由状态行、头部和实体组成:
code复制HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
<!DOCTYPE html>...
关键点:HTTP/1.1默认使用持久连接,通过Connection: keep-alive实现多个请求复用同一个TCP连接,这显著减少了握手开销。但要注意浏览器对同一域名的并发连接数限制(通常6个)。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Node.js创建HTTP服务的三种范式
2.1 原生http模块基础用法
Node.js内置的http模块提供了最底层的API。创建服务只需几行代码:
javascript复制const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
});
server.listen(3000);
这段代码揭示了几个重要特性:
- createServer接收的请求处理器会为每个连接创建新的req/res对象
- 必须手动调用res.end()结束响应
- 默认没有路由机制,需要自行解析req.url
2.2 流式处理与性能优化
Node.js的HTTP模块
