是否可以在HTTP响应中同时接收字节和字符串数据?一个不能混合放入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)将校验和放在服务器端的某个文本文件中并用实际文件压缩,然后在客户端解压缩存档。
Content-MD5标题是一个用于上传和下载的用途:https://tools.ietf.org/html/rfc1864
通常,标头用于与您的请求相关的少量元数据。如果您认为这种额外的安全性是有保证的,那么这是一个完全有效的标头用例。