深入web请求过程

      随着网络的发展,互联网的网络已经由传统的C/S架构转变为更加方便快捷的B/S架构。

  一、B/S架构的好处:

(1)客户端使用了统一的浏览器。

(2)服务端基于统一的HTTP,使用统一的http也为服务提供商简化了开发模式,使得服务器开发者可以采用相对规范的开发模式。

二、B/S网络架构概述

        B/S网络架构从前端到后端都的到了简化,都基于统一的应用层协议http来交互数据,与大多数C/S互联网应用程序采用的长连接的交互模式不同,http采用无状态的短连接,并且能够同时服务更多的用户。

         当用户在浏览器输入一个URL的时候,发生的 操作为:

(1)DNS把这个请求域名解析为对应的 IP地址;

(2)根据这个IP地址找到 对应的服务器;

(3)向服务器发起请求,然后这个服务器返回相应的数据;

注:在服务器端还有很多业务逻辑:服务器可能 有很多台,到底由那台服务器来处理请求,这就需要一个 负载均衡设备来平均分配所有用户的请求;还有请求的数据是储存在分布式缓存里还是一个静态文件里,或是在数据库里;当请求返回浏览器时,浏览器解析数据发现还有一些静态资源时又会发起另外的http请求,这些请求很可能会发生在CDN上,然后CDN处理请求。

三、如何发起一个请求:

      发起一个http请求的过程实际上就是建立一个Socket的过程;

      浏览器在建立Socket之前,必须根据 地址栏里面输入的URL的域名解析出 IP地址,再根据这个IP地址和默认的80端口与远程服务器建立Socket连接,然后浏览器根据这个URL组装成 一个get类型的http请求头,通过outputStream.write发送到目标服务器,服务器等待inputStream.read返回数据,最后断开这个连接。

B/S网络架构的核心是HTTP。

四、DNS域名解析

(1)浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,若有,这个解析过程结束;浏览器缓存大小和时间都有限制,域名被缓存的时间限制可以通过TTL属性来限制。

(2)操作系统会有一个域名解析的过程,在WIndows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,可以将任何域名解析到任何能够访问的IP地址

流程:Local DNS Server ——>gTLD——>Name Server

(3)域名解析记录主要分为A记录、MX记录、CNAME记录、NS记录、和TXT记录

          #A记录可以将多个域名解析到一个IP地址,但是不能将一个域名解析到多个IP地址

五、CDN工作机制

CDN也就是内容分布网络,它是构筑在Internet的一种先进的流量分配网络。

CDN = 镜像+缓存+整体负载均衡

CDN具有 可扩展、安全性、可靠性、响应和执行

CDN架构
六、负载均衡

       负载均衡就是对工作任务进行平衡、分摊到多个操作单元上执行,多个服务器协作共同完成任务。

       负载均衡架构一般为:链路负载均衡、集群负载均衡和操作系统负载均衡;

        负载均衡是由DNS的解析来完成的,这种DNS的解析的优点是用户会直接 访问目标服务器,而不需要经过其他服务器,通常访问速度会更快;缺点是:DNS在用户本地和Local DNS Server 都有缓存,一旦某台Web Server 挂掉,就很难及时更新用户的域名解析结构。

集群负载均衡包括硬件负载均衡和软件负载均衡。

猜你喜欢

转载自taoyongpan.iteye.com/blog/2359374