1.3 浏览器与服务器基础 转载

来源:https://github.com/datawhalechina/vibe-vibe

阅读完本节后,你将会收获:

  • 理解浏览器和服务器的基本职责及协作方式
  • 掌握开发环境(localhost)与生产环境的区别
  • 了解为什么 TypeScript 需要编译以及 Node.js 的作用
  • 区分客户端代码与服务端代码的运行位置

序言中提到的"浏览器看不懂 TypeScript",是因为浏览器和服务器的职责不同。

基本概念

浏览器(Chrome、Firefox、Safari)运行在用户电脑上,只能理解 HTML、CSS、JavaScript。

服务器是远程计算机,运行 Web 服务器软件(如 Nginx、Apache),响应浏览器请求并返回数据。

客户端 = 用户设备(浏览器、手机 App),服务端 = 提供服务的一方(服务器、API)。

Web 应用工作流程

sequenceDiagram
    participant 用户
    participant 浏览器
    participant 服务器

    用户->>浏览器: 输入网址
    浏览器->>服务器: 发送请求
    服务器->>浏览器: 返回 HTML/数据
    浏览器->>用户: 显示页面
📝 🌐 点击体验:浏览器与服务器的交互

💡 练习:点击"播放演示"观看完整的请求-响应流程,然后点击浏览器或服务器查看各自的能力。

🎯 核心概念:浏览器发送请求,服务器处理并返回数据,浏览器再渲染成页面。

浏览器 vs 服务器

浏览器(客户端) 服务器(服务端)
职责 渲染页面、执行交互、请求数据 处理业务、查询数据库、返回结果
存储 Cookie、LocalStorage 文件系统、数据库
能运行 HTML、CSS、JavaScript Node.js、Python、Go
不能运行 TypeScript、后端语言 浏览器 API

为什么需要 Node.js

TypeScript 代码需要编译才能在浏览器运行,这个编译过程需要一个运行环境:

graph LR
    A[TypeScript代码] --> B[Node.js运行环境]
    B --> C[编译工具]
    C --> D[JavaScript代码]
    D --> E[浏览器执行]

Node.js 的作用

  • 在你的电脑上运行构建工具
  • 编译 TypeScript 为 JavaScript
  • 打包代码
  • 启动开发服务器
💡 现代前端开发都需要 Node.js

涉及以下情况就必须安装:

  • TypeScript 项目(需要编译)
  • 使用 npm 包(需要管理依赖)
  • 运行构建工具(Vite、Webpack、Next.js)
  • 本地开发(启动开发服务器)

开发环境 vs 生产环境

开发环境(Localhost) 生产环境(公网)
位置 你的电脑 远程服务器
地址 localhost:3000 https://example.com
代码 未压缩、带调试信息 压缩、混淆
错误 显示详细堆栈 只显示必要信息
更新 热重载(自动刷新) 需要重新部署

运行环境差异

服务器可以访问:文件系统、数据库、环境变量、所有网络请求

浏览器只能访问:页面内容、用户设备(有限权限)、同源请求

💡 代码运行在哪里?

写代码时要清楚代码在哪里执行:

  • 前端代码:在浏览器运行,用户能看到
  • 后端代码:在服务器运行,用户看不到
  • API 路由:Next.js 特殊,既能访问服务器资源,又能响应前端请求

相关内容

最后编辑:Alex 2026-03-05 11:39:51