WEB 基础知识(一)
1. 系统架构
1.1 B/S系统架构
1.2 C/S系统架构

1.3 对比与区别
1.3.1 概述
C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。。
B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种 结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,主要是 利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器 就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。
1.3.2 详述
Client/Server一般是建立在局域网的基础上的.Browser/Server一般是建立在广域网的基础上的.
1.硬件环境不同:
C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.
B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行
2.对安全要求不同
C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.
B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群.
3.对程序架构不同
C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.
B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的asp.net, java的servlet,python的django等.
4.系统维护不同
C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统。对于用户来说C/S升级维护需要重新安装一个程序.
B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 对于用户来说最多是刷新下页面。
5.操作系统不同
C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统
B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小.
6.对本地接口的调用不同
C/S 多是建立的Window平台上,需要对本地API接口操作较多.
B/S 建立在浏览器上,浏览器都会有沙箱,对本地API接口操作必须通过浏览器才可以完成.
7.通讯协议不同
C/S一般是自建通讯协议,大部分是基于TCP或者SOCKET之上重新定义业务通讯协议
B/S 通讯协议是HTTP协议,已经规定好通讯协议,不可改变
2. 前端
指的是浏览器端(B端)的技术,相当于C/S中的C,只是C是固定的(浏览器)
浏览器固定了哪些东西:
- UI的技术:HTML+CSS+JS
- 通讯的协议:HTTP
- 对本地API的操作:上传文件等
B端存在几种常见的浏览器:Chrome,IE,FireFox等。不同的浏览器基于标准实现的具体细节不一样。因此需要考虑浏览器兼容性问题。
3. 后端
需要解决的问题:
- 解析HTTP协议----一般由WEB服务器完成,tomcat等各种(也可以自己写socket,接收http请求,自己封装)
- 业务处理
数据的验证
数据保存 - 页面响应
基本流程是这些,所以抽象出来一些所谓的框架及技术。
java:
> Servlet技术(将HTTP的解析、页面响应与业务处理区分开),分为WEB服务器(Tomcat等)和应用程序(各种war包)
> 页面响应技术: JSP、servlet、freemarker等等
> 业务处理:各种MVC的后端框架(spring mvc、Struts等)
> 数据处理:hibernate、spring jdbc等
python:
> Python Web服务器网关接口(或者缩写为WSGI,读作“wizgy”),将WEB服务器和应用程序分开
> django 业务处理各种等
4. 参考
http://python.jobbole.com/81523/
http://baike.baidu.com/link?url=JE-Xpf-h0uBKCl3wPK9GQQ0U3tqtcql2ra_d1368tdQQ6FOGpiCunES9MYmH6gTfn5IJPJfBlkvP5C82QYHqOSFmW3BUhegxCCq0ixk7VJz-M9CT0YznLBnzCWc-5jCD
http://zhidao.baidu.com/link?url=YK05yEAorh3NkdMX2oA1y6pTwZjCl7qMzCdXPgNCRwbbHYb-V6J7nnF0c_PRpolZbfB-T3cLwrKbO-Aph5f4YXdkFkvm-4SL5AXTdGN-DIy
WEB 基础知识(一)的更多相关文章
- Web基础知识和技术
WEB是一个外延广泛的概念,不单单指网站,乌徒帮专注拥有WEB界面的网站开发,帮助初学者或已经进入开发的朋友们提供参考讨论平台,然而并不一定能将所有的WEB知识讲全讲透,只是能满足初涉者的建站需求,能 ...
- Python全栈开发之17、tornado和web基础知识
一.web基础知识 学习web框架之前,先来看一下web基础知识,首先要明白其本质就是socket,用户对应一个socket客户端,但是如果从socket开始开发web应用程序那么效率太了,正确的做法 ...
- web基础知识,
# web基础 网上冲浪 surfing the Internet weibo.com 域名,主机名,微博服务器的地址名 当用户在地址栏输入一个URL(uniform resource,locator ...
- 语义web基础知识学习
最近找了一本书,<语义web技术基础>----Pascal Hitzler等编著的.因为最近在看关于自然语言处理的一些东西,就顺带翻了一下,做一点学习笔记,方便以后查看. 本书的作者 Pa ...
- Web基础知识
这学期学了Web技术这门课,但对这门课是做什么的.有什么用处并不了解,教材是Asp.net实用网站开发,对我这样的初学者大概是深了一点,所以决定对Web技术的背景知识做下整理. 1.Web工作原理 W ...
- web基础知识通信概述URI与http
1.url是什么,有什么作用: 说白了就是我们常说的网址:正规来说就是统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址. 互联网上的每个文件都有一个 ...
- JavaScript大杂烩0 - WEB基础知识
1. 协议小结:HTTP协议与TCP/IP协议 现代Web应用开发的基础是HTTP协议,那么HTTP协议与我们熟知的TCP/IP协议有什么关系呢? 这个要从网络通信模型说起,简单的说,计算机通信就像两 ...
- web基础知识汇总
HTML&XML 1.JavaWeb的概述 A: 什么是Web----->就是网页或者网站 B: 什么是JavaWeb----->就是使用java语言做web C: 浏览器访问网站 ...
- web基础知识小记
随机推荐
- Xamarin+Prism开发详解六:DependencyService与IPlatformInitializer的关系
祝各位2017年事业辉煌!开年第一篇博客,继续探索Xamarin.Forms… 为什么我做Xamarin开发的时候中意于Prism.Forms框架?本章为你揭晓. 实例代码地址:https://git ...
- MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息
MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二 ...
- 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo
Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...
- 【Java大系】Java快速教程
感谢原作者:Vamei 出处:http://www.cnblogs.com/vamei Java是面向对象语言.这门语言其实相当年轻,于1995年才出现,由Sun公司出品.James Gosling领 ...
- Canvas讲解
1.Canvas是什么? 简单地说canvas是画布,可以进行画任何的线.图形.填充等一系列的操作,而且操作的画图就是js, 提供简单的二维矢量绘图. 2.步骤: <canvas id=&quo ...
- js数组去重几种思路
在一些后台语言中都内置了一些方法来处理数组或集合中重复的数据.但是js中并没有类似的方法,网上已经有一些方法,但是不够详细.部分代码来源于网络.个人总计如下:大致有4种思路 1)使用两次循环比较原始的 ...
- Dynamics CRM 2015-Data Encryption激活报错
在CRM的日常开发中,Data Encryption经常是不得不开启的一个功能.但是有时,我们可能遇到一种情况,Organization导入之后,查看Data Encryption是已激活的状态,但是 ...
- NSURLSession详解
导语 现在NSURLConnection在开发中会使用的越来越少,iOS9已经将NSURLConnection废弃,现在最低版本一般适配iOS7,所以也可以使用. NSURLConnection相对于 ...
- SQL-union
集合运算符是对两个集合操作的,两个集合必须具有相同的列数,列具有相同的数据类型(至少能隐式转换的),最终输出的集合的列名由第一个集合的列名来确定.(可以用来连接多个结果)联合(union)与连接(jo ...
- DevExpress - 使用 GaugeControl 标尺组件制作抽奖程序 附源码
前不久,公司举办了15周年庆,其中添加了一个抽奖环节,要从在读学员中随机抽取幸运学员,当然,这个任务就分到了我这里. 最后的效果如下,启动有个欢迎页面,数据是来自Excel的,点击开始则上面的学号及姓 ...