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是固定的(浏览器)

浏览器固定了哪些东西:

  1. UI的技术:HTML+CSS+JS
  1. 通讯的协议:HTTP
  2. 对本地API的操作:上传文件等

B端存在几种常见的浏览器:Chrome,IE,FireFox等。不同的浏览器基于标准实现的具体细节不一样。因此需要考虑浏览器兼容性问题。

3. 后端

需要解决的问题:

  1. 解析HTTP协议----一般由WEB服务器完成,tomcat等各种(也可以自己写socket,接收http请求,自己封装)
  2. 业务处理
    数据的验证
    数据保存
  3. 页面响应

基本流程是这些,所以抽象出来一些所谓的框架及技术。
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 基础知识(一)的更多相关文章

  1. Web基础知识和技术

    WEB是一个外延广泛的概念,不单单指网站,乌徒帮专注拥有WEB界面的网站开发,帮助初学者或已经进入开发的朋友们提供参考讨论平台,然而并不一定能将所有的WEB知识讲全讲透,只是能满足初涉者的建站需求,能 ...

  2. Python全栈开发之17、tornado和web基础知识

    一.web基础知识 学习web框架之前,先来看一下web基础知识,首先要明白其本质就是socket,用户对应一个socket客户端,但是如果从socket开始开发web应用程序那么效率太了,正确的做法 ...

  3. web基础知识,

    # web基础 网上冲浪 surfing the Internet weibo.com 域名,主机名,微博服务器的地址名 当用户在地址栏输入一个URL(uniform resource,locator ...

  4. 语义web基础知识学习

    最近找了一本书,<语义web技术基础>----Pascal Hitzler等编著的.因为最近在看关于自然语言处理的一些东西,就顺带翻了一下,做一点学习笔记,方便以后查看. 本书的作者 Pa ...

  5. Web基础知识

    这学期学了Web技术这门课,但对这门课是做什么的.有什么用处并不了解,教材是Asp.net实用网站开发,对我这样的初学者大概是深了一点,所以决定对Web技术的背景知识做下整理. 1.Web工作原理 W ...

  6. web基础知识通信概述URI与http

    1.url是什么,有什么作用: 说白了就是我们常说的网址:正规来说就是统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址. 互联网上的每个文件都有一个 ...

  7. JavaScript大杂烩0 - WEB基础知识

    1. 协议小结:HTTP协议与TCP/IP协议 现代Web应用开发的基础是HTTP协议,那么HTTP协议与我们熟知的TCP/IP协议有什么关系呢? 这个要从网络通信模型说起,简单的说,计算机通信就像两 ...

  8. web基础知识汇总

    HTML&XML 1.JavaWeb的概述 A: 什么是Web----->就是网页或者网站 B: 什么是JavaWeb----->就是使用java语言做web C: 浏览器访问网站 ...

  9. web基础知识小记

随机推荐

  1. 菜鸟学Struts2——Actions

    在对Struts2的工作原理学习之后,对Struts2的Action进行学习.主要对Struts2文档Guides中的Action分支进行学习,如下图: 1.Model Driven(模型驱动) St ...

  2. ajax

    常见的HTTP状态码状态码:200 请求成功.一般用于GET和POST方法 OK301 资源移动.所请求资源移动到新的URL,浏览器自动跳转到新的URL Moved Permanently304 未修 ...

  3. 【原创分享·微信支付】 C# MVC 微信支付教程系列之公众号支付

    微信支付教程系列之公众号支付         今天,我们接着讲微信支付的系列教程,前面,我们讲了这个微信红包和扫码支付.现在,我们讲讲这个公众号支付.公众号支付的应用环境常见的用户通过公众号,然后再通 ...

  4. Tesseract-OCR字符识别简介

    OCR(Optical Character Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程.Tesseract:开源的OCR识别引擎,初期Tesseract引擎 ...

  5. spring注解源码分析--how does autowired works?

    1. 背景 注解可以减少代码的开发量,spring提供了丰富的注解功能.我们可能会被问到,spring的注解到底是什么触发的呢?今天以spring最常使用的一个注解autowired来跟踪代码,进行d ...

  6. [转]Patch文件结构详解

    N久不来 于是不知道扔在哪儿于是放这里先 如果你觉得碍事的话 帮我扔到合适的版块去.. 导读这是一篇说明文 它介绍了标准冒险岛更新文件(*.patch;*.exe)的格式文章的最后附了一段C#的参考代 ...

  7. 云瓣影音网站&&微信端(已开源)

    随着该项目的发布到线上(小打小闹),即将又要开启另一段崭新的旅程.强迫自己停下来写写所学所得,个人认为总结和分享是一种很棒的学习方式.那让我们先来瞧瞧项目长的什么样.如果着急要源码的朋友,可以下拉到最 ...

  8. windows下 安装 rabbitMQ 及操作常用命令

    rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rab ...

  9. 来自于微信小程序的一封简讯

    9月21晚间,微信向部分公众号发出公众平台-微信应用号(小程序)的内测邀请,向来较为低调的微信在这一晚没人再忽视它了. 来自个人博客:Damonare的个人博客 一夜之间火了的微信应用号你真的知道吗? ...

  10. Autofac - 属性注入

    属性注入不同于通过构造函数方式传入参数. 这里是通过注入的方式, 在类创建完毕之后, 资源释放之前, 给属性赋值. 这里, 我重新弄一些类来演示这一篇吧. public class ClassA { ...