购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 Web开发简介

Web开发是指为Internet或Intranet构建和维护网站的过程所涉及的工作,该网站可通过Web浏览器访问并托管在本地硬件或云服务器上。Web开发包括从单个纯文本网页到复杂Web应用程序的所有内容。

开发网站的主要方法包括编码和网络标记。然而,还有许多开发任务也涉及Web开发,如脚本、安全配置、内容开发和电子商务基础设施。Web开发涉及两方面,即Web前端开发和Web后端开发。

Web前端开发的重点是提供用户界面,供用户进行观看和操作。例如,我们在网上看到的各种美观的Web网页,就是通过浏览器来解释HTML实现的。当然,要显示出各种美观的界面,并且让用户方便地操作,只有HTML是不够的,还需要使用CSS技术来控制界面的显示样式和效果,如字体、字号、背景色、间距、一些动画效果等,以及使用JavaScript语言实现数据获取、分析处理和业务相关的逻辑等。

Web后端开发的主要工作是对于数据的管理。通常包括数据的存储(增加、删除、修改)和查询。这听起来似乎很简单,其实有的业务流程非常复杂,例如,淘宝购物过程,一个购买操作就涉及很多逻辑处理。如果设计用户量非常大,需要响应百万级以上的客户访问,就需要精心地设计架构,做好多服务分布式、集群式来处理大量的用户请求。

1.1.1 体系结构

常见的网络应用程序体系结构有两种:一种是基于客户端/服务器端的C/S结构;另一种是基于浏览器/Web服务器的B/S结构。

C/S结构,全称为Client/Server,表示所有的显示和业务逻辑都在客户端,服务端提供数据,如图1-1所示。

● 客户端:与用户进行交互,用于接收用户的输入(操作)、展示服务器端的数据,以及向服务器端传递数据等。

● 服务器端:与客户端进行交互,用于接收客户端的数据、处理具体的业务逻辑、传递给客户端其需要的数据等。

B/S结构,全称为Browse/Server。浏览器负责网页显示,Web服务器负责业务逻辑,数据放在数据库服务器,属于典型的三层/多层架构,如图1-2所示。

图1-1 C/S结构

图1-2 B/S结构

● 浏览器:主要负责向 Web 服务器提交 HTTP 请求(POST/GET 等方式),以及接收 Web 服务器的HTTP响应,解释HTML并显示网页。常见的浏览器包括IE浏览器、谷歌浏览器、火狐浏览器等。

● Web服务器:用来接收浏览器提交的HTTP请求,以及执行响应的服务端代码(如Java程序片段、Servlet类等),并将执行结果返回给浏览器。常见的Web服务器有Tomcat服务器、Apache服务器、IIS服务器等。

● 数据库服务器:用来提供数据的结构化存储和管理机制。支持关系数据库的服务器有 MySQL、SQLServer、Oracle等,支持非关系数据库的服务器有Redis、HBase、MangoDB等。

本书介绍的Web程序开发属于B/S结构,其遵循请求响应机制,由浏览器发出请求,服务器端接收后进行处理并做出响应。

1.1.2 服务器端与客户端

Web开发主要包括两部分,即服务器端与客户端,如图1-3所示。

图1-3 服务器端与客户端

“服务器”是一个非常宽泛的概念。从硬件的角度来讲,服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其他客户机(如PC机、智能手机、ATM等终端,甚至是火车系统等大型设备)提供计算或者应用服务。从软件的角度来讲,服务器其实就是安装在计算机上的一个软件。根据其作用的不同,服务器又可以分为各种不同的类型,如应用服务器、数据库服务器、Redis服务器、DNS服务器、ftp服务器等。

综上所述,服务器其实就是一台安装了服务器软件的高性能计算机。常见的服务器硬件设备,包括刀片服务器、塔式服务器、机房等。由于服务器是一台计算机,所以它必须在安装操作系统后,才能够安装使用其他服务器软件。常见的服务器操作系统包括Linux系统、UNIX系统,以及Windows Server系统等。

● Linux系统:使用得最多的服务器操作系统,安全稳定、性能强劲、开源免费(或需要少许费用)。

● UNIX系统:和硬件服务器捆绑销售,版权不公开。

● Windows Server系统:源代码不开放,费用高昂,运维成本较高。

硬件服务器在安装好系统后,就可以安装应用软件了,像我们熟知的Tomcat、MySQL、Redis、FastDFS、ElasticSearch 等都属于服务器应用软件,它们分别提供自己特定的服务器功能。如果一台服务器上安装了Tomcat,我们就把这台服务器叫作Tomcat服务器。

Web服务器是一个容器,也是一个连接用户与程序之间的中间件。Web服务器由硬件和软件共同构成。服务器硬件,指能够提供服务让其他客户端访问的设备。服务器软件,本质上是一个应用程序,由代码编写而成,运行在服务器设备上,能够接收请求并根据请求给客户端响应数据、发布静态或动态资源。

