Web概述

news2024/9/20 22:31:35

1.1 程序开发架构

1.1.1C/S体系结构介绍

  • C/S是Client/Server的缩写,即客户端/服务器结构。
  • 在这种结构中,服务器 通常采用高性能的机或工作站,并采用大型数据库系统(如Oracle或SQLServer)
  • 客户端 则需要安装专用的客户端软件,如图下所示。
  • 这种结构可以充分利用两端硬件环境的优势,将任务合理分配到客户端和服务器,从而降低了系统的通信开销。在2000年以前,C/S结构占据网络程序开发领域的主流。

image.png

1.1.2 B/S体系结构介绍

  • B/S是Brower/Server的缩写。即浏览器/服务器结构。
  • 在这种结构中,客户端不需要开发任何用户界面,而统一采用如IE和Firefox等浏览器,向服务器发送请求,由Web服务器进行处理。并将处理结果逐级传回客户端.如下图所示。
  • 这种结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,从而节约了开发成本,是一种全新的软件体系结构。
  • 这种体系结构已经成为当今应用软件的首选体系结构。

image.png

1.1.3 两种体系结构的比较

C/S结构和B/S结构是当今世界网绍程序开发体系结构的两大主流.目前,这两种结构都有自己的市 场份和客户群。但是,这两种体系结构又各有各的优点和缺点,下面将从以下3个方面进仃比较说明。

1.分发和堆护成本方面
  • C/S构的开发和维护成本都比B/S高。
  • 采用C/S结构时,对于不同客户端要开发不同的程序,而且软件的安装、调试和升均需要在所有的客户机上进行。例如,如果一个企业共有10个客户站点使用一套C/S结构的软件,则这10个客户站点都需要安装客户端程序·当这套软件进行了哪怕很微小的改动后,系统维护员都必须将客户端原有的软件卸载,再安装新的版本并进行配置,最可怕的是客户端的维护工作必须不折不扣地进行10次。若某个客户端忘记进行这样的更新,则该客户端将会因软件版本不一致而无法工作。
  • 而B/S结构软件,则不必在客户端进行安装及维护。如果将前面企业的C/S结构的软件换成B/S结构。这样在软件升级后。系统维护员 只需要将服务器的软件升级到最新版本,对于其他客户端,只要重新登录系统即可使用最新版本的软件。
2.客户负载
  • C/S结构的客户端不仅负责与用户的交互,收集用户信息,而且还需要完成通过网络向服务器请求 对数据库、电子表格或文档等信息的处理工作。由此可见。应用程序的功能越复杂,客户斕程序也就 越庞大,这也给软件的维护工作带来了很大的困难
  • 而B/S结构的客户端把事务处理逻辑部分交给了服务器,由服务器进仃处理,客户端只需要进行显示,这样,将使应用程帛服务器的运行数据负荷较重一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。
3.安全性
  • C/S结构适用于专人使用的系统,可以通过严格的管理派发软件.达到保证系统安全的目的,这样的软件相对来说安全性比较高
  • 而对于B/S结构的软件,由于使用的人数较多,且不固定。相对来说安全性就会低些。 由此可见,B/S相对于C/S来说具有更多的优势,今大量的应用程序开始转移到应用B/S结构, 许多软件公司也争相开发B/S版的件,也就是Web应用程序。随着Internet的发展,基于HTTP协 议和HTML标准的Web应用呈几何数量级的增长,而这些Web应用又是由各种Web技术所开发的。

1.2 Web应用程序的工作原理

Web应用程序大体上可以分为两种,即静态网站和动态网站。早期的web应用主要是静态页面的 浏览,即静态网站。这些网站使用HTML语言来编写,放在Web服务器上,用户使用浏览器通过HTTP协议请求服务器上的Web页面,服务器上的Web服务器将接收到的用户请求处理后,再发送给客户端浏览器,显示给用户。整个过程如图1.3所示

随着网络的发展,很多线下业务开始向网上发展,基于Internet的web应用也变得越来越复杂,用户所访问的资源已不能只是局限于服务器上保存的静态网页,更多的内容需要根据用户的请求动态生成页面信息,即动态网站。这些网站通常使用HTML语言和动态脚本语言(如JSP、ASP或是PHP等)编写,并将编写后的程序部署到Web服务器上,由Web服务器对动态脚本代码进行处理,并转化浏览器可解析的HTML代码,返回给客户端浏览器,显示给用户。整个过程如图1.4所示。

