TCP实现HTTP服务

TCP 协议是传输层协议,有端口概念,可以基于此实现应用层 HTTP 报文收发

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 基于传输层的TCP协议实现应用层HTTP
import net from 'net';
const statusLine = 'HTTP/1.1 200 OK';
const resBody = '<h1>20240202</h1>';
const resHeader = [
'Content-Type: text/html',
`Content-Length: ${resBody.length}`,
`Date: ${new Date().toUTCString()}`,
];
// HTTP响应报文结构
// 状态行 响应头 空行 响应体
const res = [statusLine, ...resHeader, '', resBody].join('\r\n');
const tcp = net.createServer((socket) => {
// 接收到数据的时候会自动调用
socket.on('data', (data) => {
if (/GET/.test(data.toString())) {
socket.write(res);
}
});
});

tcp.listen(3000, () => {
console.log('server is running at http://localhost:3000');
});

TCP实现HTTP服务
https://hugtyftg.github.io/2024/02/02/TCP实现HTTP服务/
作者
hugtyftg
发布于
2024年2月2日
许可协议