PHP学习(第三天)

发布于:2025-09-13 ⋅ 阅读:(23) ⋅ 点赞:(0)

网站访问流程

一、静态网站访问流程(如 index.html

请添加图片描述

1. 流程是怎么样的?

静态网站的页面内容固定,不需要服务器做额外计算,直接把文件返回给浏览器。访问流程大致如下:

  1. 用户输入网址或点击链接

    用户在 个人设备(PC/手机) 的浏览器中输入 URL(Uniform Resource Locator,统一资源定位符)。
    浏览器会 向 DNS 服务器 查询对应域名的 IP 地址,找到目标服务器。

    例如访问:

    http://localhost:8080/index.html
    

    对应的 IP 是 127.0.0.1(本机地址)。

  2. 浏览器发送 HTTP 请求

    • 浏览器向该 IP + 端口发起 TCP 连接(比如 8080)。

    • 通过这个连接,浏览器发送 HTTP 请求,例如:

      GET /index.html HTTP/1.1
      Host: localhost:8080
      
  3. 服务器响应请求

    • Web 服务器(Apache、Nginx 等)接收 TCP 连接,并处理 HTTP 请求。
    • 服务器找到对应的 index.html 文件(例如通过 Apache 或 Nginx 挂载部署在指定目录下)。
    • 找到文件后,服务器 直接返回文件内容给浏览器
  4. 浏览器渲染页面

    • 浏览器解析 HTML、CSS、JS 并显示页面。
    • 页面中如果有图片、字体或其他资源,会继续发请求加载。

特点:服务器只是“送文件”,不需要额外计算。
这里的“计算”指的是:运行程序、处理逻辑或生成动态内容(比如 PHP、Node.js 等动态网站才会做这些)。

2.TCP 和 HTTP 是什么?

  • TCP(传输层)
    • 全称:Transmission Control Protocol —— 传输控制协议
    • 作用:保证数据能从浏览器传到服务器、再从服务器返回浏览器。
    • 类比:TCP 就像邮差,负责送信。
    • 浏览器先通过 TCP 建立连接(握手),确认可以安全传输数据。
  • HTTP(应用层)
    • 全称:HyperText Transfer Protocol —— 超文本传输协议
    • 作用:定义具体要做什么,比如“我要哪个网页”。
    • 类比:信里的内容,例如“GET /index.html HTTP/1.1”。
    • HTTP 的请求和响应是通过 TCP 这个“邮差”发送的。

3.DNS如何在因特网中找到对应的域名的ip?

3.1 DNS 查询流程(分层查找)
  1. 本地 DNS 缓存
    • 先在操作系统或浏览器缓存里找有没有对应的 IP。
    • 如果有,就直接返回,不用向外部查询。
  2. 向本地/ISP DNS 服务器查询
    • 如果本地没有,电脑会向配置好的 DNS 服务器(通常是 ISP 提供的)发请求。
  3. 逐级查找域名(递归/迭代)
    如果 ISP DNS 也没有缓存,会向上查询:
    1. 根 DNS 服务器(Root):负责顶级域(比如 .com.org.cn)信息
    2. 顶级域(TLD)DNS 服务器:负责二级域名解析
    3. 权威 DNS(Authoritative DNS)服务器:最终返回域名对应的 IP
  4. 返回结果给本地 DNS,再到电脑
    • ISP DNS 缓存查询结果,下次再查同样域名就直接返回
    • 浏览器拿到 IP,就可以建立 TCP 连接访问网站了

二、动态网站访问流程(如 index.php

动态网站需要服务器先执行程序(如 PHP)生成页面,再返回给浏览器。流程如下:

  1. 浏览器发起请求

    • 浏览器访问 http://example.com/index.php
    • 先通过 DNS 查到服务器 IP
    • 再通过 TCP 建立连接到服务器端口(如 80/443)

    Web 服务器接收请求

    • Apache 或 Nginx 收到请求后,检查请求的是 PHP 文件
    • 不是直接返回 HTML,而是交给 PHP 解析器(如 PHP-FPM)处理

    PHP 生成 HTML

    • PHP 脚本运行:处理业务逻辑、查询数据库、生成动态内容
    • 输出最终 HTML

    Web 服务器发送响应

    • PHP 生成的 HTML 返回给 Web 服务器
    • Web 服务器再通过 TCP 连接,按照 HTTP 协议把响应发送给浏览器

    浏览器渲染页面

    • 浏览器收到 HTML,解析、渲染,加载 CSS/JS/图片,显示页面

特点:

  • 页面内容可以动态生成(例如显示不同用户信息、数据库内容)。
  • 每次访问可能生成不同的 HTML。

核心理解:

  • Web 服务器负责监听端口、接收请求、返回响应,处理 HTTP/TCP 层的通信。
  • PHP负责生成动态内容(HTML),只是 Web 服务器的一个“内容提供者”。
  • 浏览器最终接收到的是 HTML,底层仍是 TCP + HTTP 协议传输。

三.总结对比

3.1 静态网站VS动态网站

特性 静态网站 动态网站(PHP/Node/Python等)
页面内容 固定,提前写好(HTML/CSS/JS) 动态生成,根据请求或数据库数据生成
URL 示例 /index.html /index.php
请求处理 Web 服务器直接返回文件 Web 服务器交给应用程序(PHP/FPM/Node)生成页面
服务器计算 不需要,直接“送文件” 需要,执行程序、处理逻辑、查询数据库
HTTP 响应 直接返回静态文件内容 返回程序生成的 HTML 内容
TCP/HTTP 流程 浏览器 → TCP → Web 服务器 → HTTP → 浏览器 浏览器 → TCP → Web 服务器 → 调用 PHP → 生成 HTML → HTTP → 浏览器
特点 简单、高速、压力小 灵活、可定制、服务端压力大
适用场景 企业官网、博客、文档站点 电商网站、论坛、社交网站、需要动态内容的应用

3.2 SPA vs SSR

角度 SPA SSR
HTML 生成 浏览器端 服务器端
页面内容 动态(客户端渲染) 动态(服务器渲染)
服务器作用 提供静态资源 + API 数据 生成 HTML + 提供 API 数据
类比传统网站 静态入口 + 动态数据 纯动态网站

网站公告

今日签到

点亮在社区的每一天
去签到