WEB简介

article/2025/9/30 1:12:19

WEB

一、Web简介

1、 简介

  1. 早期的web应用主要是静态页面的浏览,这些静态页面使用HTML语言编写,放在服务器上,用户使用浏览器通过HTTP协议请求服务器上的web页面,服务器上的web服务器软件接受到用户发送的请求后,读取请求URI所标识的资源,加上消息包头发送给客户端的浏览器,浏览器解析响应中的HTML数据,向用户呈现多姿多彩的HTML页面。
  2. 但是随着网络的发展,很多线下业务开始向网上发展,基于Internet的web应用也变得越来越复杂用户所访问的资源已不仅仅局限于服务器硬盘上存放的静态网页,更多的应用需要根据用户的请求动态生成网页信息,复杂的还需要从数据库中提取信息,经过一定的运算,生成一个页面返回给客户
  3. 如何才能实现? 利用已经实现HTTP协议的服务器端软件,这些软件预先给我们留出了扩展的接口,我们只需要按照一定的规则提供相应的扩展功能,当这类web服务器接受到客户端请求后,判断请求是否是访问我们提供的扩展功能,如果是,将请求交由我们编写的程序去处理,处理完成后,程序将处理结果交回web服务器软件,web服务器软件拿到结果后,再将结果作为相应信息返回给客户端。
  4. 早起使用的web服务器扩展机制是CGI,它允许用户调用web服务器上的CGI程序,CGI全称 Common Gateway Interface 公共网关接口,大多数的CGI程序使用Perl来编写,也有通过C,Python或PHP编写,用户通过单击某个连接或者直接在浏览器的地址栏输入URL来访问CGI程序,web服务器接受到请求后,发现这个请求是给CGI程序的,于是就启动并运行这个CGI程序,对用于请求进行处理。CGI程序解析请求中的CGI数据,处理数据,并且产生一个响应,这个响应被返回给web服务器,web服务器包装这个响应,以HTTP响应的形式发送给Web浏览器。但是CGI编写困难,对用户请求的响应时间较长以进程方式运行导致性能受限制。

2、Web应用历史

2.1、单机程序

软件从附着于电脑硬件之日起,就在不断的进行着自我完善和演变。从其使用模式的角度出发,可以简单分为单机程序和网络程序。发展到今时今日仍有大量的不依赖网络的单机程序被我们使用,如记事本、Excel、PPT、ZIP压缩等软件都是大家熟知的装机必备软件

2.2、网络程序

当电脑越来越多的参与到日常生产生活中,单机程序已经不能满足企业的需要。企业级应用要求能够最大程度的让更多的客户端参与到协同办公之中,所以依赖于网络的程序开始大力发展起来。

2.3、主机+终端模式

最早的网络程序是基于主机+终端模式的,也就是整个应用中只有一台大型主机,各个操作地点都是使用一条专线与主机相连,终端不提供任何运算和界面,类似于Unix形式,所有的运算和处理都由主机来完成。主机一般处理能力非常强大,并且稳定,主要机型都是由IBM这样的大公司提供。

img

图-1 主机-终端模式

但上述模式中,主机的高昂的价格以及扩展难、维护费用高等弊端并不是一般企业所能承受,所以除银行、航空订票、证券等大企业在使用以外,大多数企业开始转投CS架构的程序,即客户端服务器架构。

2.4、C/S架构

1、说明

CS架构的发展过程经历了两层CS架构,三层CS架构以及多层CS架构的演变。
两层的CS架构是由客户端和后面的数据库组成的。数据库用于存放数据,并且使用数据库编程语言编写业务逻辑,客户端则使用VB、VC、Delphi这样的可视化编程方便的语言来开发客户端的输入输出界面。用户通过界面向服务器发送请求,服务器发回的数据则通过界面进行显示,服务器的角色就由数据库来充当。这样做的好处就是开发效率高,满足企业需求。但是这种架构存在着很大的弊端,第一是可移植性差,如当数据库从SQL Server更换为Oracle时就必须将业务逻辑用新的语言再重新编写一遍;第二则是大型系统做不了,因为客户端与数据库需要建立持续的连接,而数据库能够支持的最大连接数是有限制的。所以在2000年这样的架构流行之后,慢慢的就开始向三层CS架构转变。
三层的CS架构指的是客户端+应用服务器+数据库,即将混合在数据库端的业务逻辑从中分离出来,放入到应用服务器中,数据库只负责数据的管理、存储及检索。客户端负责界面。三层之中的应用服务器其实也是程序,类似于前面讲过的TCP、Socket编程,任何支持TCP编程的语言都可以作为应用服务器。三层CS架构的工作流程。
img

C / S 三层架构图

