本文共 1399 字,大约阅读时间需要 4 分钟。
目前大部分的项目都采用了B/S网络架构,那么接下来我们就了解一下B/S网络架构的知识。
一、B/S网络架构的有点:
a) 客户端使用统一的浏览器(Browser);
b) 服务器(Server)使用统一的HTTP。
二、B/S架构简述:
a) B/S网络架构,前端和后端都采用统一的HTTP应用协议来交互数据;
b) HTTP采用无状态的短链接通信方式(即一次请求完成一次数据交互,然后这次通信就断了,而传统的C/S应用,多采用长链接的交互模式),这种短链接的有点是:可以同时服务更多的客户。
三、B/S网络架构设计及请求步骤:
a) 目前的B/S架构多采用图一的架构
a) 用户在浏览器输入url,然后回车,发生以下请求步骤:
i. 首先,请求DNS服务器,将域名解析成IP地址;
ii. 浏览器根据这个IP地址在互联网上找到对应的服务器;
1. 服务器端大致有以下两种操作:
a) 服务器端有一个均衡负载设备来平均分配用户请求
b) 请求的数据可能存放在三个地方:
i. 分布式缓存里;
ii. 静态文件中;
iii. 数据库中。
iii. 服务器数据返回到浏览器,解析展示;(如果发现还有一些静态资源,如css,js,img等,这些静态资源一般存放在CDN服务器中,因此浏览器继续发起新的http请求,到DNS服务器上请求需要的静态资源)
二、B/S架构需遵守的原则
a) 互联网上所有的资源都需要用一个URL来表示;
b) 与服务器交互必须基于HTTP协议;
c) 数据展示必须在浏览器中进行。
一、发起一个http请求建立一个socket连接相似,不同的是outputStream.write()中写入的二进制字节数格式要符合http规则。
二、一个http请求的具体步骤:
a) 用户在浏览器输入一个域名,回车,先到DNS服务器将这个域名解析为对应的IP;
b) 然后这个IP+默认80端口,与远程服务器建立连接;
c) 组装一个get类型的http请求头;
d) 通过outputStram.write()发送到目标服务器;
e) 浏览器等待inputStream.read()读取到数据;
f) 断开连接。
总结:发起一个http请求的过程就是一个简历socket的过程。
http解析
1、 B/S架构中的核心是http ,http解析中最重要的是http Header ;
2、 http header控制着用户数据的传输、浏览器的渲染和服务器的逻辑执行;
工具
在浏览器中查看http请求信息的工具
1、 firefox火狐,有两个查看工具
a) firebug
b) Httpfox(信息更全)
2、 Chrom浏览器(F12查看)
3、 IE浏览器(F12查看)
缓存机制
1、 缓存有两种情况;
a) 浏览器端缓存
b) 服务器端缓存(服务器前段部署一个缓存服务器[Varnish代理])
2、 解决缓存
a) 在浏览器端,使用Ctrl+F5组合键刷新页面,这个操作会告诉页面,此次请求需要最新的页面,不要给我缓存数据(在http的请求头中会增加两个参数Pragma和Cache-Control)
b) Pragma和Cache-Control这两个请求头用于指定所有的请求机制在整个请求/响应中的必须服从的指令;这两个参数可选值如图: