1.1 走进Web技术视界
互联网正以改变一切的力量,在全球范围掀起一场影响人类所有层面的深刻变革。我们生活在一个互联网时代,除了日常的衣、食、住、行,还有工作、学习、旅行等,我们的活动轨迹早已融入互联网,互联网成为生活中不可或缺的一部分。然而,从技术角度来看,互联网、Web对很多人而言,应该都是“最熟悉的陌生人”。
首先,科普两个名词——互联网和Web。
互联网(Internet)又被称为网际网络或因特网,是一组全球信息资源的总汇。有一种粗略的说法,认为互联网是由许多小的网络(子网)互连而成的一个逻辑网,每个子网中连接着若干台计算机。互联网以相互共享信息资源为目的,基于一些标准的协议,并通过许多路由器互连而成,它是信息资源和网络资源的集合。
全球广域网(World Wide Web,Web)又被称为万维网,它是一种基于超文本和HTTP协议的、全球性的、动态交互的、跨平台的分布式图形信息系统,是建立在互联网上的一种网络服务,为浏览者在互联网上查找和浏览信息提供了图形化、易于访问的直观界面,其中的文档及超链接将互联网上的信息节点组织成一个互相关联的网状结构。Web应用包括浏览器、服务器、通信协议三部分。
简而言之,互联网是基础,Web是应用。互联网是全球最大的互连网络,Web是互联网提供的一项服务,是互联网上最流行的应用之一。互联网为Web提供了网络运行环境,Web的出现则极大地推动了互联网的普及和推广。现在我们通常说的互联网是扩展的互联网概念,涵盖了移动互联网在内的全球网络中所有的资源。移动互联网的出现,使很多移动端App也可以通过HTTP协议在网络中进行信息的交互。
Web应用的架构可分为C/S(Client/Server,客户端/服务器)架构和B/S(Browser/Server,浏览器/服务器)架构,B/S架构是Web应用的主流趋势,不断涌现的移动应用也是重要的方向,当然移动应用中部分也采用B/S架构。B/S架构的Web应用,将应用程序安装部署在服务器端,客户端直接通过网页浏览器访问,如网络上常见的门户网站、论坛、商城等。我们通常所说的Web开发或Web应用,主要指B/S架构,本章介绍的Web开发均为B/S架构。
我们可以非常熟练地访问互联网以获取所需要的服务或资源,但很多人其实并不清楚其中的技术流程与原理。当你上网时,从在浏览器中输入一个网址到网页呈现在你面前都经历了哪些步骤呢?这是最基本的问题,常常作为Web应用入门的第一步,弄懂了这个问题,也就了解了Web应用的工作原理。
Web应用是基于互联网的一个多媒体信息服务系统,通常基于B/S架构(浏览器/服务器),由Web服务器、浏览器、通信协议(主要采用HTTP协议,即超文本传输协议)三部分组成。Web服务器主要以网页(主要采用HTML编写)的形式发布多媒体信息,常用的Web服务器有Apache、IIS等,常用的浏览器有IE、Firefox、Chrome等。HTTP是基于浏览器/服务器模型的信息传输协议,用户通过浏览器向Web服务器发出请求并访问相应的网页,解析Web服务器返回的HTML等文档,将其内容显示在显示器的屏幕上。
Web应用的工作原理如图1-1所示。
图1-1 Web应用的工作原理
当你想访问一个网页时,需要在客户端浏览器的地址栏中输入该网页的统一资源定位(Uniform Resource Locator,URL)地址,或者通过超链接连接到该网页。客户端浏览器会向该网页所在的Web服务器发送一个请求,Web服务器会对接收到的请求信息进行处理,然后将处理结果返回给客户端浏览器,客户端浏览器将HTML文档解析后的结果呈现给用户。
Web应用工作流程如下。
(1)用户发送请求。用户在客户端浏览器和Web服务器建立TCP连接之后,可以向Web服务器发送访问请求(如GET)。根据HTTP协议,该请求中包含了客户端的IP地址、客户端浏览器类型和请求的URL等信息。
(2)Web服务器解析请求。Web服务器按照HTTP协议对请求进行解析,以确定下一步的动作。解析的内容主要包括方法、文档和客户端浏览器使用的协议版本。其中,方法告诉Web服务器应该执行的动作。Web服务器接收到请求后,查找到目标文档,并将该文档的内容返回给客户端浏览器。
(3)读取其他信息。Web服务器根据需要读取请求的其他部分。在HTTP协议下,客户端浏览器还应当为Web服务器提供关于客户端的一些信息,如会话信息。
(4)完成请求的动作。Web服务器完成对请求的解析后,将执行请求要求的动作。如果要获取一个文档,则Web服务器会在其文档树中搜索请求的文档。如果文档能被找到并可正常读取,则Web服务器会把文档内容返回给客户端浏览器;如果文档未被找到,则返回错误提示信息。
(5)关闭文档和网络连接,结束会话。当文档已被发出后,Web服务器会结束整个会话。结束会话的过程是先关闭打开的文档,然后关闭网络端口。客户端浏览器接收数据后将结果呈现出来。
Web访问可以简单地理解为一个基于HTTP协议的“请求-响应”过程,客户端浏览器发送访问请求,Web服务器进行响应,客户端浏览器解析HTML文档并呈现内容。例如,我们经常访问的知乎网站,在知乎平台上搜索某个问题时,从技术角度来看,Web应用的工作流程如图1-2所示。
图1-2 Web应用的工作流程
随着互联网的发展,Web的技术体系在不断丰富、扩大,新的技术不断涌现,网络架构也不断与时俱进,但其根基没有改变,始终遵循如下所述原则。
(1)互联网上所有的资源都要用URL来表示。如果要发布一个服务或一个资源到互联网上,想要别人能够访问到,就必须有一个独一无二的URL。
(2)客户端必须基于HTTP协议与服务器端进行交互。不论要访问的是国内的数据还是国外的数据,也不论是文本数据还是媒体流,都必须使用HTTP协议。
(3)数据呈现必须在客户端浏览器中进行,在获取数据资源后需要在客户端浏览器上进行呈现。