B/S系统的前台和后台数据转递机制探究
作者:朱金灿
来源:http://blog.csdn.net/clever101
说实话写这篇文章超出了我的能力范围之外(因为我并没有多少Web开发经验),我所期待的是能起一个抛砖引玉的作用——希望高手来指出我的错误,让我也学到正确的知识。之前我一直在思考这样一个问题:一个网站的前台和后台是如何进行数据传递的呢?即前台如何把用户的输入传递给后台,后台又是如何把处理结果发送回前台,比如你登录google网站,输入一个关键字,google网站如何把你输入的关键字传递给后台,然后后台根据你输入的关键字经过处理后得到搜索结果,又是如何把搜索结果发送回前台从而呈现给用户面前的呢?
今天向一个同事抛出了这个问题,感到大致明白了这一过程。B/S系统其实也是采用传统的分层架构的,分为不同的层次,需要不同的语言来配合开发的。我把网站开发所需要的语言归纳为下表:
|
层次及开发语言 |
功能 |
备注 |
|
静态页面层,开发语言语言:html |
描述网页元素,就是你所看到的网页的样子 |
|
|
脚本逻辑层,开发语言:Javascript或Jscipt等 |
客户端的一些简单的逻辑处理,比如输入验证等 |
|
|
事务处理层,开发语言:C#、Java和php等 |
服务器端的事务逻辑处理 |
|
|
后台处理层,开发语言:C/C++等 |
服务器端的后台数据处理 |
不是所有的B/S系统都有这一层 |
一个人从登录网站输入数据到看到处理结果是这样一个流程呢?它大致是这样的:
看完上面的流程图,可能你和一样还有很多疑问:
比如,为什么需要Javascript或Jscipt这一层,直接把用户输入的数据直接提交给服务端处理岂不是更省事吗?这是因为服务器端的计算资源是很宝贵的,比如你输入一个E_mail地址,它的格式是否正确就完全可以在客户端的Javascript这一层进行判断,何须劳烦服务器端呢?这样做是为了减轻网络负担和服务器端的负担。
比如html网页是如何和C#、Java和php编写的代码绑在一起的呢?原来html网页可以指定C#、Java和php的编写的处理代码文件(jsp、php之类的)。
比如C#、Java和php编写的处理程序又是如何把用户数据传递给由C/C++编写的服务器后台处理程序的呢?方式有很多种,假如是Windows服务器的,可以考虑进程内的调用COM组件(这样做的优点是方便传输数据,缺点是安全性不好,比如容易遭受到缓冲区攻击之类的),也可以进程间调用,比如用shell命令直接起一个进程(优点是调用方便,缺点是比如linux服务器的话需要一定的授权)。也可以采用网络通信的方面,比如Java这边起一个socket,C/C++这边起一个socket接受数据进行处理。
比如C/C++编写的服务器后台处理程序又是如何把处理结果送回前台的呢?网站早存在一个空的处理结果页面,C/C++编写的服务器后台处理程序可以把处理结果填充到这个处理结果页面中。至于如何填充的细节还有待研究。
B/S系统的前台和后台数据转递机制探究的更多相关文章
- js前台与后台数据交互-前台调后台
转自:http://blog.csdn.net/wang379275614/article/details/17033981 网站是围绕数据库来编程的,以数据库中的数据为中心,通过后台来操作这些数 ...
- Django模板系统(非常详细)(后台数据如何展示在前台)
前面的章节我们看到如何在视图中返回HTML,但是HTML是硬编码在Python代码中的这会导致几个问题:1,显然,任何页面的改动会牵扯到Python代码的改动网站的设计改动会比Python代码改动更频 ...
- js前台与后台数据交互-后台调前台(后台调用、注册客户端脚本)
转自:http://blog.csdn.net/wang379275614/article/details/17049721 客户端脚本一般都在前台,这里讲的是(1)在后台调用前台定义的脚本(2)在后 ...
- js前台与后台数据交互
客户端脚本一般都在前台,这里讲的是(1)在后台调用前台定义的脚本(2)在后台如何注册客户端脚本 用途 何时使用服务器代码向页中添加客户端脚本: u 当客户端脚本的内容依赖于直到运行时才可用的信息时 u ...
- 一、JSP、servlet、SQL三者之间的数据传递(前台与后台数据交互)
背景: 目前业界很流行的MVC(model-view-control)开发模式,理解为 模型是Bean, 视图是 Html/Jsp, 控制是Servlet, 关联数据库的Dao web的运行机制: 数 ...
- 二、JSP、servlet、SQL三者之间的数据传递(前台与后台数据交互)
2.收信息来到表单提交时URL所指向的servlet文件,获取传递过来的参数值
- java中产品分类返回给前台页面 后台数据组装
public ResultBean getSpfl(Integer yyb) { ResultBean res = new ResultBean(); try { JSONArray data = n ...
- C# 前台和后台POST提交信息的实现方法
一.系统A(官网)与系统B(第三方支付平台)数据交换的方式 1.1 页面浏览器方式:系统A以构造Form表单的方式,通过系统A客户的浏览器重定向到系统B(向系统B发送请求),B系统完成交易后,将交易 ...
- 前台返回json数据的常用方式+常用的AJAX请求后台数据方式
我个人开发常用的如下所示: 之所以像下面这样下,一是前台Ajax,二是为安卓提供接口数据 现在常用的是返回JSON数据,XML的时代一去不复返 JSON相对于XML要轻量级的多 对JSON不是十分熟悉 ...
随机推荐
- 洛谷 P1341 无序字母对(欧拉回路)
题目: 解题思路: 我好菜啊!! 首先可以n2搞定,而对于每个点,又可以在当前不优的状态下将不好的状态拼到后面. 最后回溯搞定. 代码: #include<cstdio> #include ...
- BZOJ3674可持久化并查集(模板)
没什么可说的,就是一个可持久化线段树维护一个数组fa以及deep按秩合并好了 注意一下强制在线 蒟蒻的我搞了好长时间QAQ 贴代码: #include<cstdio> #include&l ...
- numpy_basic2
# 六.numpy的常用函数 1. 读取文件 逻辑上可被解释为二维数组的文本文件: 数据项1<分隔符>数据项2<分隔符>...<分隔符>数据项n numpy.loa ...
- Windows下多个Mysql实例配置主从
序: 网上有很多类似的文章,也是各种百度出来的,但是对于多数刚开始接触MYSQL主从的小白来说,网上文章的代码里面很多技术点都没有理解,有跌打误撞碰上的,但多数都是这篇文章卡主了,换篇文章接着 ...
- 开源课程管理系统(CMS):Moodle
开源课程管理系统(CMS):Moodle 一.总结 1.php开发的cms,可借鉴参考用 二.Moodle(百度) Moodle(Modular Object-Oriented Dynamic Lea ...
- HTML基础第六讲---表格
转自:https://i.cnblogs.com/posts?categoryid=1121494 上一讲,讲了关于<控制表格及其表项的对齐方式>,在这里我要讲讲表格及其属性 ,然后大家在 ...
- Android Service com.android.exchange.ExchangeService has leaked ServiceConnection
启动Android项目的时候,clean Project的时候,报错: android.app.ServiceConnectionLeaked: Service com.android.exchan ...
- Q13.cocoapod_卡在“analyzing_depengcies”问题解决
Q13.CocoaPod 卡在"analyzing depengcies"问题解决 问题描写叙述: 当进入到项目目录后,pod init一个Podfile,然后键入你要的库连接信息 ...
- Could not find action or result: There is no Action mapped for namespace [/] and action name [GetG
Could not find action or result: /car/GetGpsDataAction There is no Action mapped for namespace [/] ...
- 芯片TPS76030、TPS76032、TPS76033、TPS76038、TPS76050 电源芯片
下图是从网上摘出来的图片:TPS76033 它的作用就是改变电压: 输入电压:3.5V到16V 通过芯片的处理后 输出电压:3.3V 要学会看图,从中提取有用的信息 再看一个数据手 ...