网页是如何访问的
这是什么:Web 开发 = 用 Python 写程序,做出让别人用浏览器就能访问的网站。
为什么用:前置知识是 面向对象。基础语法和面向对象都学完了,从这一章起正式进入 Web 开发——用 Python 做出真正能被别人访问的网站,也才算学有所用。
如何用:本章先搞懂「打开一个网页」的瞬间发生了什么:从浏览器发 HTTP 请求,到服务器回响应。
一场「去餐厅点菜」的旅行
你在浏览器输入网址、按下回车,短短一秒内,其实完成了一次点菜:
| 现实世界 | 网络世界 |
|---|---|
| 你走进餐厅 | 浏览器(Chrome、Edge)发起访问 |
| 报菜名:「来一份红烧肉」 | 浏览器发出 HTTP 请求:我要这个网址的内容 |
| 服务员把单子递进厨房 | 请求通过网络送到 服务器 |
| 厨房做好菜,服务员端上来 | 服务器准备好内容,打包成 HTTP 响应 送回来 |
| 你开始大快朵颐 | 浏览器把收到的内容渲染成网页 |
核心就一句话:浏览器发请求,服务器给响应,一来一回,网页出现。
URL:给每道菜一个准确地址
点菜要报菜名,上网要写网址。网址的学名叫 URL,拿一个真实的例子拆开看:
https://www.frog-blog.com/python/flask
- 协议
https:约定用什么方式对话,就像决定用中文还是英文点菜 - 域名
www.frog-blog.com:餐厅的地址,会由「DNS」翻译成服务器真正的 IP - 路径
/python/flask:具体要哪道菜——同一个网站有无数页面,全靠路径区分
服务器在做什么
服务器其实就是一台不关机的电脑。它收到请求后只做三件事:
- 看懂你要什么——解析请求里的路径
- 准备内容——要么从硬盘拿现成的文件,要么现场「做菜」(跑代码生成 HTML)
- 端上来——把内容连同状态码一起发回去
响应里有个重要的东西叫状态码,相当于厨房的回话:
| 状态码 | 含义 | 生活版 |
|---|---|---|
| 200 | 成功 | 菜来了,请慢用 |
| 404 | 页面不存在 | 本店没有这道菜 |
| 500 | 服务器出错 | 厨房着火了,菜做不了 |
那 Flask 是干嘛的
下一章开始,我们要自己当「厨房」了。Flask 就是一个帮我们开餐厅的框架:接单(接收请求)、按菜名找厨师(路由)、出菜(返回响应)都备好了工具,我们只需要专注写「菜怎么做」。
记忆口诀:浏览器点菜发请求,服务器做菜回响应;URL 是菜名,状态码是回话。
动手改
- 在任意网站的地址后面加一串不存在的路径,比如
/this-page-does-not-exist,亲眼看看 404 长什么样 - 打开浏览器的开发者工具(按
F12),切到「网络 / Network」标签,刷新任意网页,观察一条条请求飞过 - 找一个你常用的网站,试着说出它 URL 里的协议、域名和路径三部分
下一章:第一个 Flask 应用,亲手写出你的第一个网站 🐸