image.png

1.3 Web应用技术

在开发Web应用程序时通常需要应用 客户端服务区 两方面的技术。 客户端 应用的技术主要用于 展现信息内容 ,而 服务器 应用的技术则主要用于进行 业务逻辑的处理数据库的交互 等。

1.3.1 客户端应用的技术
  • HTML语言
  • CSS
  • Flash
  • 客户端脚本技术 HTML语言不区分大小写,这一点与Java不同,例如HTML标记<body></body>也可以写为<BODY></BODY>。 在网中用CSS样式不仅可以 美化页面,而且可以 优化网页速度 。因为CSS样式表文件只是简单的文本格式,不需要安装额外的第三方软件。另外,由于CSS提供了很多还效果从而 避免使用大量的图片 ,这样将 大大缩小文件的体积,提高下载速度。
1.3.2 服务器端应用的技术
  • CGI
  • ASP
  • PHP
  • ASP.NET
  • JSP

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/691065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入浅出设计模式 - 代理模式

博主介绍&#xff1a; ✌博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家✌ Java知识图谱点击链接&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; &#x1f495;&#x1f495; 感兴趣的同学可以收…

qt中c++获取图片qml实时显示的方式1——继承QQuickPaintedItem

通过c opencv获取rtsp视频流&#xff0c;或者视频源&#xff0c;在qml上进行实时视频显示。 一、在QML中通过QQuickPaintedItem动态加载图片 在QML中&#xff0c;可以使用QQuickPaintedItem来创建自定义的可绘制项。通过继承QQuickPaintedItem类&#xff0c;我们可以在QML中动…

这些面试攻略给你2023测试面试带来最强力的支持

在boss和拉钩上投了有几十份简历&#xff0c;其中70%未读状态&#xff0c;30%已读&#xff0c;已读的一半回复要求发送附件简历&#xff0c;然后这周接到面试的有七、八家公司&#xff0c;所以&#xff0c;当前这个大环境真的难 这半个月来&#xff0c;每天安排三到四场面试&a…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第八章 恶意软件概念及防范)【建议收藏】

文章目录 一、自学网络安全学习的误区和陷阱二、学习网络安全的一些前期准备三、自学网络安全学习路线一、恶意软件分类1、分类依据2、获取远程控制权类3、维持远程控制权类4、完成特定业务逻辑类 二、恶意软件运行症状1、查看网络连接2、查看系统进程3、查看隐藏文件 三、恶意…

PACS/RIS医学影像管理系统源码 提供先进图像处理和算法

PACS&#xff08;医学影像存档与通信系统&#xff09;主要应用于医学影像的存储、传输和显示。它可以使医生突破胶片的局限&#xff0c;对病人的影像进行全方位的处理和观察&#xff0c;以便得出更准确的诊断。同时&#xff0c;PACS可以节省大量的胶片&#xff0c;降低成本。医…

定积分与几何应用

定积分与几何应用 何谓定积分&#xff1f; ∫ a b f ( x ) d x \int_a^bf(x)dx ∫ab​f(x)dx需满足 a a a、 b b b有限&#xff08;不是无穷&#xff09;且 f ( x ) f(x) f(x)有界 定积分的计算主要依靠NL公式即牛顿莱布尼茨公式 定积分是否存在于原函数是否存在无关 定积分计…

骑士周游问题及优化

文章和代码已经归档至【Github仓库&#xff1a;https://github.com/timerring/java-tutorial 】或者公众号【AIShareLab】回复 java 也可获取。 文章目录 骑士周游问题算法优化意义经典算法面试题-骑士周游问题马踏棋盘算法介绍 骑士周游问题的解决步骤和思路分析 骑士周游问题…

什么是哈希表

哈希表 目录 哈希表哈希函数哈希碰撞拉链法线性探测法常见的三种哈希结构总结 首先什么是 哈希表&#xff0c;哈希表&#xff08;英文名字为Hash table&#xff0c;国内也有一些算法书籍翻译为散列表&#xff0c;大家看到这两个名称知道都是指hash table就可以了&#xff09;。…

Unity3D:Hierarchy 窗口

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 Hierarchy 窗口 打开 Unity 新项目时的默认 Hierarchy 窗口视图 Hierarchy 窗口显示场景中的每个游戏对象&#xff0c;如模型、摄像机或预制件。 可以使用 Hierarchy 窗口对场景中…

