Web 网络访问完整整理笔记

一、HTTP / HTTPS 协议基础

1. HTTP 超文本传输协议

  • 核心特点
    1. 明文传输:所有请求、响应数据不加密,抓包可直接看到账号密码,存在安全风险
    2. 无状态协议:服务器不会记忆客户端上一次的访问行为,每次请求都是独立全新连接;网页本身无记忆功能。
  • 案例: 登录 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. 本地映射文件(优先级最高)

  1. Linux:/etc/hosts 案例:写入 192.168.233.150 www.test.com,访问该域名直接指向这个 IP,不走 DNS
  2. Windows:C:\Windows\System32\drivers\etc\hosts

4. 缓存层级(查询顺序从上到下)

  1. 浏览器本地 DNS 缓存
  2. 系统 hosts 静态映射
  3. 路由器 / 运营商 LDNS 缓存
  4. 公网迭代查询

三、会话有状态技术:Cookie

原理

HTTP 无状态,服务器通过下发 Cookie 标记客户端身份;客户端后续每次请求自动携带 Cookie,服务器识别用户状态。

  1. 流程:客户端首次访问 → 服务端下发 Cookie → 客户端本地保存 → 后续所有请求自动带上 Cookie
  2. 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 区分

  1. URI :统一资源标识符,仅代表服务器内资源路径 /index.html
  2. 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。