application/octet-stream,http服务器设置响应头让浏览器下载内容

HTTP响应中的Content-Type指示资源格式,浏览器据此决定是显示还是下载。Content-Disposition用于指定文件名,配合application/octet-stream可强制浏览器下载。Node.js示例展示了如何设置这些头部以实现图片下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当浏览器在请求资源时,会通过http返回头中的

  • content-type:指示响应内容的格式,如果这个类型浏览器能够支持阅览&&没有设置content-disposition情况浏览器就会直接展示该资源,比如png、jpeg、video等格式,如果浏览器不支持就会,默认触发下载
  • content-disposition:包含响应数据的描述信息,以及下载或者在线查看的处理方式

常见的content-type可能是如下之一:

类型描述典型示例
text表明文件是普通文本,理论上是人类可读text/plaintext/htmltext/css, text/javascript
image表明是某种图像。不包括视频,但是动态图(比如动态 gif)也使用 image 类型image/gifimage/pngimage/jpegimage/bmpimage/webpimage/x-iconimage/vnd.microsoft.icon
audio表明是某种音频文件audio/midiaudio/mpeg, audio/webm, audio/ogg, audio/wav
video表明是某种视频文件video/webmvideo/ogg
application表明是某种二进制数据application/octet-streamapplication/pkcs12application/vnd.mspowerpointapplication/xhtml+xmlapplication/xmlapplication/pdf

nodejs返回图片示例:

fs.readFile(pathname.substring(1),function(err,data){
		res.writeHead(200,{'Content-Type':'image/jpeg'});
        res.setHeader('Content-Disposition', `attachment; filename="图片.jpeg"`);
		res.end(data);
})

res.end返回的可能是某种二进制数据或则字符串,浏览器是无法识别它是什么东西

所以需要Content-Type就是告诉浏览器响应的是什么类型格式的内容

Content-Disposition设置了文件的名称信息,如果Content-Type为application/octet-stream的时候,就会拿这个filename来存储到本地电脑

application/octet-stream

在某些下载文件的场景中,服务端可能会返回文件流,并在返回头中带上Content-Type: application/octet-stream,告知浏览器这是一个字节流,浏览器处理字节流的默认方式就是下载。

下载图片

所以如果想用户访问某个图片链接的时候是下载,就可以把Content-Type设置为application/octet-stream

同时设置Content-Disposition来控制存储到本地的文件名和文件名后缀

参考:

MIME 类型 - HTTP | MDN

https://www.cnblogs.com/h-c-g/p/17147179.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆康永

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值