用户通过GUI(图形用户界面)进行操作,然后调用客户端的通信模块,通信模块依据自定义协议将请求数据打包,通过网络发送该请求,到达应用服务器时,应用服务器同样也有一个通信模块,将收到的数据包按照协议进行拆包,调用相应的业务处理模块,处理数据,其中可能需要访问数据库来完成数据的获取,将处理完的结果再次发送给通信模块,通信模块将结果按照自定义协议进行打包,然后将数据包发送给客户端的通信模块,客户端进行拆包获取响应数据,将结果显示在界面上,更新界面上的数据显示。

这样的程序结构虽然在一定程度上降低了对数据库编程的依赖,并且能够适应大型的应用程序,但数据通信模块的增加却提升了开发的难度以及整体架构的复杂度。

2、优缺

优点

  1. 能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,所以CS客户端响应速度快。
  2. 操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。
  3. C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。
  4. 安全性能可以很容易保证,C/S一般面向相对固定的用户群,程序更加注重流程,它可以对权限进行多层次校验,提供了更安全的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。

缺点

  1. 需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。
  2. 兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序。开发、维护成本较高,需要具有一定专业水准的技术人员才能完成,发生一次升级,则所有客户端的程序都需要改变。。
    1. 用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户,所以适用面窄,通常用于局域网中

2.5、B/S架构

1、说明

为了降低三层CS架构中与通信有关的复杂度,BS架构开始成为了网络程序中一大重要的架构类型。
BS架构即Browser + Web Server + DB
img

图-3 B/S三层架构图

由于三层CS架构中,自定义协议提升了整体的复杂度,那么就将自定义协议变成标准的HTTP协议。于是客户端使用HTTP协议进行数据打包拆包的程序即各厂商依据标准开发的浏览器,Web服务器也是基于HTTP协议由一些厂商提供,如IIS,Apache等。这样基于浏览器和服务器的架构中,由于协议已被限定,所以与通信有关的数据打包拆包的过程都不用我们开发人员来编写程序,只需要考虑将HTTP协议解析出来的数据进行业务处理,以及将什么样的结果提供给响应即可。也就是开发过程中只需要考虑7,8,9这三个步骤即可。于是大大降低了网络程序的开发难度,所以这种架构得到了大量的应用。

2、优缺点

优点

  1. 分布性强,客户端零维护。只要有网络、浏览器,可以随时随地进行查询、浏览等业务处理。
  2. 业务扩展简单方便,通过增加网页即可增加服务器功能。
  3. 维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
  4. 开发简单,共享性强。

缺点

  1. 个性化特点明显降低,无法实现具有个性化的功能要求。
  2. 在跨浏览器上,BS架构不尽如人意。
  3. 客户端服务器端的交互是请求-响应模式,通常动态刷新页面,响应速度明显降低(Ajax可以一定程度上解决这个问题)。无法实现分页显示,给数据库访问造成较大的压力。
  4. 在速度和安全性上需要花费巨大的设计成本。
  5. 功能弱化,难以实现传统模式下的特殊功能要求。

二、什么WEB应用程序

  1. WEB应用程序指供浏览器访问的程序,通常也简称为web应用。例如有x.html 、x.html…..多个web资源,这多个web资源用于对外提供服务,此时应把这多个web资源放在一个目录中,以组成一个web应用程序
  2. 一个web应用由多个静态web资源和动态web资源组成,如:html、css、js文件,Jsp文件、java程序、支持jar包、配置文件等等。
  3. Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理

三、WEB应用程序的开发

1、概要

Web应用程序指供浏览器访问的程序,通常也简称为web应用

2、静态web

  1. 定义

    指web页面中供人们浏览的数据始终是不变,例如 .htm、.html,这些是网页的后缀,用户直接访问这些文件就能看到内容

  2. 流程示例图

    img

  3. 缺点

    1、Web页面中的内容无法动态更新,所有的用户每时每刻看见的内容和最终效果都是一样的。

    2、静态WEB无法连接数据库,无法实现和用户的交互

  4. 静态WEB想达到动态效果需要用到的技术

    JavaScript(常用)

    JScript

    ScriptEase

    VBScript

3、动态web

  1. 定义

    指web页面中浏览的数据是由程序产生的,不同时间点,不同地点,不同人访问同一个web页面看到的内容和界面可能不一样,而且动态WEB具有交互性,WEB的页面的内容可以动态更新

  2. 流程示意图(java为例)

    img

    动态WEB中,程序依然使用客户端和服务端,客户端依然使用浏览器(IE、FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Request),现在的所有请求都先经过一个WEB Server Plugin(服务器插件)来处理,此插件用于区分是请求的是静态资源(.htm或者是.htm)还是动态资源。

    如果WEB Server Plugin发现客户端请求的是静态资源(.htm或者是.html),则将请求直接转交给WEB服务器,之后WEB服务器从文件系统中取出内容,发送回客户端浏览器进行解析执行。

    如果WEB Server Plugin发现客户端请求的是动态资源(.jsp、.asp/.aspx、.php),则先将请求转交给WEB Container(WEB容器),在WEB Container中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内容,拼凑页面的展示内容后,把所有的展示内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进行解析执行

  3. 动态web技术

    • ASP
    • PHP
    • JSP

