http模块 设置资源类型(mime类型)

2024-03-31 21:52

本文主要是介绍http模块 设置资源类型(mime类型),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

虽然浏览器自带websocket功能它会根据响应回来的内容自动去判断资源类型,但是我们加上了mime类型判断代码会更加规范些

一、mime类型概念:

媒体类型是一种标准,它用来表示文档。文件、字节流的性质和格式。HTTP服务可以设置响应头Content-Type来表明响应体mime类型,浏览器会根据该类型决定如何处理响应体的资源

二、具体类型:

mime类型结构:【type】/【subType】   (主类型/子类型)

常见文件对应的mime类型:

(1)html:“ text / html ”

(2)css:“ text / css”

(3)js:“ text / javascript”

(4)png:“ image/ png”

(5)jpg:“ image/ jpeg ”

(6)gif:“ image/ gif”

(7)mp4:“ video/ mp4”

(8)mp3:“ audio/ mpeg”

(9)json:“ application/ json”

(10)对于未知的资源类型,可以选择application / octet-stream类型,浏览器在遇到该类型的响应时,会对响应体内容进行独立存储。也就是我们常见的下载效果

三、代码示例:

以前面写过的获取静态资源代码为例:见http://t.csdnimg.cn/y9zIM

建一个32.mime.js文件,写入如下代码:

// 获取静态资源的代码
const http = require('http');
const fs = require('fs');
const path = require('path');
let mimes={
html:"text/html",
css:"text / css",
js:"text / javascript",
png:"image/ png",
jpg:"image/ jpeg",
gif:"image/ gif",
mp4:"video/ mp4",
mp3:"audio/ mpeg",
json:"application/ json"
}
// 2.创建服务对象
const server = http.createServer((request, response) => {// 获取请求url路径let { pathname } = new URL(request.url, 'http://127.0.0.1');// 拼接文件路径let filePath = __dirname + pathname;// 读取文件 fs异步APIfs.readFile(filePath, (err, data) => {if (err) {response.setHeader('content-type', 'text/html;charset=utf-8');response.end("文件读取失败,失败原因是:" + err.message); //注意读取的文件不能以中文命名,否则会报错return;}// mime类型的运用://1.获取文件的后缀名let ext = path.extname(filePath).slice(1);  //当我读取js文件时。后面不加.slice(1)的输出的后缀结果为.js。去除.这个瑕疵,于是使用了slice方法将.进行了裁剪,输出结果为js//2.获取对应的类型let type = mimes[ext];if (type) {// 匹配到了if(type==='html'){// 匹配到了response.setHeader('content-type', type,';charset=utf-8');  //charset=utf-8解决乱码问题。一般情况下只需要设置html页面的utf-8即可} else{response.setHeader('content-type', type); }}else {// 未匹配到response.setHeader('content-type', 'application/octet-stream');}// 响应文件内容response.end(data);})
})
// 3.监听端口,启动服务
server.listen(9000, () => {console.log('服务已启动...');
})

当我们打开浏览器输入http://127.0.0.1:9000/32.mime.js时去读取这个js文件。我们在网络里可以看到content-type的类型为text/javascript

这篇关于http模块 设置资源类型(mime类型)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/865445

相关文章

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-