手动编写 HTTP 尾部 headers
Write HTTP trailer headers manually
这个问题是由这里的答案引起的:
在这种情况下,我已经写了一个 HTTP 200 OK header,如果有错误,我需要修改这个,写一个 trail header 说有一个错误after写入成功header.
我有这个 Node.js 代码:
const writeResponse = function(file: string, socket: Socket){
socket.write([
'HTTP/1.1 200 OK',
'Content-Type: text/javascript; charset=UTF-8',
'Content-Encoding: UTF-8',
'Accept-Ranges: bytes',
'Connection: keep-alive',
].join('\n') + '\n\n');
getStream(file)
.pipe(socket)
.once('error', function (e: any) {
// there was an error
// how can I write trail headers here ?
s.write('some bad shit happened\n')
});
}
如何将有用的跟踪 header 写入浏览器可以很好显示的响应?
我认为这是 trail headers 的相关规范:
https://www.rfc-editor.org/rfc/rfc2616#section-14.40
我认为它们应该被称为“尾随 headers”,但无论如何。
首先:
I think this is the relevant spec for trail headers: https://www.rfc-editor.org/rfc/rfc2616#section-14.40
RFC 2616 已被 RFC 7230. The current spec for trailers is RFC 7230 § 4.1.2 废弃。
其次:
].join('\n') + '\n\n'
HTTP 消息框架中的行以 \r\n
结束,而不是 \n
。
第三:
Content-Encoding: UTF-8
Content-Encoding
适用于 content codings(如 gzip
),而不是字符集(如 UTF-8)。您可能不需要与 Content-Type
.
分开指示字符集
最后:
how do I write a useful trail header to the response that can be displayed well by the browser?
你不知道。主流 Web 浏览器不关心预告片。
另见(同一用户?):
这个问题是由这里的答案引起的:
在这种情况下,我已经写了一个 HTTP 200 OK header,如果有错误,我需要修改这个,写一个 trail header 说有一个错误after写入成功header.
我有这个 Node.js 代码:
const writeResponse = function(file: string, socket: Socket){
socket.write([
'HTTP/1.1 200 OK',
'Content-Type: text/javascript; charset=UTF-8',
'Content-Encoding: UTF-8',
'Accept-Ranges: bytes',
'Connection: keep-alive',
].join('\n') + '\n\n');
getStream(file)
.pipe(socket)
.once('error', function (e: any) {
// there was an error
// how can I write trail headers here ?
s.write('some bad shit happened\n')
});
}
如何将有用的跟踪 header 写入浏览器可以很好显示的响应?
我认为这是 trail headers 的相关规范: https://www.rfc-editor.org/rfc/rfc2616#section-14.40
我认为它们应该被称为“尾随 headers”,但无论如何。
首先:
I think this is the relevant spec for trail headers: https://www.rfc-editor.org/rfc/rfc2616#section-14.40
RFC 2616 已被 RFC 7230. The current spec for trailers is RFC 7230 § 4.1.2 废弃。
其次:
].join('\n') + '\n\n'
HTTP 消息框架中的行以 \r\n
结束,而不是 \n
。
第三:
Content-Encoding: UTF-8
Content-Encoding
适用于 content codings(如 gzip
),而不是字符集(如 UTF-8)。您可能不需要与 Content-Type
.
最后:
how do I write a useful trail header to the response that can be displayed well by the browser?
你不知道。主流 Web 浏览器不关心预告片。
另见(同一用户?):