一、HTTP / HTTPS 协议基础
1. HTTP 超文本传输协议
- 核心特点
- 明文传输:所有请求、响应数据不加密,抓包可直接看到账号密码,存在安全风险
- 无状态协议:服务器不会记忆客户端上一次的访问行为,每次请求都是独立全新连接;网页本身无记忆功能。
- 案例: 登录
http://192.168.233.140后台,用抓包工具能直接看到提交的用户名、密码明文。
2. HTTPS 加密协议
- 构成:
HTTP + SSL/TLS,传输全程加密,中间人无法窃取、篡改数据 - 区别:HTTP 默认 80 端口,HTTPS 默认 443 端口
- 案例: 百度、淘宝都是 HTTPS 站点,登录账号密码不会被劫持窃取。
二、域名访问完整流程(DNS 解析)
完整链路
浏览器输入域名 → 本地缓存查询 → 本地 hosts 映射文件 → LDNS 本地域名服务器(路由器 / 运营商 DNS)→ 公网根域名服务器迭代解析
1. 递归查询(客户端 / LDNS 执行)
LDNS 替客户端完整走完解析流程,拿到 IP 后直接返回给浏览器。
2. 迭代查询(公网 DNS 服务器之间)
从根域→顶级域→二级域从右向左逐层解析域名,每一层只返回下一层服务器地址,不直接返回最终 IP。
3. 本地映射文件(优先级最高)
- Linux:
/etc/hosts案例:写入192.168.233.150 www.test.com,访问该域名直接指向这个 IP,不走 DNS - Windows:
C:\Windows\System32\drivers\etc\hosts
4. 缓存层级(查询顺序从上到下)
- 浏览器本地 DNS 缓存
- 系统 hosts 静态映射
- 路由器 / 运营商 LDNS 缓存
- 公网迭代查询
三、会话有状态技术:Cookie
原理
HTTP 无状态,服务器通过下发 Cookie 标记客户端身份;客户端后续每次请求自动携带 Cookie,服务器识别用户状态。
- 流程:客户端首次访问 → 服务端下发 Cookie → 客户端本地保存 → 后续所有请求自动带上 Cookie
- Cookie 本质:一段无执行权限的文本字符串,仅用于记录信息,不能执行代码
Cookie 存储常见内容
- 登录会话标识(SessionID,不直接存明文账号密码,原笔记此处错误纠正)
- 用户浏览记录、页面偏好
- 用户行为标签(广告、推荐)
案例
登录论坛后关闭页面,重新打开网站无需重复登录,就是 Cookie 保存了登录凭证。
四、连接与会话保持(区分两个概念)
1. 连接保持(TCP 层面)
基于 TCP 三次握手建立长连接,短时间内复用同一个 TCP 通道,不用重复握手,提升访问速度。
2. 会话保持(七层负载均衡层面)
同一客户端多次请求,始终调度到同一台后端 Apache / 业务节点,保证登录、购物车等数据不丢失。
- 案例:两台 Apache 节点做负载均衡,不开启会话保持时,刷新页面会反复跳登录;开启会话保持后全程固定一台节点。
五、代理分类(正向 / 反向代理)
1. 正向代理
代替客户端访问外网资源,后端服务器不知道真实用户 IP。
- 案例:公司内网代理服务器,员工通过代理访问外网网站,网站只能看到代理 IP,看不到员工本机 IP。
2. 反向代理
代替后端业务节点接收用户请求,用户不知道真实提供服务的后端服务器。
- 案例:Nginx 负载均衡,用户只访问 Nginx,不知道后端两台 Apache 业务节点。
六、HTTP 请求头 & 响应头结构
1. 请求头首行格式
请求方法 资源URI HTTP/版本 示例:GET /index.html HTTP/1.1
2. 响应头首行格式
HTTP/版本 状态码 状态描述 示例:HTTP/1.1 200 OK
关键字段:Referer
记录用户从哪个页面跳转过来;若为空代表直接输入域名访问;若 Referer 非本站域名,判定为盗链。
- 案例:别人网站直接引用你的图片,请求头 Referer 是对方域名,服务器可拦截防盗链。
七、网页三种类型(纠正原笔记错误)
1. 静态网页
真实存在物理文件(.html),内容固定,不查询数据库,所有人访问内容完全一致。
- 案例:Apache 默认首页
htdocs/index.html,修改文件才会变,无需数据库。
2. 动态网页
无固定物理文件,接收请求后实时查询数据库,根据用户身份、参数动态生成页面。
- 案例:商城个人中心,每个人看到的订单、余额都不同,数据来自 MySQL。
3. 伪静态网页
本质是动态程序,通过 URL 重写伪装成静态 html 后缀,将动态查询结果缓存,减少数据库重复查询压力。
- 案例:
/goods/123.html实际是 PHP 动态页面,只是伪装静态后缀,利于 SEO、缓存加速。
八、并发连接数
定义
同一时间点,服务器已完成三次握手、正在通信的 TCP 连接数量(ESTABLISHED 状态)
统计命令
bash
运行
# netstat 查看并发连接
netstat -antup | grep "ESTABLISHED" | wc -l
# ss 效率更高,生产推荐
ss -antup | grep "ESTAB" | wc -l
案例
数值显示 200,代表当前服务器同时有 200 个用户在线访问。
九、HTTP 常用请求方法
表格
| 方法 | 作用 | 实战案例 |
|---|---|---|
| GET | 从服务器获取资源,参数拼接在 URL,数据可见 | 浏览商品页面、打开网页 |
| POST | 提交数据到服务器,数据存请求体,不可见 | 登录提交账号密码、提交表单 |
| PUT | 更新服务器已有资源 | 文件上传覆盖旧文件 |
| OPTIONS | 预检请求,查询接口支持哪些请求方法 | 前端跨域访问时自动发起 |
十、HTTP 状态码分类(背诵版)
2xx 请求成功
- 200 OK:正常返回页面 / 数据
3xx 重定向 / 缓存
- 301 永久重定向:域名永久更换,浏览器缓存跳转 案例:
http永久跳转https - 302 临时重定向:临时跳转,不缓存 案例:未登录自动跳转到登录页
- 304 资源未修改,读取本地浏览器缓存,不重新下载文件 案例:重复刷新静态图片,触发 304 提速
4xx 客户端错误(用户 / 浏览器侧问题)
- 401 未认证:账号密码错误、缺少登录凭证
- 403 权限拒绝:服务器收到请求,但不允许访问该资源 案例:目录无读取权限、IP 黑名单拦截
- 404 资源不存在:访问的页面 / 文件路径写错
5xx 服务端错误(后端程序 / 服务器故障)
- 500 服务器内部代码报错
- 502 网关错误:反向代理无法连接后端业务节点
十一、URL & URI 区分
- URI :统一资源标识符,仅代表服务器内资源路径
/index.html - URL :统一资源定位符,完整访问地址,格式:
协议://IP/域名:端口/URI完整示例:https://www.baidu.com:443/index.html
十二、前后端开发语言
前端(用户浏览器解析)
- HTML:页面骨架结构
- CSS:页面样式、颜色、布局
- JavaScript (JS):页面交互逻辑(点击、弹窗、异步请求)
后端(服务器运行,处理业务、操作数据库)
- PHP:中小型网站主流
- Java (JSP):大型企业、高并发业务
十三、网站流量统计术语(纠正原笔记偏差)
1. IP
以公网出口 IP 统计访问,同一局域网多台设备共用一个公网 IP 只会记 1 次,统计数值偏小。 案例:公司 20 台电脑同一条宽带,访问网站只统计 1 个 IP。
2. PV(页面浏览量)
每刷新 / 打开一个页面算 1 次,同一用户多次刷新会重复累计,数值偏大。 案例:用户连续打开 3 个商品页面,PV+3。
3. UV(独立访客)
基于 Cookie 区分用户,同一浏览器多次访问只算 1 个访客;清除 Cookie 后会被判定新访客,数值略偏大。 案例:同一人用 Chrome、Edge 分别访问,会统计 2 个 UV。