打开一个网页只需要几秒钟,但这背后其实是一整套协议和组件的协作。本文用最直白的方式拆解一次网页请求的完整流程,并梳理一个网站从界面到部署的组成结构,适合刚接触 Web 开发的读者建立整体认知。
一次网页请求的工作流程
客户端和服务器:当你在浏览器中输入一个网址并按下回车键时,浏览器(客户端)会向该网址对应的服务器发送一个请求。
HTTP/HTTPS 协议:客户端和服务器之间的通信通过 HTTP(超文本传输协议)或 HTTPS(安全超文本传输协议)进行。HTTPS 是在 HTTP 的基础上增加了 SSL/TLS 加密层,确保数据传输的安全性。
DNS 解析:在请求发送之前,浏览器会先通过 DNS(域名系统)将网址转换为服务器的 IP 地址。DNS 就像互联网的电话簿,把人类易读的域名转换为机器可读的 IP 地址。
服务器处理请求:服务器接收到请求后,会根据请求的内容进行处理。比如,如果请求的是一个网页,服务器会将网页的 HTML、CSS、JavaScript 等文件发送回客户端。
浏览器渲染:客户端接收到服务器返回的文件后,浏览器会解析这些文件并将网页呈现给用户。HTML 定义网页的结构,CSS 负责网页的样式,JavaScript 则用于实现网页的交互功能。
状态码:服务器响应请求时,会返回一个状态码来表示请求的处理结果。常见的状态码有
200(请求成功)、404(未找到页面)和500(服务器内部错误)等。
网站的组成结构
前端(Front-end)
- HTML:超文本标记语言,用于定义网页的结构和内容。
- CSS:层叠样式表,用于控制网页的外观和布局。
- JavaScript:编程语言,用于实现网页的交互功能和动态效果。
- 前端框架:如 React、Vue.js、Angular 等,用于简化和加速前端开发。
后端(Back-end)
- 服务器:处理客户端请求并返回相应的数据,常见的有 Apache、Nginx 等服务器软件。
- 后端编程语言:如 Node.js、Python、Ruby、Java 等,用于编写服务器端逻辑。
- 数据库:存储和管理网站的数据,常见的有 MySQL、PostgreSQL、MongoDB 等。
- 后端框架:如 Express.js(Node.js)、Django(Python)、Ruby on Rails(Ruby)等,用于简化后端开发。
API(应用程序接口)
用于前端和后端之间的数据交换,常见形式有 RESTful API 和 GraphQL。
安全性
- SSL/TLS:用于加密数据传输,确保数据的安全性。
- 身份验证与授权:如 OAuth、JWT 等,用于验证用户身份、控制访问权限。
内容管理系统(CMS)
如 WordPress、Drupal 等,用于简化网站内容的创建和管理。
部署与运维
- 版本控制系统:如 Git,用于管理代码版本。
- 持续集成 / 持续部署(CI/CD):如 Jenkins、GitHub Actions 等,用于自动化测试和部署。
- 云服务:如 AWS、Azure、Google Cloud 等,用于托管和运行网站。
- 本文链接: https://diyuyizhu.github.io/posts/web-how-it-works/
- 版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 许可协议。
