小工具      在线工具  汉语词典  css  js  c++  java

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

http,网络协议,网络 额外说明

收录于:45天前

当浏览器请求资源时,会通过http返回header

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

类型    描述    典型示例
text    表明文件是普通文本,理论上是人类可读    text/plain, text/html, text/css, text/javascript
image    表明是某种图像。不包括视频,但是动态图(比如动态 gif)也使用 image 类型    image/gif, image/png, image/jpeg, image/bmp, image/webp, image/x-icon, image/vnd.microsoft.icon
audio    表明是某种音频文件    audio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav
video    表明是某种视频文件    video/webm, video/ogg
application    表明是某种二进制数据    application/octet-stream, application/pkcs12, application/vnd.mspowerpoint, application/xhtml+xml, application/xml, application/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,则该文件名将存储在本地计算机中。

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

原文链接:https://blog.csdn.net/xiaomogg/article/details/130829971

. . .

相关推荐

额外说明

MySQL跨平台数据迁移

在当前的IT环境下,数据的重要性已经不言而喻。作为开源关系型数据库管理系统之一的MySQL被广泛应用于各个行业。然而,由于各种原因,有时候我们需要将MySQL数据库从一个平台迁移到另一个平台。本文将根据我们的实际工作经验分享一些关于MySQL跨平台迁移的

额外说明

测试人必看的5本好书,没看过你就吃亏啦~实体书大放送(全国包邮)

作为 IT 互联网行业的测试人,大部分时候,是通过阅读官方文档,或者直接看视频来学习新知识。 但是,视频和书籍互补,纸质书也是非常重要的! 很多时候,手边需要一本工具书,快速帮我们查找知识点并应用。 很多时候,状态/心态不好的时候,也可以通过阅读书籍来调

额外说明

详尽Netty(三):Channel

如果大家对java架构相关感兴趣,可以关注下面公众号,会持续更新java基础面试题, netty, spring boot,spring cloud等系列文章,一系列干货随时送达, 超神之路从此展开, BTAJ不再是梦想! 概念 Channel 是jav

额外说明

JavaScript怎么判断对象是否为空

判断对象是否为空 for in 遍历对象,拿到的数据是对象的属性 Object.keys方法是将目标对象转换成数组,通过数组的length属性长度判断 JSON.stringfy()将目标对象转成字符串 <!DOCTYPE html> <html lan

额外说明

Qt学习:图形视图框架的使用

文章目录 前言 一、场景、视图和图形项的介绍 二、图形视图框架的坐标系统 三、图形视图框架的事件处理 四、示例完整代码 五、QtCreator官方示例 总结 前言 近期重温了一下Qt中的图形视图框架,这里将所学习的内容进行记录总结。这个框架提供了一个基于

额外说明

checkbox中checked属性的疑惑

复选框标签具有checked属性,通过此属性可以设置复选框的选中状态。 非常简单的操作,但是还是有不少朋友存在后面类似的疑问,那就是不确定checked属性值是true还是checked。 因为两个属性值在实际代码中都有出现,并且都是有效的,也是导致出现

额外说明

【Java 基础篇】Java List 使用指南:深入解析列表操作

Java 是一门强大的编程语言,拥有丰富的数据结构和集合类,其中之一就是 List 列表。List 是 Java 集合框架中的一个重要接口,它允许我们以有序、可重复的方式存储一组元素。本篇博客将从基础到高级,详细介绍 Java 中的 List 接口以及常

额外说明

无心剑英译李白诗32首

文章目录 1、静夜思 2、玉阶怨 3、秋浦歌 4、巴女词 5、客中行 6、赠汪伦 7、下江陵 8、劳劳亭 9、长门怨 10、送友人 11、长相思 12、将进酒 13、怨情 14、山中问答 15、独坐敬亭山 16、望庐山瀑布 17、清平调词三首 18、送孟

额外说明

【OS学习笔记】死锁总结(含银行家算法的实现Java版)

一、背景 作为一个合格的程序员,必然会涉及到进行代码的规范以及对性能的调优,而调优主要是除了负载均衡、缓存优化、数据库优化(例如建立索引)非代码层面外,还要代码层面的调用,那必须做到对OS比较熟悉,尽量少写烂代码,合理调用OS提供的库函数以及计算机所提供

额外说明

wordpress用户注册_如何在WordPress批准用户评论时通知用户

WordPress 用户注册 Comment moderation is the most effective way to keep discussions safe and 无垃圾邮件. However, when a user has left c

ads via 小工具