是否可以在HTTP响应中同时接收字节和字符串数据? A无法将放在json中的两者混合使用,但您会明白:
private async getFile(): Promise<{ data: Blob, checksum: string }> {
return this.http.get('some url/getfile...', {
'headers': accessToken
}).pipe(timeout(10000)).toPromise().then(res => {
if (res['status'] === 200 && res['body']) {
return {
data: res['body']['data'],
checksum: res['body']['checksum']
};
}
return undefined;
}).catch(() => undefined);
}
正确的方法是什么?
我的想法:
服务器是否应该将校验和放入响应头中?
或者,它是否还应将校验和作为字节发送?如果是这样,如何将其与实际数据分开?
或者如果我将两者合并到一个字节流中,例如md5被用来生成校验和,我知道头一个(或最后一个)128位(= 16字节?)是校验和,其余的是实际数据。
我不想要的是(1)用单独的请求进行操作(2)将校验和放入服务器端的某些文本文件中,并与实际文件一起压缩,然后在客户端上解压缩存档。
答案 0 :(得分:1)
Content-MD5标头是一个东西,用于上载和下载:https://tools.ietf.org/html/rfc1864
通常,标头用于与您的请求有关的少量元数据。如果您认为这种额外的安全性值得保证,那么这是一个完全有效的标头用例。