Web服务器主要用来接收客户端发送的请求和响应客户端请求。Web服务器可以向浏览器等客户端提供文档、放置网站文件供全世界浏览,还可以放置数据文件供其下载。Web 服务器有很多,流行的 Web服务器有Tomcat、Apache、JBoss(Redhat)、GlassFish(Oracle)、Resin(Caucho)、Weblogic(Oracle)、WebSphere(IBM)等。

● Tomcat:是一个免费且开放源代码、运行Servlet和JSP Web应用软件的基于Java的Web应用软件容器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,且比绝大多数商用应用软件服务器要好,也是本章重点介绍的Web服务器。

● Apache:是世界上应用最多的 Web 服务器,优势主要在于源代码开放、有一支开放的开发队伍、支持跨平台应用,以及可移植等。Apache的模块支持非常丰富,虽在速度和性能上不及其他轻量级Web服务器,属于重量级产品,所消耗的内存也比其他Web服务器要高。

● JBoss(Redhat):是一个基于J2EE的开放源代码的应用服务器。JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB 3.0的规范。但JBoss核心服务不包括支持Servlet/JSP的Web容器,一般与Tomcat或Jetty绑定使用。

● GlassFish(Oracle):是一款强健的商业兼容应用服务器,达到产品级质量,可免费用于开发、部署和重新分发。开发者可以免费获得源代码,还可以对代码进行更改,目前市场应用不是很广。

● Resin(Caucho):是CAUCHO公司的产品,是一个Application Server,对Servlet和JSP提供了良好的支持,性能也比较优良,Resin自身采用Java语言开发,目前市场上的应用属于上升趋势。

● Weblogic(Oracle):是美国Oracle公司出品的一个Application Server,确切来说是一个基于JavaEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中,需要付费使用。

● WebSphere(IBM):是IBM的软件平台。它包含了编写、运行和全天候监视随需应变Web应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere提供了可靠、灵活和健壮的软件,需要付费使用。

客户端与服务器端相对应,是为客户提供本地服务的程序,用于接收用户的输入(操作)、展示服务器端的数据,以及向服务器端传递数据等。常见的客户端包括PC端网页、移动端网页、移动端App、lot设备等。

1.1.3 请求与响应

前面提到了Web开发遵循请求响应机制,下面简单介绍一下什么是请求和响应。

我们把服务器端应用程序中的各个功能称为业务,如商城项目中的用户注册、用户登录、添加购物车、提交订单、结算订单等。而每项业务的完成,都需要通过请求和响应来实现。

● 请求从客户端发送给服务器端,主要用于将客户端的数据传递给服务器端。

● 响应从服务器端发送给客户端,主要用于将服务器端的数据传递给客户端。

为了方便大家理解,可以对比生活中点菜的过程,如图1-4所示。

图1-4 点菜过程

顾客来到餐厅,通过服务员点菜,这个过程可以看作浏览器向服务器端发出请求,而服务器端将点菜结果反馈给后厨,然后做完后再端给顾客,类似服务器端作出响应,将结果返回给浏览器的过程。

请求消息包括请求行、请求头、请求参数。发送请求需要借助 HttpServlet-Request 请求域对象传递数据,HttpServletRequest 是一个接口,它的父接口是ServletRequest,在开发中常用的是带协议的HttpServletRequest请求对象。

响应信息包括响应行、响应头、响应体。做出响应需要借助 HttpServlet-Response响应域对象。HttpServletResponse是一个接口,它的父接口是ServletResponse,在开发中通常使用带协议的HttpServletResponse响应对象。

另外,请求的转发与重定向是Web应用页面跳转的主要手段,在Web应用中使用非常广泛。转发在服务器端内部完成,浏览器感知不到,整个过程只发送一次请求。而对于重定向,浏览器是有感知的,服务器端以302状态码通知浏览器访问新地址,整个过程需要发送两次请求。关于请求和响应,接下来会在第7章详细介绍。

1.1.4 工作原理

Web开发的工作原理如图1-5所示。客户端发起请求,服务器端收到请求,然后将资源发送回客户端,客户端接收资源并显示出来。这就是 Web 的工作原理,它确保我们能够轻松地访问网站,并获取所需的信息。

图1-5 Web开发的工作原理

具体步骤如下。

(1)用户打开客户端,启动浏览器程序,并在浏览器中指定一个 URL(统一资源定位器),浏览器便向该 URL 所指向的Web服务器端发出请求。

(2)服务器端接收到请求后,根据请求的URL路径,调用相应的处理程序,如Java、PHP、Python等。

(3)处理程序通过数据库、文件系统等方式获取数据,将数据处理成HTML、JSON等格式,再返回给服务器端。

(4)服务器端将处理程序返回的数据封装成HTTP响应,通过网络传输给浏览器。

(5)浏览器接收到响应后,解析HTML、CSS、JavaScript等资源,渲染出网页。如果响应中包含JavaScript代码,浏览器会执行该代码来更新网页内容。 Gosx8GoTEnTbwYurOdnXLzkEEUOLuLY2cjUooXfji6HtFlbKgwzx7mkBGtQKEkko

点击中间区域
呼出菜单
上一章
目录
下一章
×