三、什么是WEB 服务器

1、概念

  1. 一台负责提供网页的电脑,主要是各种编程语言构建而成的,通过HTTP协议传给客户端(一般是指网页浏览器)。
  2. 一个提供网页的服务器程序
  3. 服务器是一种被动程序:只有当Internet上运行在其他计算机中的浏览器发出请求时,服务器才会响应

2、常见的WEB服务器

  1. Tomcat服务器

    Tomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范

  2. Apache2服务器

    Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性被广泛使用,是最流行的Web服务器软件之一。它快速可靠,并且可以通过简单API扩充,将Python/Perl等解析器编译到服务器中

  3. IBM WebSphere服务器

    WebSphere Application Server 是一种功能完善、开放的Web应用程序服务器,是IBM公司电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。这一整套产品进行了扩展,以适应 Web应用程序服务器的需要,范围从简单到高级直到企业级

  4. WebLogic服务器

    是美商Oracle的主要产品之一,系购并得来。是商业市场上主要的Java(J2EE)应用服务器软件之一,是世界上第一个成功商业化的J2EE应用服务器,目前已推出到12c(12.1.1)版。而此产品也延伸出WebLogic Portal, WebLogic Integration等企业用的中间件(但目前Oracle主要以Fusion Middleware融合中间件来取代这些WebLogic Server之外的企业包),以及OEPE(Oracle Enterprise Pack for Eclipse)开发工具。
    WebLogic最早由WebLogic Inc.开发,后并入BEA公司,最终BEA公司又并入Oracle公司

  5. Nginx服务器

    Nginx(发音同engine x)是一个 Web服务器,也可以用作反向代理,负载平衡器和 HTTP缓存。该软件由 Igor Sysoev 创建,并于2004年首次公开发布。同名公司成立于2011年,以提供支持。
    Nginx 是免费的开源软件,根据类似 BSD许可证的条款发布。大部分 Web服务器通常使用 NGINX 作为负载均衡器。

  6. IIS服务器

    Microsoft的Web服务器产品为Internet Information Services (IIS),IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。ⅡS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在ⅡS的平 台上。IIS提供了一个图形界面的管理工具,称为Internet信息服务管理器,可用于监视配置和控制Internet服务

  7. Lighttpd服务器

    Lighttpd是由一个德国人写的开源软件,其目标是提供一个专门针对高性能网站,安全、快
    速、兼容性好并且灵活的Web Server环境。它具有内存开销低、CPU占用率低、效能好,以及
    模块丰富等特点。支持FastCGI、CGI. Auth、输出压缩(output compress )、URL重写及Alias
    等重要功能。Lighttpd跟Nginx一样,也是一款轻量级Web服务器,是Nginx的竞争对手之一


http://chatgpt.dhexx.cn/article/Z2LmowE3.shtml

相关文章

Web开发

一、什么是Web开发? Web开发其实就是Web应用开发 在 PC(Personal Computer,个人计算机)刚兴起的年代,软件主要使用 C/S 架构(Client/Server,客户端/服务器)即应用运行在桌面上,而…

常见Web技术之间的关系,你了解多少?

引 ------------------------------------------------------------------------------------------------------------ 如果你是一个Web开发初学者,那么你难免会在网上搜索HTML,CSS,XML,JS(Javascript)&…

Web技术发展史

Web技术发展史 Web开发指的是网页系统开发,每次在浏览器中输入网址时,总会先输入www,这里其实是World Wide Web的简称,现在也简称Web,中文译为万维网。 Web设计初衷是一个静态信息资源发布媒介,通过超文本…

web前端主要技术概述

web前端主要技术概述 参考资料: 2018 Web 开发者路线图 2017年前端框架、类库、工具大比拼 本文主要是介绍部分主流和新兴的web前端技术,希望能帮助想学web前端的小白,理清其技术学习路线。 首先有些技能是web前端需要掌握的&#xff1a…

Web技术基础

前言 当我们还没有接触Web时,可能处理的都是静态网页如Html,这个网页的数据都是直接写在标签里写死的,那么如果我们要做类似淘宝的一个网站,数据每天都会更新,那么静态网页就不支持了,就需要从数据库里去拿数据,来用动…

web端基本技术点整理

1 WEB端概述 1.1 前端框架演变 https://blog.csdn.net/bjweimengshu/article/details/79563440 1.2 技术概览 https://blog.csdn.net/fighting_no1/article/details/79599806 1.3 学习路线 https://blog.csdn.net/zwjweb/article/details/78704342 https://blog.csdn.net/zwjwe…

