Web程序工作原理详解


Posted in PHP onDecember 25, 2014

1.Web程序工作原理

(1)Web一词的含义

Network:【计算机】电脑网络,网

Web:【计算机】万维网(WorldWideWeb),互联网(Internet)

Web程序,顾名思义,即工作在Web上的程序。

(2)单机程序工作原理

单机,即不连接到其他计算机的计算机,不在网络中。例如:两单机A、B,只在A上安装有程序X,若要在B上得到X的运行结果,则必须在B上安装一遍X,然后运行。若B类的计算机比较多,则需要逐一安装运行。它们之间不能直接进行通信和协作。如图1所示。

Web程序工作原理详解

(3)客户机/服务器程序工作原理

将单机连成网络,如将A与B连成网络,则可以使它们之间提供服务,如A向B提供服务。常见的服务是文件共享,FTP文件下载等。我们把提供(响应)服务的计算机称作服务器(Server),接受(请求)服务的计算机称作客户机(Client),也叫工作站(Workstations)。客户机/服务器程序的工作原理如图2所示。

Web程序工作原理详解

服务器和客户机的角色可以转换。一台计算机,可以对自己提供服务,这时它既是服务器,也是客户机。如,计算机A把自己的文件夹a共享,然后在网络上找到A,则可以下载a,即自己对自己提供了服务,自己请求并响应了服务。

客户机/服务器的这种计算机间的协作方式,称为C/S方式,或C/S架构。

C/S程序分为两部分:服务器端和客户机端,分别称为服务器端程序(或服务程序)和客户端程序(或客户程序)。对于客户端程序,对每一个客户机,也都要分别安装,这一点与单机程序的分发相同,也很麻烦。但是,安装好了客户端程序后,就可以通过通信线路与服务器交互,或通过服务器,与其他客户机通信。典型的例子是大家常用的聊天程序QQ,如图3所示。

Web程序工作原理详解

(4)浏览器/服务器程序工作原理

若通过客户机中的浏览器(Browser),向服务器发出请求,接收其响应的结果,那么,这时,我们称这样的协作方式为B/S方式,或B/S架构,其工作原理如图4所示:

Web程序工作原理详解

这时,客户端程序就是浏览器,而浏览器的安装是随着操作系统的安装完成的,不需要用户额外安装。对他们而言,使用B/S程序(如上网看新闻,收发电子邮件),可不需要安装专门的客户端程序,直接在浏览器中操作即可。这使得B/S程序的维护十分方便,因为不用管客户端程序,只要维护好服务器端程序即可。

(5)C/S、B/S服务器的组成

服务器,是担负服务任务的机器。这些服务任务由一般专门的软件来完成。一般地,把具有某种服务功能的服务器软件及其所在的机器,都统称为XX服务器(XX表示某种具体服务)。这些软件可以集中于一台机器中(如图5),这样的机器可以称为集中式服务器;也可以单独存在于某台机器中(如图6),这样的机器可以称为独立式服务器,多个独立式服务器可组成服务器群或矩阵。

Web程序工作原理详解

Web程序工作原理详解

按照服务任务,常见的几种服务器软件如表 1 所示。

Web程序工作原理详解

服务器端脚本:用服务器端编程语言编写的程序。

服务器端编程语言:只运行在服务器端,被服务器所解释和执行的编程语言,如PHP语言。

(6)B/S程序工作的具体过程(如图7)

Web程序工作原理详解

(7)PHP程序工作的具体过程

具体过程是Apache、PHP、浏览器之间的协作过程:

