HTTP 状态码 206 Partial Content
表示服务器成功处理了部分 GET 请求。这种情况通常发生在客户端请求资源的某一部分,而不是整个资源。服务器通过 Content-Range
头部告知客户端返回了哪些数据以及整个资源的大小。
206 Partial Content
?当客户端发送带有 Range
头的请求时,服务器会尝试满足这个范围请求。如果服务器能够处理这个请求,它会返回 206 Partial Content
状态码。
Range
头并正确分割资源。Range
请求:Content-Range
头:Content-Range
头:416 Range Not Satisfiable
状态码,并附带适当的错误信息。const express = require('express');
const app = express();
app.get('/file', (req, res) => {
const { range } = req.headers;
if (!range) {
return res.status(416).send('Requires Range header');
}
const fileSize = 10000; // 假设文件大小为 10000 字节
const parts = range.replace(/bytes=/, '').split('-');
const start = parseInt(parts[0], 10);
const end = parts[1] ? parseInt(parts[1], 10) : fileSize - 1;
if (start >= fileSize || end >= fileSize) {
return res.status(416).send('Range not satisfiable');
}
const chunkSize = (end - start) + 1;
const fileData = Buffer.alloc(chunkSize); // 模拟文件数据
res.status(206).header({
'Content-Range': `bytes ${start}-${end}/${fileSize}`,
'Accept-Ranges': 'bytes',
'Content-Length': chunkSize,
'Content-Type': 'application/octet-stream'
}).send(fileData);
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
这个示例展示了如何在 Node.js 中处理部分内容请求,并正确设置相关头部信息。
没有搜到相关的文章