数据可视化网页内容自动抓取工具

网页内容提取支持我们对公开的网页信息数据进行提取,如果通过人工对网页数据采集,是一个繁琐的工作,网页内容提取工具通过可视化的操作页面,模拟人工进行网页内容提取,能快速获取整个网站的对应元素。 网页内容提取工具…

抓取网站的5种方法

来自维基百科 Web爬虫(有时也称为蜘蛛)是一种Internet机器人,通常系统地浏览Web索引,以进行Web索引。 Web搜寻器以要访问的URL列表(称为种子)开始。搜寻器访问这些URL时,它会识别页面中的所有超…

如何抓取网页数据

如何抓取网页数据,每当我们在网上找到自己想到的数据,都需要复制粘贴或下载然后一步一步地整理。今天教大家如何快速地免费获取网页数据信息,只需要输入域名点选你需要的数据,软件全自动抓取。支持导出各种格式并且已整理归类。详…

爬取动态网页数据的软件-抓取动态网页数据的工具

爬取动态网页数据,随着时代的进步,互联网的发展,不管是企业还是个人都知道了数据的重要性。今天给大家分享一款免费爬取动态网页数据的软件。只要点点鼠标就能轻松爬取到你想要的数据,不管是导出还是自动发布都支持!详…

工具说明书 - 网页内容抓取工具Web Scraper(一)

Web Scraper,官网自称为排名第一的网页抓取/提取插件,可以安装在Chrome和Firefox上。 安装路径: https://chrome.google.com/webstore/detail/web-scraper-free-web-scra/jnhgnonknehpejjnehehllkliplmbmhn?hlenhttps://chrome.google.com/…

如何进行网页抓取数据??

最近老是做导数据,有时候没有旧库了,我们可以从老网页抓取数据 主要思路:通过把网页转换成doc式的html,然后进行获取元素的值 我来写个案例: 这是目标网页: http://zxjg.yn.gov.cn/zxjg/gongshi?rowIndex1&re…

网页抓取及信息提取(三)

R星校长 第3关:网页数据分析 任务描述 下图是2016年国防科技大学分数线的网页,在浏览器中我们可以看到,各省的最高分、最低分、平均分都整齐地排列自在表格中。一个网页的源代码时常有成百上千行,其中很多代码都是为了布局页面样…

爬虫入门(五)抓取网页数据

前面已经实现了获取整个网页HTML的功能,并且在获取HTML的基础上,加上一些诸如:下载出错自动重试、用户代理、服务器代理、爬取深度、避免重爬、id遍历、链接遍历等进阶功能。而且在处理过程中也初步使用了正则表达式。 但是前面我们获取的HT…

网页抓取数据-网页抓取数据的软件免费

在互联网络的时代,信息如同大海般没有边际。甚至我们获取信息的方法已经发生改变:从传统的翻书查字典,继而变成通过搜索引擎进行检索。我们从信息匮乏的时代一下子走到了信息极大丰富今天。 随着互联网的发展及普及,互联网用户迅速…

使用爬虫抓取网页内容

对于爬虫我们首先想到的是 python,但是对于前端来说我们通常是 node 来写爬虫,去抓取网站的数据而已。 爬虫的基本流程 1、发起请求 使用http库向目标站点发起请求,即发送一个Request,第三方请求库如 request,axios 等…

网页数据抓取-网页实时数据抓取软件

网页数据抓取,随着社会的发展,互联网的普及,不管是企业还是个人都意识到数据的重要性。今天给大家分享一款免费的网页数据抓取软件。只要点点鼠标就能轻松采集你想要的内容不管是导出还是自动发布都支持!详细参考图片!…

网页抓取软件-免费网页自动采集抓取任意内容软件

网页抓取工具,网页抓取工具主要是用来收集数据。这也是网页抓取工具最直接和最常见的用途。由于网页抓取是一个工具是一个软件,程序运行速度极快,而且不会因为做重复的事情而感到疲劳,所以使用数据提取来获取大量的数据就变得非常…

Python网页抓取教程

​— Python网页抓取教程:循序渐进 — 抓取网页入门其实挺简单的。在之前的文章中我们介绍了怎么用C#和JAVA两种方法来抓取网页,这一期给大家介绍一种更容易,也是使用最广泛的一种抓取方法,那就是Python。 说起Python,大家应该并…

网页抓取及信息提取(一)

R星校长 第1关:利用URL获取超文本文件并保存至本地 当我们想要在浏览器中打开一个网页时,需要在浏览器的地址栏中输入该网页的url,例如在地址栏中输入百度搜索网站的首页url:https://www.baidu.com/ ,点击确认后&…