页面没显示的内容

回到门户首页,我们观察“常用下载”这一模块。浏览器为什么知道哪里该放大标题,哪里该排出一列带下划线的链接?

答案藏在服务器发送给浏览器的原始数据里。Web 服务器传给浏览器的并不是一张已经渲染好的图片,而是一份带有结构标记的纯文本,即 HTML(超文本标记语言)。浏览器读取并解析这些标记,才知道哪些文字应作为标题、哪些应作为段落、哪些是超链接,最终把页面排版出来。

查看网页源代码

在首页空白处单击鼠标右键,在弹出的菜单中选择 “查看网页源代码”(View Page Source)。浏览器会打开一个新的标签页,里面展示的就是服务器返回的原始 HTML 代码。

教务处首页的右键菜单中同时可见查看网页源代码与检查

在桌面端浏览器中,也可以直接在当前网址前加上 view-source: 前缀,并在新标签页打开:

正常页面:https://你的实验站地址/
源码视图:view-source:https://你的实验站地址/

进入源码视图后,按下快捷键 Ctrl+F(Mac 上为 Cmd+F)唤出搜索框,输入关键词 常用下载 进行定位。优先搜索页面上已经看到的中文文本,能帮助我们更快在冗长源码中找到目标代码段。

首页源码视图中的常用下载标题与下面的文件链接

我们定位到了下面这段核心 HTML:

<h2 id="downloads">常用下载</h2>
<li><a href="/notice/course-select.html">选课流程与常见问题</a></li>

其中,<h2> 和 </h2> 是二级标题标签,用来告诉浏览器:把它们之间的文字渲染成较大、较粗的标题。<a> 是超链接标签,里面的 href 属性定义了点击链接后跳转的目标路径,也就是选课指南位于 /notice/course-select.html。id="downloads" 则是给这个元素设置的一个唯一标识符。

对比页面和源码视图,可以看到一个明显区别:普通页面只展示最终结果,尖括号里的标记语法都被浏览器解析并隐藏了;而源码视图保留的是未经加工的原始指令,我们可以直接查看这些标记。

HTML 注释中的隐藏信息

在刚才那段代码的上方,紧挨着通知列表的位置,有一行格式特殊的代码:

<!-- 通知列表 每周一由教学办更新 -->

这是标准的 HTML 注释,以 <!-- 开头,以 --> 结尾。开发者通常会用它在源代码里留下备忘、提醒或协作说明。浏览器在渲染网页时会按照 HTML 规范忽略注释内容,因此它不会显示在页面正文中。

同一段 HTML 里的标题、注释和链接,页面上只显示标题与链接

仔细体会这里的技术逻辑:既然我们能在源码视图中看到这行注释,就说明 Web 服务器已经把这段文本完整地传输给了浏览器。它没有出现在页面上,只是因为浏览器按照 HTML 规则跳过了它的渲染。换句话说,只要用户能够访问这个网站,通过查看源码就可能看到这些隐藏内容。

虽然“每周一由教学办更新”只是一句普通的工作备忘,但它揭示了一个重要常识:服务器发送给浏览器的数据,往往比页面表面显示出来的内容更多。

这段注释在哪里?

练习

你在网页源代码里读到了"通知列表 每周一由教学办更新",但页面上没有显示。哪项解释准确?提交选项字母。

A. 浏览器因此取得了服务器上的全部源码。 B. 这段文字已随 HTML 发给浏览器,只是没有作为页面正文显示。 C. 浏览器破解了服务器加密,才读到这段文字。

提交答案

题解 Hint

还要建立清晰的系统边界:浏览器源码视图中看到的内容,只是服务器响应本次请求时返回给浏览器的 HTML 文本,并不等于服务器后端的完整程序源码,也不等于数据库文件。服务端底层部署了哪些脚本、如何生成响应、是否接受外部请求,取决于服务端的路由、权限和访问控制策略。

读一遍首页真正发过来的内容

Lab

启动环境并打开 TARGET 入口(启动 Lab 后显示)。

把首页的网页源代码从头到尾读一遍。页面上没有显示、但服务器确实发给浏览器的内容里,有一处 COIN{...} 标记,提交它。

加载会话状态…

提交 coin

题解 Hint