一、Web必备四大件
1.HTML(HyperText Markup Language,超文本标记语言)
-
作用:负责网页的结构
-
就像房子的“骨架”,定义网页有哪些内容。
-
例如:标题、段落、图片、按钮、表格、表单等。
-
示例:
-
1 2<h1>欢迎来到我的网站</h1> <p>这是网页内容</p>
2.CSS(Cascading Style Sheets,层叠样式表)
-
作用:负责网页的样式和外观
-
就像房子的“装修”,控制颜色、大小、布局、动画等。
-
例如:字体颜色、背景、页面排版、响应式设计。
-
示例:
-
1 2 3 4h1 { color: blue; font-size: 30px; }
3.JavaScript(JS)
-
作用:负责网页的交互和动态效果
-
就像房子的“电路和智能系统”,让网页能够响应用户操作。
-
例如:
- 点击按钮弹窗
- 表单验证
- 数据动态加载
- 页面实时更新
-
示例:
-
1alert("你好!")
4.HTTP/HTTPS
- 作用:负责浏览器和服务器之间的数据传输
- 就像“物流系统”,把网页文件和数据从服务器传送给用户。
- 例如:
- 浏览器请求网页
- 服务器返回HTML、CSS、JS、图片等资源
- HTTPS负责加密传输,提高安全性
二、源码和URL访问对应关系
用户输入 URL → 服务器找到对应程序/文件 → 返回网页内容 → 浏览器展示页面。
|
|
三、文件访问解析有什么决定
文件访问一个解析主要由服务器配置、文件类型、请求URL、程序路由规则等因素决定。
简单理解:
|
|
主要有以下及部分决定:
1.Web服务器配置决定(第一层)
常见服务器:
|
|
它负责接收URL请求,并决定如何处理。
比如:
用户访问:https://xxx.com/index.html
Nginx配置:
|
|
服务器会寻找:
|
|
对应关系:
|
|
2.URL路径决定访问位置
比如:
URL:
|
|
服务器解析:
|
|
目录:
|
|
访问结果:
|
|
3.文件拓展名决定解析方式
不同文件有不同程序处理:
| 文件 | 处理方式 |
|---|---|
| .html | 直接返回网页 |
| .css | 返回样式文件 |
| .js | 返回脚本文件 |
| .jpg/.png | 返回图片 |
| .php | PHP解释器执行 |
| .jsp | Java服务器执行 |
| .py | Python程序执行 |
比如:
访问:abc.com/test.php
|
|
4.路由规则决定动态解析
现代网站很多URL不是文件:
比如:
|
|
服务器可能没有:
|
|
而是:
|
|
比如:
Laravel:
|
|
Spring:
|
|
5.默认首页规则决定入口文件
访问:
|
|
服务器不知道显示哪个文件。
通过配置:
|
|
决定
比如:
Nginx:
|
|
优先:
|
|
不存在则:
|
|
6.MIME类型决定浏览器如何展示
服务器返回:
|
|
告诉浏览器:
HTML:
|
|
图片:
|
|
CSS:
|
|
JS:
|
|
浏览器根据这个决定如何显示。
7.权限决定能否访问
比如:
文件:
|
|
可能存在,但:
|
|
返回
|
|
控制因素:
|
|
完整解析流程
|
|
总结
|
|
四、数据库存储数据站库分离
数据库存储数据和站库分离是网站架构中的一种设计方式,核心思想是:
|
|
1.站库分离
传统架构:
|
|
站库分离:
|
|
网站通过数据库连接访问数据
2.数据存储
电商平台:
数据库:
|
|
网站源码:
|
|
3.用户访问流程
用户打开:
|
|
流程:
|
|
4.为什么要站库分离
1.提高性能
|
|
分开:性能更稳定
|
|
2.提高安全性:数据库不直接暴露公网,攻击者即使访问网站,也难直接访问数据库。
|
|
3.方便拓展:多个网站服务器共享一个数据库。
网站访问量增加:
增加Web服务器:
|
|
4.方便维护
可以单独:
- 升级数据库
- 备份数据
- 优化查询
- 更换数据库服务器
不会影响网站代码。
5. 常见站库分离技术
| 部分 | 常用技术 |
|---|---|
| Web服务器 | Nginx、Apache |
| 后端程序 | Java、PHP、Python、Node.js |
| 数据库 | MySQL、PostgreSQL、MongoDB |
| 缓存 | Redis、Memcached |
| 负载均衡 | Nginx、LVS |
| 容器 | Docker、Kubernetes |
总结
|
|
五、中间件配置影响
中间件处于“用户请求”和“业务代码/数据库”之间,负责转发、解析、控制和管理。
在网站架构中,中间件配置会直接影响后续的开发方式、访问方式、部署方式和运维手法。
|
|
中间件配置不同,后面的处理方式也会不同。
1.Web服务器配置影响访问方式
例如 Nginx:
配置静态文件
|
|
访问:
|
|
对应:
|
|
影响:
文件存放位置
URL设计
前端资源加载方式
2.路由配置影响源码结构
例如:
|
|
可以配置:
|
|
也可以:
|
|
同一个URL,不同中间件配置,会对应不同代码处理方式。
3.代理配置影响架构
反向代理:
|
|
配置:
|
|
影响:
|
|
4.PHP解析配置影响文件执行
例如:
访问:
|
|
如果配置:
|
|
流程:
|
|
如果没有PHP解析配置:
可能变成:
|
|
或者:
|
|
5.Tomcat配置影响Java项目运行
例如:
|
|
影响:
|
|
例如:
配置:
|
|
对应:
|
|
6. 数据库中间件影响数据访问
例如:
使用数据库连接池:
|
|
配置:
|
|
影响:
|
|
7. 缓存中间件影响业务逻辑
例如 Redis:
没有缓存:
|
|
有缓存:
|
|
影响:
|
|
8. 安全中间件影响访问控制
例如:
WAF、防火墙:
|
|
配置影响:
|
|
总结关系
|
|
1中间件是网站运行链路中的“规则控制层”,它决定请求如何进入系统、交给谁处理、如何返回结果,因此会影响后续所有开发和运维手法。
六、常规真实Web搭建解析流程
一个真实 Web 网站从搭建到用户访问,通常经历以下完整流程:
|
|
一、准备基础资源
- 域名
例如:
|
|
作用:
- 用户访问入口
- 绑定服务器IP
DNS记录:
|
|
- 服务器
常见:
- 云服务器(阿里云、腾讯云、AWS)
- VPS
- 物理服务器
系统:
|
|
例如:
|
|
二、部署网络环境
- 开放端口
常见:
| 端口 | 用途 |
|---|---|
| 80 | HTTP |
| 443 | HTTPS |
| 22 | SSH管理 |
| 3306 | MySQL |
例如:
用户访问:
|
|
实际:
|
|
- 配置域名解析
DNS:
|
|
访问链路:
|
|
三、安装Web中间件
常见:
静态网站
安装:
|
|
结构:
|
|
访问:
|
|
返回:
|
|
动态网站
例如:
Java:
|
|
PHP:
|
|
Node:
|
|
四、部署网站源码
源码上传:
例如:
|
|
五、配置URL和源码映射
例如:
用户访问:
|
|
Nginx:
|
|
代码:
|
|
六、配置数据库
数据库服务器:
|
|
网站配置:
例如:
|
|
程序连接:
|
|
七、访问解析流程
用户打开:
|
|
全过程:
|
|
八、生产环境常见架构
小网站:
|
|
中型网站:
|
|
大型网站:
|
|
九、最终对应关系
| 用户看到 | 后端实际 |
|---|---|
| URL | 路由规则 |
| 页面 | HTML模板/前端代码 |
| 图片 | 文件存储 |
| 登录 | 用户表查询 |
| 商品列表 | 数据库查询 |
| 下单 | 业务代码+数据库写入 |
| 支付 | 第三方接口 |
总结:
1真实Web搭建就是:域名负责找到服务器,Nginx等中间件负责解析请求,源码负责业务逻辑,数据库负责保存数据,最终通过HTTP/HTTPS把结果返回给浏览器.
一个完整网站本质上就是: 域名 + DNS + 服务器 + 中间件 + 源码 + 数据库 + 安全配置 + 运维体系。