📄 一句话概括
路径末尾带斜杠是目录、不带才是文件名;省略时由服务器按默认文件补齐(index.html 等)——只写域名时,访问的就是站点的门面。
📝 本节和前面几节的关系
1.1.2 把 URL 切成了服务器名和路径;本篇处理路径里最常见的【没写全】——省略的部分有规矩地补回来。
一、省略了什么,补什么
末尾带 / 是目录,服务器自动补默认文件; 末尾不带 / 是文件名,写错才需要浏览器补 / 重试; 整个路径都省略时,就是请求根目录的默认文件。
二、为什么这样设计
网址要人写、要人口传——越短越好; 把默认文件名藏进服务器配置,访客只需记域名和目录。
三、动手 Demo:省略的部分由谁补
三种省略形态,一张表看清补全规则:
cases = [('/dir/', '目录+默认文件'),
('/dir', '先当文件,404后补斜杠重试'),
('(空路径)', '请求根目录默认文件')]
for x, rule in cases:
print('%-9s => 补全规则: %s' % (x, rule))
实跑输出:
--------------------------------------------------------------------
省略的部分由谁补
--------------------------------------------------------------------
省略有三种,补法各不同:
你输入的 实际请求的 补全规则
------------------------------------------------------------------------------------
/dir/ /dir/index.html 目录 + 默认文件
/dir /dir/index.html(先当目录试) 无斜杠当文件,404 后浏览器补斜杠重试
只写域名 /index.html 整个路径省略 = 要根目录的默认文件
------------------------------------------------------------------------------------
所以输入 http://www.lab/ 和输入 http://www.lab/xxx.html 看到的
可能是同一个页面——前者是服务器替你补了默认文件名。
常见默认文件名是 index.html(Apache 系)或 default.htm(IIS 系), 由服务器配置决定,访客不用管。
30 秒实验
- 访问一个网站首页和直接访问 /index.html,对比网址栏变化。
- 输入一条不带斜杠的目录地址,看浏览器是否帮你补了斜杠。
- 找一条返回 404 的省略写法,理解服务器没找到默认文件的情况。
常见误区
- 以为 /dir 和 /dir/ 是同一个请求——服务器收到的路径字面上不同。
- 以为默认文件名是浏览器定的——它由服务器配置说了算。
自测三问(点开对答案)
1. 末尾带斜杠和不带斜杠,分别表示什么? —— 带斜杠是目录,不带是文件名。 2. 只写域名时,实际请求的是哪个文件? —— 根目录下的默认文件(如 /index.html)。 3. 默认文件名是谁规定的? —— 服务器的配置,不是浏览器。- ☐ 下一节(1.1.4 HTTP的基本思路)
相关笔记
- 生成HTTP请求消息 —— 补全后的路径写进请求行
- 浏览Web页面 —— 浏览页面的三步全景
- 🔌 网络是怎样连接的 · 索引