域名与 DNS:用名字寻找地址
域名是便于人记忆的名称。DNS 提供查询机制,把名称解析到地址等记录。浏览器和系统可能使用缓存,所以不是每次访问都重新向外询问。
完整 URL 还包含协议、路径等信息。https://example.com/notes 中,域名帮助找到服务,/notes 指定你要访问的资源。HTTPS 在 HTTP 通信中加入加密和身份验证机制。
域名解析失败时,请求还没正常到达目标网站。此时检查数据库内容通常不是第一步。
带走这一点 · 提供完整网址,比只说“那个网站”更容易定位问题。
一次访问:请求与响应
浏览器作为客户端发送 HTTP 请求,服务端返回响应。响应包含状态码、响应头和正文。正文可能是 HTML,也可能是 JSON、图片或其他数据。
浏览器解析 HTML,遇到样式、脚本和图片等资源时还会继续请求。HTML 提供结构,CSS 描述外观,JavaScript 处理交互;页面并不是一张固定图片。
打开清单页面与点击“加载更多”可能是两个独立请求。页面能显示,不代表每个后续请求都成功。
带走这一点 · 把问题拆成:发出了什么请求、收到了什么响应、界面怎样使用响应。
提交表单:数据也会往回走
提交表单时,客户端可以把输入发送给服务器。服务器负责验证、处理和决定是否保存,之后返回结果。按钮显示“成功”应当有实际处理结果作为依据。
200 通常表示请求成功;404 表示服务器没有找到所请求资源;500 表示服务器内部出现错误。状态码提供线索,但 500 本身不能证明一定是数据库故障。还要看错误正文和服务端日志。
点保存后出现 500:记录操作、请求地址、状态码和错误信息,请 AI 沿请求链排查。不要仅凭一个数字就要求它重建数据库。
带走这一点 · 陈述观察与证据,把原因留给排查。
跟着一次请求走完来回
选择服务器情境,发送同一个示意请求,观察网络路径和响应状态。
GET /notes HTTP/1.1…分别试试资源不存在与服务器出错。
这里的请求与响应由本地场景生成,不访问真实服务器。状态码不是对根因的自动诊断。
部署:让别人也能访问
本地运行主要供你开发和验证。部署把构建好的内容或运行服务放到可被目标用户访问的环境,通常还需要域名、配置和持续可用的运行条件。
纯静态页面可以由静态托管或 CDN 分发;有服务端逻辑的应用还需要相应运行环境。服务器是提供服务的角色,可以是一台物理机器、虚拟机或托管计算环境。
把下载的清单 HTML 发给朋友,是交付一个文件。把它部署后给朋友一个网址,则是交付在线访问方式。两者的更新和数据保存范围不同。
带走这一点 · “我能打开”与“目标用户能使用”需要分别验收。
托管服务:哪些事情交给别人管理
IaaS 提供基础计算资源,通常需要你管理更多系统配置;PaaS 提供应用运行平台,替你处理一部分环境;SaaS 是直接使用的软件服务。现实产品可能跨越这些分类。
数据库、身份认证和文件存储也有托管服务,不必为了记住缩写而忽略实际边界。先问:谁负责运行、保存、备份、权限和费用?你的最小作品到底需要哪些?
只有个人清单,先用本地保存可能够用;多人共享时,再考虑账号、数据库和访问控制,而不是开局配置所有云服务。
带走这一点 · 从需求倒推服务,不用把每种平台都接进第一版。
提交表单后服务器返回 500。哪种描述最准确?
先选一个答案,再看解释。
给 AI 一段能用于排查“保存失败”的描述,并要求验证修复。
先自己想,再按需打开提示。越往后,描述越完整,验收也越明确。
带着本章的背景去问 AI。拓展是选学,不影响继续阅读。
把 DNS、HTTP、HTML 和浏览器串成一次点餐的故事,并解释比喻的边界。
参考答案,可以改成你的版本
我正在从零学习计算机与 AI 编程。本章学过: 互联网:解释域名、DNS、HTTP 和浏览器各在做什么;区分请求未送达、404 和服务器错误;理解本地运行与部署给别人使用的区别 把 DNS、HTTP、HTML 和浏览器串成一次点餐的故事,并解释比喻的边界。 请先确认我的理解,一次解释一个小问题,用具体例子并说明比喻的局限。讲完问一道情境题,根据我的回答继续。区分事实、推测和不确定内容;推荐可操作的验证方式。如果涉及具体工具,先确认版本,不要编造功能和资料。
完成这一章
标记各节已读,完成原理实验和情境题后,即可记录本章完成。随时可以直接阅读下一章。
继续查阅原始资料
正文是入门解释;下面的官方资料供你继续核对和深入。
MDN · How the web worksMDN · Client-server overview