MIME,全称“多用途互联网邮件扩展类型”。这名称相当学术,用人话来说就是:
我们浏览一个网页的时候,之所以能看到html文件展示成网页,图片可以正常显示,css样式能正常影响网页效果,js脚本可以正常运行,视频可以正常播放,字体可以自定义,都跟MIME有着密不可分的关系。
当我们引入CSS的时候,会写一个type=“text/css”
当我们引入JS的时候,会写一个type=“text/javascript”
这就是MIME类型。
对于浏览器来说,它从服务器拿到的资源,不管是CSS还是JS还是HTML,都是一串字符串。
要让CSS、JS、HTML各司其职,做好它该做的事情,就要用MIME来进行判断。
当我们从服务器发起一个HTTP请求,那么HTTP返回的Content-Type属性,就对应了我们说到的这个MIME类型。
以上动图,每个请求文件都有其对应的Content-Type属性和值,不同的文件值不一样。
我们能够看到一个个正常的网页,就是通过Content-Type来决定请求的文件如何渲染,如何执行,如何显示的。
但是,在上一章【浏览器显示一个网页】中,我们并没有看到返回Contnet-Type属性,网页也能正常显示,这是为什么呢?
因为,经过这么多年的发展,现代浏览器已经具备较好的容错能力,即使在某些情况下MIME类型缺失或错误,它们也能够根据上下文推断资源类型并正确解析。
如果我们明确设置资源的Content-Type值,比如上方截图中,将CSS的返回MIME类型Content-Type的值设置为text/html,则CSS就会用HTML类型来解析,从而导致字体并没有变成红色。
这就是MIME的作用,我们要用Node.js开发一个Web框架,MIME是必须要了解的一个内容。
不同的资源类型,要设置好正确的MIME类型。
那么接下来呢,我们再来讲一讲HTTP,全称:超文本传输协议。
如上图,浏览器向服务器发起一个HTTP请求,服务端则给浏览器返回对应的内容。
HTTP请求分为4部分,分别是请求行、请求头、空行、请求体。
HTTP响应也凤尾4部分,分别是响应行、响应头、空行、响应体。
其实HTTP请求和响应是一样的,只不过名词不一样而已。
如上图所示,我们通过浏览器的调试面板,可以看到请求和响应的具体内容。
其中(1)处是请求行,(2)处是请求头,(3)处是响应头。
那么标头紧挨着的“负载”,就是请求体。
负载右边“预览”就是响应体。
预览右侧的“响应”也是响应体,这是返回数据的原始格式,预览只是可以更方便地查看和操作响应体。
了解和认识MIME和HTTP请求,是Web全栈开发的前提和基础。
下一节内容,我们继续完善Web框架,最终用我们自己写的Web框架,做一个前后分离的,个人博客项目。
🌐 揭秘MIME和HTTP:网页背后的秘密 🌐
你是否好奇过,为什么网页上的图片、CSS、JS都能完美呈现?这一切都归功于MIME(多用途互联网邮件扩展类型)!它告诉浏览器如何处理不同类型的文件,确保一切井然有序。🖼️📜
🔍 HTTP请求和响应则是浏览器与服务器之间的对话方式。了解它们的结构,是Web开发的基础!💻
🚀 想要深入Web开发?从认识MIME和HTTP开始,掌握这些核心概念,打造属于你的Web框架!💡
#Web开发 #MIME #HTTP #前端 #后端 #全栈开发 #技术分享