📄 一句话概括
浏览器拿到响应体,按 Content-Type 分派:text/html 渲染、image/jpeg 绘图、application/pdf 交给查看器——没有这个头浏览器只能靠猜。
📝 本节和前面几节的关系
响应回到浏览器手里;旅程最后一小段从【认出内容】开始。
一、Content-Type 是通行证
响应头里的 Content-Type 说明消息体是什么: text/html 渲染成页面、image/jpeg 画图、 application/pdf 交给 PDF 查看器……
二、认错的后果
没有这个头或标错,浏览器只能猜(看内容特征), 猜错就乱码或下载——所以它是 6.4.1 的主角。
三、动手 Demo:Content-Type 决定处理方式
浏览器拿到响应体,按类型分派:
for a, b in [('text/html','解析并渲染成页面'),
('image/jpeg','画进页面相应位置'),
('application/pdf','交给 PDF 查看器')]:
print('%-18s %s' % (a, b))
实跑输出:
--------------------------------------------------------------------
Content-Type 决定处理方式
--------------------------------------------------------------------
浏览器拿到响应体,按类型分派:
Content-Type 浏览器怎么做
-------------------------------------
text/html 解析并渲染成页面
image/jpeg 画进页面相应位置
application/pdf 交给 PDF 查看器
-------------------------------------
没有这个头,浏览器只能靠猜——
所以它是 6.4.1 的主角。
6.3.2 的 CGI 程序要自己写 Content-Type—— 忘写这一行是新手最常见的【乱码事故】。
30 秒实验
- 用开发者工具看一个页面的 Content-Type。
- 找一次【类型标错导致乱码】的经历复盘。
- 查查 text/plain 与 text/html 的区别。
常见误区
- 以为浏览器万能识别内容——主要靠 Content-Type。
- 以为 Content-Type 可有可无——丢了它全靠猜。
自测三问(点开对答案)
1. 说明响应体类型的头叫什么? —— Content-Type。 2. PDF 会怎么被处理? —— 交给外部查看器。 3. 没有这个头会怎样? —— 浏览器靠猜,易乱码。- ☐ 下一节(6.4.2 浏览器显示网页内容!访问完成!)
相关笔记
- 返回响应消息 — 这个头从哪来
- 浏览Web页面 — 浏览器全景
- 🔌 网络是怎样连接的 · 索引