计算机web常识
2026/5/4 17:09:23 网站建设 项目流程

  • 渗透:找漏洞+模拟入侵的过程的安全测试
  • Web应用架构
    • 前端 (HTML)
      • HTML “标记语言”(用来搭页面骨架,比如<div>``<button>)
      • JavaScript 让页面动起来(比如点击按钮弹窗、表单验证)前端编程语言)
      • CSS 让页面好看的是 (样式语言)
    • 后端 (PHP)
      • PHP 只是后端语言的一种(其他还有 Java/Node.js/Python/Go 等)
      • 核心作用: “承上启下”:接收前端的请求 → 处理逻辑 → 调用数据库 → 把结果返回给前端
    • 数据库 (MySQL)
      • Web 应用的 “数据存储层”,负责存放结构化数据(比如用户的账号密码、文章内容、商品价格、订单记录)
      • MySQL : “关系型数据库管理系统”(DBMS),非编程语言
      • SQL:操作数据库的语言
        • (结构化查询语言,比如SELECT * FROM 用户表 WHERE 账号='xxx'),后端(比如 PHP)通过 SQL 指令和 MySQL 交互(查数据、存数据、改数据)
    • 服务器 (Linux/Windows)
      • 云服务器
        • 它是远程物理服务器通过虚拟化技术把内存分出来一小块搞好
      • 物理服务器
        • 远程服务器,那种比较贵的性能超级好的服务器
      • 注:其他的服务器都是基于物理/云服务器又装了一个服务器软件/数据库来用来搞事情的,比如说web服务器用来跑网站,其实就是物理/云服务器又装了web服务器软件(Apache这种),数据库就是装了数据库(比如就是MySQL这种,提供数据用的)
    • 网络 (HTTP/IP/ 端口)
      • 连接前端(用户浏览器)和后端(服务器)的 “通信层”,规定了数据怎么传、传给谁
      • IP:服务器的 “网络地址”(比如服务器的公网 IP 123.45.67.89),确保前端能找到对应的服务器;
      • 端口:
        • 服务器上区分不同服务的 “门牌号”(比如 HTTP 默认 80 端口、HTTPS 443 端口、MySQL 3306 端口),
        • 确保请求能到对应的服务(比如 80 端口交给 Nginx,3306 端口交给 MySQL);
      • HTTP:
        • 前端和后端通信的 “协议”(规则)
          • 前端用GET/POST发请求
          • 后端用200/404返回状态码
          • 数据格式用 JSON/HTML
    • 访问网页流程(以访问博客网站为例)
      • 前端:你的浏览器加载 HTML/CSS 搭的博客页面,点击 “查看文章” 按钮(JS 触发请求);
      • 网络:浏览器通过 HTTP 协议,向服务器的公网 IP(比如 123.45.67.89)的 80 端口发送请求;
      • 服务器:Linux 系统上的 Nginx 接收请求,交给 PHP 处理;
      • 后端:PHP 写的代码接收到请求,用 SQL 指令向 MySQL 数据库查询这篇文章的内容;
      • 数据库:MySQL 返回文章的标题、内容、作者等数据给 PHP;
      • 后端:PHP 把数据组装成 HTML 格式;
      • 网络:PHP 通过 HTTP 协议,把 HTML 数据返回给你的浏览器;
      • 前端:浏览器渲染 HTML/CSS,你看到文章内容
      • 其实就是,给前端请求,网络把请求发给服务器,服务器后端php收请求,用sql指令差MySQL数据库,数据库再把相应数据返回后端数据,php把这个数据转换成html格式然后返回浏览器,返回前端渲染
  • 证书:CA加密的电子文件,用于证明网站身份和给数据加密
    • eg 用户访问https网站,网站会把证书发给设备,浏览器查一下CA签名是否有效,没问题之后用证书里面的公匙加密数据,避免黑客冒充网站,窃取数据
  • 协议
    • 相当于网络世界的规则和标准,它是在电脑里面的提前配置好的程序
    • 目的
      • 让不同系统的设备可以交换数据,减少兼容问题
    • 主要的协议
      • DHCP
        • 给用户分配ip用的
        • 可以节省资源ip,避免ip冲突,而且不用手动设置ip
      • TCP
        • 传输重要数据(文件,项目)的,确保数据不丢失不混乱
        • 如果占用服务器TCP连接资源,会导致服务器崩溃
        • 防护的话主要用的是防火墙限制的
      • UDP
        • 传输一些实时数据的(游戏联机)可以有部分数据丢失
      • HTTP(明文)
        • 普通网站数据传输(比如就是百度这种的网页访问之类好)
      • HTTPS(密文)
        • 加密传输(比如说微信密码,银行网站这种)
      • DNS
        • 把你的网站的中文名字转换成ip用的
      • FTP
        • 远程传输文件
      • ICMP
        • 测试你的装备是否在线的
      • SSH
        • 远程登录linux服务器用的
  • 内网和公网
    • 内网(局域网)
      • 小范围的网,蓝牙传文件这种
      • ip地址前三段是一样的(127.0.0.1和127.0.0.10是内网)
    • 公网
      • 国家的整个网
      • 特点:只有一个公网
  • 访问网络的完整流程
    • 输入www.baidu.com
      • DNS把这个网址对应的ip地址找到
        • 子网掩码判断这个ip地址和主机的电脑ip是否相同
          • 相同可以直接连接访问
          • 不同的话交给网关
            • 网关把数据传到公网
              • 找到百度服务器
                • 百度服务器接受数据并传回数据
  • ip地址
    • 具有唯一性,每一个设备ip地址唯一
    • 网络设备在互联网中的标识
    • why
      • 网络的核心是“数据传输”,但数据是“无差别字节流”,必须解决两个关键问题:
        • 「发送方」不知道「接收方在哪」:没有IP,数据就像“无地址的快递”,根本发不出去;
        • 「路由器」不知道「该转发给谁」:IP是路由决策的核心依据,没有它,全球设备无法形成互联网络。
      • 本质
        • 实现精准通信,给每个网络设备分配唯一的“通信标识”
    • 有什么用
      • 发送数据时,通过目标IP找到对应的设备
      • 「路由转发」:路由器通过IP地址判断数据的“下一步该往哪传”(类似快递中转站根据地址分流);
      • 「区分网络」:IP的前半部分(网络位)能区分设备属于哪个局域网/公网,避免地址冲突(比如校园网内的 192.168.1.x 和家里的 192.168.1.x 互不冲突)
    • 公有ip和私有ip
      • 「公有IP」:互联网上唯一的IP(如 220.181.89.147 ,百度服务器IP),由ISP分配,可直接被外网访问
      • 「私有IP」:局域网内使用的IP(如 192.168.0.x 、 10.0.0.x ),不能直接访问互联网,需通过NAT转换
    • IP加密:给IP数据包加密一下,防止传输数据是别人截获的时候泄露信息
    • IPv4 vs IPv6——“地址的两种身份证格式
      • 4的话地址少,攻击者容易逐个扫描
      • 6的地址多,安全性高
    • 32位和128位
      • 地址的长度,地址转化成二进制之后是32或者128个0/1
  • 虚拟机
    • 特点
      • 和主机相互隔离,数据互不干扰,这也是为什么它中了病毒可以直接毁掉
    • 用处
      • 练习网安的东西
    • 原理
      • 虚拟机相当给电脑装了一个环境,这个环境是为了给靶机做准备,靶机就是练习的时候攻击机要打的系统,这个系统是那种在网上找的专门有漏洞的系统,一般来讲安装完虚拟机之后会在虚拟机上面安装靶机,之后再新建一个虚拟机当攻击机,当然也可以用主机当攻击机,用主机的话有一定风险,安全性不太好还会出现版本不兼容的情况
    • 虚拟机三种模式:
      • NAT
        • 能上网但是外网找不到
        • 主机在内网,主机的里面又生成一个内网,而虚拟机在主机生成的内网里面
          • 原理
            • 虚拟机软件通过模拟形态在主机上开了一个中转站,并且模拟在主机里面开了一个小型的局域网,把主机当做虚拟机的网关
            • 虚拟机访问外网需要给主机发送请求,主机代替虚拟机把请求发到公网
              • 主机代发所以外网只能看到主机的ip地址,这就是找不到虚拟机的原因
            • 主机再作为中转站把外网的数据发回去虚拟机
      • 桥接
        • 能上网且外人能找到
        • 虚拟机和主机属于同一个内网,且都能连接公网
      • 主机
        • 不能上网,只能和主机通信
        • 开这个的话主机和虚拟机都会封闭,会变成局域网
        • 用于封闭测试
    • 如何使用
      • 把那种恶意文件传到虚拟机里面
        • 直接拖
        • 建一个共享文件夹
        • 把文件考到U盘里面,然后用虚拟机挂载U盘再复制文件
        • 把文件做成ISO镜像,虚拟机里面“挂载镜像文件”提取
  • 镜像文件
  • 动态分配与内存保护
    • 主要就是操作系统可以把电脑上面的内存拆开,给每一个应用程序分一点,然后让这个程序只能在这个操作系统给分配的内存里面鼓捣,这样子的话每一个程序之间就不会互相影响,即使有一个程序卡死了也不会影响别的程序
  • OS(操作系统)核心组件以及原理
    • 场景
      • 桌面
        • 电脑用的
      • 服务器端
        • 一个大机房,几乎是没有GUI界面,都是代码,一般是百度那种大的专业的一直要给别人提供服务器用的(比如我在自己电脑上面访问百度网页,给我的电脑返回数据的就是百度的服务器端操作系统)
      • 嵌入式
        • 监控或者小型设备里面装的
      • 移动端
        • 手机端,智能手表这种
    • 核心运作流程
      • 1. 用户点击浏览器图标(GUI操作)→ 操作系统接收请求;
      • 2. 用户接口将请求传递给内核→ 内核的进程管理组件创建新进程,分配CPU时间片;
      • 3. 内存管理组件为进程分配内存空间,加载浏览器程序代码到内存;
      • 4. 若浏览器需要访问网络/硬盘,通过系统调用(System Call) 向内核请求→ 内核调用对应设备驱动(网卡/硬盘驱动)操作硬件;
      • 5. 硬件执行后返回结果→ 内核通过系统调用将结果传递给浏览器→ 浏览器显示页面。
      • 关键机制:
        • 特权态与用户态分离:内核运行在特权态(可操作硬件),普通程序运行在用户态(不能直接操作硬件,需通过系统调用),避免程序破坏系统;
        • 中断处理:硬件(如键盘敲击)触发中断→ 内核暂停当前任务,优先处理中断请求,保障响应速度
    • 是什么
      • 是系统软件,管理硬件和软件资源的
    • 目的
      • 降低操作复杂程度(早期计算机硬件需要手动操作)
    • 管理员权限和普通用户权限的区别
      • 大概就是管理员可以改电脑的系统程序和配置,自己创建普通用户权限的话安全一点
    • 相关术语
      • 内核
        • 操作系统最核心的程序,运行在特权态,直接控制硬件资源,负责资源调度、权限校验、中断处理等底层操作(总之就是基本关键决策都是它负责)
      • 系统调用
        • 就是连接程序和内核用的东西
      • 特权态
        • 普通程序无法进入,只有内核可以,这个状态可以控制所有硬件
      • 用户态
        • 普通软件的状态
      • 设备驱动
        • 把内核的指令翻译为电信号给到硬件
      • 文件系统
        • 硬盘的整理收纳规则
      • 进程
        • 正在运行的程序
      • 线程
        • 进程的工具人,提高效率用的
      • 时间片轮转
        • 就是开了好多个程序能让这几个程序获得运行机会不卡顿
      • 虚拟内存
        • 定义:将硬盘的一部分空间当作内存使用,当物理内存不足时,将暂时不用的进程数据“换出”到硬盘,需要时再“换入”物理内存
        • 内存(桌面)不够用了,把暂时不用的文件放到硬盘(抽屉)里,需要时再拿出来,扩大“可用桌面空间”
        • 例子:你打开10个Chrome标签页+VS Code+虚拟机,物理内存(8GB)不够时,OS会用硬盘的虚拟内存(如4GB),让程序不崩溃;编程时要避免内存泄漏(否则虚拟内存会被占满,电脑卡顿
      • 内存模型与限制
        • 程序运行时的内存分为
          • 栈(局部变量)
          • 堆(动态分配)
          • 全局区/静态区;需理解虚拟内存的原理(避免内存泄漏、栈溢出)
  • php语言
    • 服务器端脚本语言(脚本语言 = 无需编译、直接解释执行的语言)
    • 运行位置:在 Web 服务器上执行(而非用户浏览器),执行后生成纯 HTML 代码返回给浏览器;
    • 语法大概就和计算机语言差不多,兼容性高
    • PHP 是专门为 Web 开发设计的 “服务器端脚本语言”,能把静态 HTML 变成可交互的动态网页
  • 命令行
    • 是什么
      • 区分:那个打开的黑框框叫“终端”,输入的指令叫“命令行”
      • 就是直接和电脑对话的指令,比较灵活,比较快捷方便
    • 其实有各种各样的虚拟机,但是用linux就是因为
      • 命令行区分大小写,可以严格区分文件路径
      • 百分之90以上的web服务器都是用的linux系统,不会有兼容问题
    • 命令行不需要配置环境
  • 虚拟机之间攻击的时候os可以不一样,没啥兼容问题,只要确保网络联通,就能攻击
  • 端口
    • 就是电脑的服务小门,有的专门给网页用,有的专门给数据库用的
    • 为什么要有端口
      • 电脑不可能只处理一个任务,电脑会开很多网页同时进行处理,如果别人给你发了一个请求或者是数据,没有端口的话就分不清是给哪个网页发了,会很乱
    • 每个服务只对应唯一一个端口
    • 常见端口

80

HTTP 网页服务

普通网页访问(比如 http://xxx)

443

HTTPS 加密网页服务

加密网页(比如 https://xxx)

3306

MySQL 数据库

数据库连接、SQL 注入都走这个

22

SSH 远程登录

连 Ubuntu 虚拟机 / 云服务器用

8080

备用网页端口

本地测试网页常用

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询