Web前端开发技术
第一讲:什么是Web前端?
杭州电子科技大学 舒亚非
什么是Web?
万维网(World Wide Web),亦作"WWW"、"Web",是一个透过互联网访问的,由许多互相链接的超文本组成的系统。英国科学家蒂姆·伯纳斯-李于1989年发明了万维网。1990年他在瑞士CERN的工作期间编写了第一个网页浏览器。网页浏览器于1991年在CERN以外发行,1991年1月最先向其他研究机构发行,并于1991年8月在互联网上向公众开放。
万维网是信息时代发展的核心,也是数十亿人在互联网上进行交互的主要工具。网页主要是文本文件格式化和超文本标记语言(HTML)。除了格式化文字之外,网页还可能包含图片、影片、声音和软件组件,这些组件会在用户的网页浏览器中呈现为多媒体内容的连贯页面。
万维网并不等同互联网,万维网只是互联网所能提供的服务其中之一,是靠着互联网运行的一项服务。
要想深入理解什么是Web,最好是亲手架设一个网站!

安装Web软件环境
- 创建
D:\server文件夹,假设它代表着一台远程服务器上的目录 - 下载Web服务器集成软件包 phpstudy ,并将其安装至
D:\server目录 - 下载和安装chrome/firefox/Edge等浏览器软件
- 运行
D:\server\phpStudy\phpStudy.exe,点击面板中的"启动Apache",确保启动成功(绿色)

hello Web!
新建 D:\server\phpStudy\WWW\hello.html文件
<h1>Hello World!</h1>
<p>Welcome! This is my first Web site!</p>
浏览器中访问http://127.0.0.1/hello.html 
Web系统的基本组成
- Web服务器软件:: apache
- Web浏览器软件:: chrome/firefox
- 一个特定格式的地址:
http://127.0.0.1/hello.html - 一个特定格式的html文档::
<h1>Hello Web!</h1>
为什么需要Web服务器软件?
- 在磁盘文件管理器中直接双击
D:\server\WWW\hello.html文件,直接触发浏览器进行查看,效果一模一样 - 除了浏览器地址栏中的地址
- 如果
D:\server是来自另一台机器的文件夹呢?
file:///D:/server/WWW/hello.html 
单机时代的文件传输
graph TD
A[Tom的电脑] -->|copy to| B[U盘或移动媒介]
B .-> |线下传输 | Y
Y --> |copy to | C[Mary的电脑]
X(Tom) .-> |请访问U盘\data\hello.dat| Y(Mary)
虚线:人工实现;实线:机器实现
网络时代的文件传输
graph TD
A[Tom的电脑] -->|上传| B{服务器x.com}
B --> |下载| C[Mary的电脑]
B --> |下载| D[...]
X(Tom) .-> |告知地址 x.com/data/hello.dat| Y(Mary)
X(Tom) .-> Z(...)
虚线:人工实现;实线:机器实现
客户机/服务器 Client/Server 架构
服务端软件
- 将客户端发来的网络地址解析为本地地址
- 将本地文件按照协议(ftp、samba)打包发送给客户端
客户端软件
- 接收服务端的文件,并进行处理,譬如:保存为本地文件
graph TD
S(服务器)
SA1(ftp服务端软件)
SA2(smb服务端软件)
SA3(bt服务端软件)
SA4(磁力服务端软件)
CA1(ftp客户端软件)
CA2(smb客户端软件)
CA3(bt客户端软件)
CA4(磁力客户端软件)
C(客户机)
S --> SA1
S --> SA2
S --> SA3
S --> SA4
SA1 --> CA1
SA2 --> CA2
SA3 --> CA3
SA4 --> CA4
CA1 --> C
CA2 --> C
CA3 --> C
CA4 --> C
网络时代的地址 统一资源定位符URL