Nginx | 苹果电脑Mac安装和验证Nginx服务过程记录

common wx&#xff1a;CodingTechWork&#xff0c;一起学习进步。 引言 本文主要总结如何在Mac电脑上进行Nginx服务的安装&#xff0c;重点讲解使用brew命令进行安装和验证的过程及问题记录。 安装步骤 安装过程记录 查看nginx信息 首先使用命令brew info nginx进行本机ng…

网络规划工具

对于各种规模的企业和组织来说&#xff0c;应对安全威胁和可靠的网络性能至关重要。战略性地投资有效的网络监控解决方案可以节省时间和成本&#xff0c;减少停机时间并提高员工的生产力&#xff0c;还可以让管理员专注于重要的事情。重要的是要了解&#xff0c;随着业务的增长…

JAVA大作业——网络在线对战游戏——坦克大战

目录 大作业要求 实机演示 主机环回地址布置连接演示 多人联机对战演示 WASD控制坦克移动和按J键发射炮弹攻击 攻击到敌人后会爆炸并且消灭敌人 按下C键设置IP主机连接 大作业要求 简单的小游戏 要求1&#xff1a;能够实现例如贪吃蛇、坦克大战、俄罗斯方块等小游戏&#x…

红帽:多云和AI时代,开放混合云是最优选择

随着云计算市场群雄割据的格局逐渐定型&#xff0c;混合多云的环境已经成为大势所趋。而近年来AI人工智能技术的高速发展&#xff0c;则进一步为技术创新注入了澎湃动力。 那么问题就来了&#xff1a;在这个多云和AI大行其道的时代&#xff0c;企业应该选择什么样的云平台&…

删除PDF页面的10个操作工具方法分享

PDF被广泛用于各种目的&#xff0c;包括共享学术文件、专业报告&#xff0c;甚至个人文件。然而&#xff0c;有时您可能会发现需要从PDF中删除一些页面。虽然有很多付费软件可供选择&#xff0c;但也有很多免费删除PDF页面的方法。在这篇文章中&#xff0c;我们将讨论10种免费删…

这所广东的985录取平均分387分,复录比高达3.5,单科线55分!

一、学校及专业介绍 中山大学&#xff08;Sun Yat-sen University&#xff09;&#xff0c;简称“中大”&#xff0c;位于广东省&#xff0c;位列国家“双一流”、“985工程”、“211工程”&#xff0c;学校由广州、珠海、深圳三个校区&#xff0c;博士后科研流动站44个&#x…

CentOS7安装部署OpenVidu

1&#xff1a;安装Docker 参考&#xff1a;Centos7 安装 Docker_zzhongcy的博客-CSDN博客 2&#xff1a;安装OpenVidu 2.1、OpenVidu 简介 OpenVidu Server&#xff08;openvidu-server)&#xff1a;是openvidu平台的大脑&#xff0c;负责信号层。Kurento Media Server(kms)…

软件测试技能,JMeter压力测试教程,批量注册测试账号(计数器的使用)(十二)

一、前言 当我们jmeter压测的时候&#xff0c;需要准备一批测试账号&#xff0c;可以先批量注册一些用户&#xff0c;这些用户名称按固定格式 注册的用户不能重复并且需要自增&#xff0c;那么可以使用计数器来实现 二、添加注册请求 我想批量注册100个账号&#xff0c;账号…

【uniapp微信小程序footer】不满一屏固定显示在底部,超出一屏随页面滚动

<template><view class"wrapper"><view class"main">...</view><view class"footer">xx智慧农场</view></view > </template> <style>page {height: 100%;}.wrapper {height: 100%;}.ma…

高德地图的使用

JS API 结合 Vue 使用 高德地图 jsapi 下载、引入 npm add amap/amap-jsapi-loaderimport AMapLoader from amap/amap-jsapi-loader 使用2.0版本的loader需要在window对象下先配置 securityJsCode JS API 安全密钥使用 JS API 使用 script 标签同步加载增加代理服务器设置…

不定长(可变) 位置参数 *args和关键字参数 **kwargs 详解

位置参数&#xff1a; 传参时前面不带 "变量名", 顺序不可变, 按顺序赋给相应的局部变量def test(one,two,three):print(one - two * three)test(1,2,3) def test(one,two,three):print(one - two * three)test(3,2,1) 注意位置参数&#xff0c;需要注意 1 、 不…