WEB请求处理之浏览器响应
当我们使用浏览器进行浏览操作的时候,会产生一系列的数据请求。现在浏览器和服务器之间的数据交互是基于B/S架构的,而这种架构是建立在HTTP请求的基础上的,当我们在浏览器的地址栏中输入一个网页的地址后,会触发一些列事件,如下图所示:
以上就是我们访问网页时会触发的一系列事件,也是web请求处理的基本流程,接下来对几个概念详细介绍
TCP协议是OSI七层协议中传输层的一项协议,它是一种面向连接的可靠交付的数据传输协议,和UDP用户数据报协议不同的是,它需要建立连接,并且需要无差错和可靠地交付数据。通过TCP建立连接,需要经过三次握手,关闭TCP连接需要四次挥手。
OSI七层模型中TCP处于的层级位置如图所示
TCP建立连接是为了可靠地传输数据,因此建立过程比较复杂,以确保可靠地传输数据。具体流程如下图所示:
TCP四次挥手
当数据传输成功后需要关闭连接,这就是TCP四次挥手。四次挥手比握手还要复杂,具体流程如下图所示:
在这个过程中,为什么会涉及到四次挥手呢,这是因为在客户端发送主动关闭连接请求时,服务器端收到关闭请求并返回确认收到请求报文,但是服务器不会立即关闭,因为在这个时间段内可能还会有数据传送,服务器端会继续传送数据给客户端,当没有数据传送时,服务器端会主动发送报文给客户端请求关闭,等待客户端返回确认时服务器端就进入了close状态。
从上面的OSI七层模型中我们可以看到HTTP处于七层协议中的应用层,也就是最接近用户的一层。它主要是处理WEB数据请求,它是无状态无连接的协议。无状态是指上一次传送的数据是没有存储下来的,下一次操作获取不到上次的数据。无连接是指需要请求数据时才会建立连接,否则处于无连接状态。在WtEB请求处理过程中,我们主要是关心HTTP请求头和响应头还有就是状态码
下面是使用FIDDLER抓包工具抓取的请求包
CONNECT wwwbaiducom:443 HTTP/11
Host: wwwbaiducom:443
Connection: keep-alive
User-Agent: Mozilla/50 (Windows NT 61; WOW64) AppleWebKit/53736 (KHTML, like Gecko) Chrome/500266194 Safari/53736
人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是多对多的关系,一个ip地址不一定只对应一个域名,且一个域名可以对应多个ip地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。
由于DNS域名解析有些复杂,本文章就不就过多的讲解。
总结:以上就是web请求处理中浏览器响应的相关知识,由于涉及到的 知识太多因此没哟很详细的将解,只将解了部分的重要内容,待到以后学习加深,进一步完善。
如何区分SaaS,B/S,C/S三种不同模式软件
软件是不是你自己写的,如果是,就不是SaaS。
如果是你自己写的,用浏览器访问? 有后台? 如果是, B/S
如果是你自己写的,不用浏览器访问,有后台,有客户端,就是 c/s
SaaS、B/S、C/S三种不同模式软件的区别SaaS是Sofare-as-a-service(软件即服务),是一种随着互联网技术的发展和应用软件的成熟,提供基于互联网的全新的软件服务模式。SaaS提供商为企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务,企业无需购买软硬件、建设机房、招聘IT人员,即可通过互联网使用信息系统。就像打开自来水龙头就能用水一样,企业根据实际需要,向SaaS提供商租赁软件服务。
SaaS软件是继C/S架构软件(Client/Server即客户/服务器,用户端需要安装专用的客户端软件,企业需要部署服务器),和传统B/S架构软件(Brower/Server即浏览器/服务器,用户端上只要安装一个浏览器,企业内部部署服务器)之后,为企业在线提供按需服务的软件应用服务模式(用户端也是采用浏览器,但企业无需部署服务器)。SaaS软件目前已成为软件产业的一个重要力量,是软件科技发展的趋势。目前来说,龙头企业是北森。北森是中国最大的SaaS人才管理软件云服务供应商,拥有国内唯一覆盖人才测评、招聘管理、绩效管理、继任与发展、360度评估反馈、员工调查等业务的一体化人才管理软件平台。历经10余年,北森服务了4500余家企业、上千万员工,日处理十余万人才数据,已成为国内人才测评、招聘管理系统和继任管理系统领域的绝对领导者。
在管理软件的范畴里,C/S和B/S两种模式,哪种好一些?近两年来,对于B/S、C/S两种结构的软件的优劣,国内基本已经达成共识,普遍认为B/S结构软件将全面取代C/S结构软件。 C/S结构软件(即客户机/服务器模式)分为客户机和服务器两层,客户机不是毫无运算能力的输入、输出设备,而是据有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。由于服务器连接个数和数据通信量的限制,这种结构的软件适于在用户数目不多的局域网内使用。国内目前的大部分ERP(财务)软件产品即属于此类结构。
B/S(浏览器/服务器模式)是随着Inter技术的兴起,对C/S结构的一种改进。在这种结构下,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在Web服务器实现,客户端只需要浏览器即可进行业务处理,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构。
1,数据安全性比较。由于C/S结构软件的数据分布特性,客户端所发生的火灾、盗抢、地震、病毒、黑客等都成了可怕的数据杀手。另外,对于集团级的异地软件应用,C/S结构的软件必须在各地安装多个服务器,并在多个服务器之间进行数据同步。如此一来,每个数据点上的数据安全都影响了整个应用的数据安全。所以,对于集团级的大型应用来讲,C/S结构软件的安全性是令人无法接受的。对于B/S结构的软件来讲,由于其数据集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也无需进行什么数据同步,所以这些安全问题也就自然不存在了。
2,数据一致性比较。在C/S结构软件的解决方案里,对于异地经营的大型集团都采用各地安装区域级服务器,然后再进行数据同步的模式。这些服务器每天必须同步完毕之后,总部才可得到最终的数据。由于局部网络故障造成个别数据库不能同步不说,即使同步上来,各服务器也不是一个时点上的数据,数据永远无法一致,不能用于决策。对于B/S结构的软件来讲,其数据是集中存放的,客户端发生的每一笔业务单据都直接进入到中央数据库,不存在数据一致性的问题。
3,数据实时性比较。在集团级应用里,C/S结构不可能随时随地看到当前业务的发生情况,看到的都是事后数据;而B/S结构则不同,它可以实时看到当前发生的所有业务,方便了快速决策,有效地避免了企业损失。
4,数据溯源性比较。由于B/S结构的数据是集中存放的,所以总公司可以直接追溯到各级分支机构(分公司、门店)的原始业务单据,也就是说看到的结果可溯源。大部分C/S结构的软件则不同,为了减少数据通信量,仅仅上传中间报表数据,在总部不可能查到各分支机构(分公司、门店)的原始单据。
5,服务响应及时性比较。企业的业务流程、业务模式不是一成不变的,随着企业不断发展,必然会不断调整。软件供应商提供的软件也不是完美无缺的,所以,对已经部署的软件产品进行维护、升级是正常的。C/S结构软件,由于其应用是分布的,需要对每一个使用节点进行程序安装,所以,即使非常小的程序缺陷都需要很长的重新部署时间,重新部署时,为了保证各程序版本的一致性,必须暂停一切业务进行更新(即“休克更新”),其服务响应时间基本不可忍受。而B/S结构的软件不同,其应用都集中于总部服务器上,各应用结点并没有任何程序,一个地方更新则全部应用程序更新,可以做到快速服务响应。
6,网络应用限制比较。C/S结构软件仅适用于局域网内部用户或宽带用户(1兆以上);而我们的B/S结构软件可以适用于任何网络结构(包括288K拨号入网方式),特别适于宽带不能到达的地方
C/S模式的软件对,没有服务端做处理,要客户端做什么?
做成B/S结构多好? 看是干什么用?
哪种软件用C/S方式,B/S方式,P2P方式c/s是指客户端与服务器交互,比如说QQ,豌豆荚,迅雷,快播,大型网游等
b/s是指浏览器与服务器交互,典型的有webQQ,微博,购物网站,论坛,网页游戏等。
1、 云计算机的计算模式为?() A、 W/S B、 C/S C、 B/S D、 B/C
云计算是一个虚拟的计算资源池,它通过互联网提供给用户使用资源池内的计算资源,它代表了信息技术及其基础架构的发展方向,它的出现必将在不远的将来展示出强大的生命力,并将从多方面影响企业的发展。
质安通软件是b/s 还是c/s建议用BS,BS维护方便、只要能上网可以再任何地方用 CS不具有这种优势,BS是大势所趋
什么模式是c/s、b/s和p2p计算C/S是客户端/服务器模式。b/s是浏览器/服务器模式。P2P是点对点模式。
打个比方:c/s模式中,服务器(s)是大众情人。你们每个人(C)只能和她谈恋爱。
b/s模式中,服务器(s)还是大众情人。你们每个人必须使用固定工具(浏览器B)和她谈恋爱。
P2P模式,大家乱搞。
怎么看系统用的是B/S模式还是C/S模式?C/S是Client/Server中文意思:客户端/服务器。
B/S是Brower/Server中文意思:浏览器/服务器。
理解以上两句话就好办了。
凡是通过浏览器运行的程序就是B/S。
需要下载到本地安装的程序就是C/S。
文件服务器模式与客户机/服务器模式(c/s)与浏览器模式(B/s)的异同cs模式要求客户端必须要有相应的程序,来连接服务端
bs客户端只要有浏览器即可通过web访问服务器
他们对于网络依靠不同:cs一旦掉线必须重新启动程序才可,而bs则随时能连接上,对于操作远程数据来讲cs要比bs慢好多啊。
cs的进程锁好烦人的,动不动就是被锁死,不能同时修改一条数据啊,bs的数据记录不像cs那样每个终端都可以装一个数据库来记录,操作起来比较麻烦些
html5的离线web应用的浏览器和服务器交互的过程要是没有缓存就需要每次交互都要实时接口调用,增加网络开销。
一、离线存储的作用
1、用户可离线访问应用,这对于无法随时保持联网状态的移动终端用户来说尤其重要
2、用户访问本地的缓存文件,通常意味着更快的访问速度
3、仅仅加载被修改过的资源,避免同一资源对服务器多次的请求,大大降低了对服务器的访问压力
二、实现离线存储
1、在html标签里通过manifest属性引用一个cachemanifest文件,该文件里声明了浏览器需缓存的所有资源文件,如下所示:
<!DOCTYPE html>
<html lang='cn' manifest='cachemanifest'>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>离线缓存示例页面</title>
<!-- CSS文件引用 -->
</head>
<body>
<!-- 各种标签 -->
</body>
<!-- 各种脚本文件 -->
</html>
2、关于cachemanifest的定义
CACHE MANIFEST
# 注释:需要缓存的文件,无论在线与否,均从缓存里读取
chchedjs
cachedcss
# 注释:不缓存的文件,无论缓存中存在与否,均从新获取
NETWORK:
uncachedjs
uncachedcss
# 注释:获取不到资源时的备选路径,如indexhtml访问失败,则返回404页面
FALLBACK:
indexhtml 404html
有post和get两种方式
GET通常是值传递,如密码等,并且限制传值的大小,不能超过2k
POST是表单传递,action到一个地方写入数据库。 而post不限制传值的大小,所以一般都用post而不用get ,但是get方法和post方法得到、的结果是一样的。
做了一次复制党哦。
浏览器与web服务器之间的交互
1. 浏览器查询本地的hosts文件看是否有与所输入主机名相匹配的ip地址,如果有则根据ip连接上web服务器;如果没有则访问DNS服务器获得与主机名对应的ip然后跟据ip连接上web服务器
2. 向服务器发送HTTP请求
3. Web服务器从请求中检索出浏览器想访问的主机名wwwniaoyuncom
4. Web服务器从请求中检索出浏览器想访问的web应用
5. Web服务器从请求中检索出浏览器想访问的web资源
6. Web服务器读取web资源的数据
7. Web服务器回送http相应
8. 浏览器从响应中解析出数据,显示给用户
0条评论