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

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

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

收录于:97天前

当浏览器请求资源时,会通过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

. . .

相关推荐

额外说明

《MongoDB入门教程》第20章文档更新UPSERT

第 14 篇中介绍了更新文档的 updateOne() 和 updateMany() 方法,它们还支持一种特殊的操作:更新插入(UPSERT)。 更新插入 更新插入包含了两个操作,更新文档和插入文档: 如果存在匹配的文档,更新该文档; 否则,插入一个新文

额外说明

MATLAB FFT 频谱分析和测试图形

1 clear; close all; clc; Fs = 1000; %采样率 T = 1/Fs; N = 1000; % 采样点数 t = (0:N-1

额外说明

【最全的大数据面试系列】Hadoop面试题大全(二)

- 作者 :“大数据小禅” - **专栏简介 **:本专栏主要分享收集的大数据相关的面试题,涉及到Hadoop,Spark,Flink,Zookeeper,Flume,Kafka,Hive,Hbase等大数据相关技术。大数据面试专栏地址。 - **个人主

额外说明

TensorFlow2 手把手教你训练 MNIST 数据集 part1

TensorFlow2 手把手教你训练 MNIST 数据集 part1 概述 get_data 函数 pre_processing 函数 main 函数 完整代码 概述 MNIST 包含 0~9 的手写数字, 共有 60000 个训练集和 10000 个

额外说明

Python常用模块 之 jsonpath模块——实现:解析json数据

引子: 使用测试网站:http://httpbin.org/post发送post请求: 并通过响应的.json()方法将响应数据解析为json数据格式: 3. 如果直接使用loads()方法将json数据转为python对象解析,若数据量大很复杂的时候,

额外说明

开源 Wiki 软件 wiki.js

wiki.js简介 最强大、 可扩展的开源Wiki 软件。使用 Wiki.js 美观直观的界面让编写文档成为一种乐趣!根据 AGPL-v3 许可证发布。 官方网站:https://js.wiki/ 项目地址:https://github.com/requ

额外说明

MySQL文件类型

前言:本文将介绍Mysql的各种类型的文件。   Mysql数据库有以下几种文件: 1.参数文件。 2.日志文件。 3.套接字文件。 4.Pid文件。 5.表结构定义文件。 6.存储引擎文件。   1.什么是参数文件? 在Mysql的运行过程中,有许多规

额外说明

【Go 基础篇】Go语言循环结构:实现重复执行与迭代控制

介绍 循环结构是编程中的重要概念,它允许我们重复执行一段代码块,或者按照一定的条件进行迭代控制。Go语言提供了多种循环结构,包括for、while和do-while等,用于不同的场景下实现循环操作。本篇博客将深入探讨Go语言中的循环结构,帮助读者更好地理

额外说明

大数据学习笔记04:单机模式使用ZooKeeper

文章目录 一、ZooKeeper概述 二、下载ZooKeeper 三、下载JDK8u231 四、由CentOS7克隆一个虚拟机 五、配置虚拟机 1、配置静态IP地址 2、修改主机名 3、修改主机IP映射 六、利用SecureCRT登录虚拟机 1、登录虚拟

额外说明

Spring Boot读取application.yaml属性

Spring Boot读取application.yaml属性 一、访问实体属性 1、pom.xml文件里添加snakeyaml依赖 <dependency> <groupId>org.yaml</groupId> <artifactId>s

ads via 小工具