用户通过浏览器向服务器请求PHP文件(如在地址栏输入:http://localhost/index.php),Apache在服务器上用户文档发布目录下查找浏览器所请求的PHP文件,若找不到,则向浏览器返回错误信息,否则,将其提交给PHP解释器解释执行,PHP解释器对该PHP文件进行语法分析,若发现语法错误,则经Apache返回错误信息(以浏览器能识别的代码表示)到浏览器,否则执行该PHP程序(可能包含对数据库MySQL的操作),将PHP程序执行结果(以浏览器能识别的代码表示)经Apache返回到浏览器,浏览器对返回结果进行解释、执行,执行的结果显示在浏览器窗口中。

如果浏览器所请求的文件不是PHP文件,而是HTML文件或JavaScript文件。该过程将简化:Apache在服务器上用户文档发布目录下查找浏览器所请求的HTML文件或JavaScript文件,若找不到,则向浏览器返回错误信息,否则,将其返回给浏览器,浏览器对返回的结果进行解释、执行,执行的结果显示在浏览器窗口中。

2.浏览器工作过程

(1)Web客户端工作过程

任何应用系统都必须有一个提供用户操作的界面,即用户界面。浏览器的工作,从整个B/S程序来看,是用户与B/S程序打交道的一个界面(接口)。它的任务是:

A.收集用户输入的数据

B.将用户数据发送到服务器

C.接收服务器返回的响应

D.解释,执行这些代码

可见,浏览器扮演的是服务器在用户那里的一个代理(Agent)的角色。这个代理,具有收集消息,请求响应和解释服务器发回的指示的作用。

(2)Web客户端代码

无论是组织用于收集用户数据的界面,还是解释来自服务器的指示形成结果界面,都是用Web客户端代码实现的。常用的Web客户端代码有HTML语言、JavaScript语言、CSS、XML等语言。

3.HTML工作原理

(1)HTML简介

HTML:HyperTextMarkupLanguage,超文本标记语言。

20世纪80年代末,在欧洲粒子物理实验室(CERN:theEuropeanLabloratoryforParticlePhysics)工作的TimBerners-Lee(WWW之父)通过研究发现:人们视觉处理是以页为基础的。于是他得出一个结论:电子资料应以页的方式呈现。以此为出发点,他使用超文本为中心的管理方式来组织网络上的资料,并提出了建立存取与浏览网页的方法:建立了超文本标记语言;设计了超文本传输协议(HTTP:HypertextTransportProtocol),用于获取超链接文件;使用统一资源定位器(URL:UniformResourceLocator)来定位网络文件、站点或服务器。

(2)HTML工作原理

HTML本质上不是程序语言,而是一种标记语言。所谓标记,在有的书上也叫标签,从面向对象的角度而言,就是对浏览器对象的标识的意思。它用来控制文字、图片等浏览器的子对象在浏览器中的表现,以及如何建立文件之间链接的标记。这些标记均放在文本格式的文件中。而程序与之最大的不同,就是可用来控制操作系统或应用程序执行并完成某项作业。超文本标记语言的文档应该尽量做到,从形式上看,无论在任何操作系统的任何浏览器上打开都具有相同的效果。

(3)HTML的基本结构

A.版本声明,即序(Prologue)

B.头部(Head)

C.主体(Body)

PHP 相关文章推荐
建立动态的WML站点(一)
Oct 09 PHP
PHP实现用户认证及管理完全源码
Mar 11 PHP
php学习笔记 类的声明与对象实例化
Jun 13 PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 PHP
PHP判断浏览器、判断语言代码分享
Mar 05 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
XHProf报告字段含义的解析
May 17 PHP
PHP+iframe图片上传实现即时刷新效果
Nov 18 PHP
Python中使用django form表单验证的方法
Jan 16 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
thinkPHP+LayUI 流加载实现功能
Sep 27 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
May 02 PHP
php更新mysql后获取改变行数的方法
Dec 25 #PHP
php常见的魔术方法详解
Dec 25 #PHP
php利用scws实现mysql全文搜索功能的方法
Dec 25 #PHP
php中heredoc与nowdoc介绍
Dec 25 #PHP
php中实现xml与mysql数据相互转换的方法
Dec 25 #PHP
推荐5款跨平台的PHP编辑器
Dec 25 #PHP
主流PHP框架的优缺点对比分析
Dec 25 #PHP
You might like
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
PHP网络操作函数汇总
2015/05/18 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
获取鼠标在div中的相对位置的实现代码
2013/12/30 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
JS、DOM和JQuery之间的关系示例分析
2014/04/09 Javascript
jQuery使用hide方法隐藏元素自身用法实例
2015/03/30 Javascript
js结合正则实现国内手机号段校验
2015/06/19 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
Python合并2个字典成1个新字典的方法(9种)
2019/12/19 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
高三英语教学反思
2014/01/13 职场文书
新法人代表任命书
2014/06/06 职场文书
中秋节寄语2015
2015/03/24 职场文书
与死神共舞观后感
2015/06/15 职场文书
2015年暑期社会实践报告
2015/07/13 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python