形形色色的网络地址
http://192.168.1.1/hello.htmlftp://192.168.1.1/hello.htmlsmb://192.168.1.1/share/hello.html\\192.168.1.1\share\hello.htmlmagnet:?xt=urn:btih:411354............
=> 本机地址 D::\server\nip\clild.htm or /var/www/nip/child
基于ftp等文件传输协议的系统流程
sequenceDiagram
participant P as 人类用户
participant C as 客户机
participant CA as ftp客户端软件
participant SA as ftp服务器软件
participant S as 服务器
P->>CA: 输入文件地址
CA->>SA: 访问 ftp://x.com/hello.doc
SA-->>S: 请求 D:\server\www\hello.doc
S-->>SA: 载入hello.doc
SA-->>CA: 传送 hello.doc
CA-->>C: 保存为本机文件
P->>C: 运行MS Word打开hello.doc
Note right of P: 手工环节
如果本机没有安装word软件呢?如果下载的是私有格式的文件呢?
统一文档格式:html文档
- html文档采用文本格式(plain text),而不是二进制格式(doc、pdf、jpg),易于跨平台存储、传输和处理
- html文档由一组简单的html标记组成,易于由软件进行解析和渲染
- html文档支持嵌入css、javascript等标记,支持各种渲染和处理
<!-- hello.html -->
<html>
<body>
<h1>hello world!</h1>
<p>Welcome! This is my first Web site!</p>
</body>
</html>
浏览器/服务器架构 B/S
Web浏览器的功能
- 基于http协议,接收来自服务器的html文档
- 将html文档解析、渲染为屏幕图像或语音等
graph TD
SA(Web服务器)
CA1(Web浏览器)
CA2(Web浏览器)
CA3(Web浏览器)
CA4(Web浏览器)
SA --> CA1
SA --> CA2
SA --> CA3
SA --> CA4
http协议:更适合传输文本,而ftp等文件传输协议更适合传输二进制文件
B/S架构工作流程
sequenceDiagram
participant C as 人类用户
participant CA as Web浏览器
participant SA as Web服务器
participant S as 服务器
C->>CA: 地址栏输入或点击链接
CA->>SA: 解析域名、访问 http://x.com/hello.html
SA-->>S: 请求 D:\server\www\hello.html
S-->>SA: 载入hello.html
SA-->>CA: 传送 hello.html!
CA-->>C: 接收页面后,解析和渲染为屏幕图像
基于http、html等协议,Web浏览器代理了人类用户的一系列手工行为,譬如请求页面、接收页面、保存页面、解析页面、渲染页面。也就是说,它吸收和集成了IT时代种种工具的优点,从而也成长为最为强大的网络系统!
从以磁盘文件为中心到以Web页面为中心
| 磁盘文件 | Web页面 | |
|---|---|---|
| 地址格式 | C:\server\hello.doc | http://x.com/index.html |
| 存储形式 | 本机磁盘 | 网络(磁盘、数据库、字节流...) |
| 组织形式 | 文件、文件夹 | 页面、链接、站点 |
| 文档格式 | word、pdf...格式繁多,彼此封闭 | 统一文本格式,开放协议 |
| 处理方式 | 必须专用客户端渲染和处理 | 任何兼容文本的程序均可自由处理 |
什么是WEB前端与后端?
graph LR
S(服务器)
BE(PHP/ASP/JSP引擎)
SA(Web服务器)
CA(Web浏览器)
FE(Javscript引擎)
C(客户机)
P(用户)
SA .-> CA
C .-> |图像或语音|P
subgraph 服务端
S --> BE
BE --> |生成html文档| SA
end
subgraph 客户端
CA .-> |html源文档|FE
FE .-> |生成html文档| CA
CA --> C
end
- 位于服务端,在Web服务器传输之前,用于描述如何动态生成WEB页面的一系列编程语言及技术,如php/asp/jsp/python/ruby等,称之为Web后端技术
- 位于客户端,在Web浏览器渲染之前,用于描述WEB页面应当如何被浏览器渲染、处理的一系列技术,如html、CSS、javascript等,称之为Web前端技术
从用户的视角:离用户近的为前,远的为后
概念解析1
- 服务端
- 提供资源的,为多台客户机共享资源
- 被动的,接收上传和下载请求的机器
- 客户端
- 享用资源的:获取服务器的资源
- 主动的:发起上传和下载请求的机器
- 客户机/服务器:当我们强调客户端或服务端的物理属性时,我们使用客户机、服务器的称呼;反之,则表示当我们仅关注其扮演角色的不同。譬如在同一个软件内部,它的不同部分也可以扮演客户与服务的角色,即使在同一台物理机器上。
概念解析2
- 文档 document:我们一般将使用欲处理的目标对象,统称之为文档;如果要强调它的存储或编码格式,则加限定,称之Web文档、Word文档等
- 当文档存储在磁盘上时,称之为磁盘文件,简称文件,譬如html文件
- 当文档处于网络传输时,称之为网络字节流,简称字节流,譬如Web文档字节流
- 当文档被载入内存,譬如被浏览器进行解析和处理时,称之为内存对象,简称对象,譬如Web文档对象
- Web页面与Web文档:当我们偏重于从用户的角度或使用的角度,常称之为Web页面;当我们偏重于从系统的角度或编程处理的角度,常称之为Web文档