CNode

http版块的 addTrailers 怎么用??

Llifesohard发布于13 年前最后回复13 年前3 回复5075 浏览0 收藏

如题

查看回复

回复 (3)

B
blacktail#1·13 年前

这个主要是和

Transfer-Encoding: chunked
Trailer: XXXXX

这个header有关,根据http1.1协议,当response的Transfer-Encoding为chunked时,允许在消息体后面附加其它的Header, 这个附加的Header就叫Trailers。

我们知道一般的http请求回应时,先是发送Headers(消息头), 再是发送body(消息体)。 但是有些情况下,消息头需要与消息体有关联,比如需要在header里附上消息体的Hash签名, 但是消息体并不总是预先就存在的,在动态产生消息体的情况下,如果在消息体产生完后再签好名,发送Headers和Body, 性能肯定会受影响。

比较好的做法是,Server获得请求后,开始发送可以发送的Headers, 同时设置Transfer-Encoding: chunked, Trailer: XXXX。 然后对动态产生的消息体一个chunk,一个chunk的发,发完以后,再附加上Hash头。

B
blacktail#2·13 年前
引用 blacktail这个主要是和 这个header有关,根据http1.1协议,当response的Transfer Encoding为chunked时,允许在消息体后面附加其它的Header, 这个附加的Hea...

附个代码:

response.writeHead(200, { 'Transfer-Encoding': 'chunked',
                          'Trailer': 'Content-MD5' });
response.write(fileData);
response.addTrailers({'Content-MD5': "7895bf4b8828b55ceaf47747b4bca667"});
response.end();
L
lifesohard#3·13 年前

对http 不懂。。。 虽然说的很详细 但是 还是有点晕。。

参与回复
登录后即可参与回复。登录