B/S架构大概说明////网络请求大概过程

深入web请求过程

1.B/S网络架构概述

B/S架构,浏览器/服务器 模式。

浏览器具有统一性,他不需要特殊的配置和网络连接,有效的屏蔽了不同服务商提供给用户服务的差异性。

服务器是基统一的http协议的。http协议是一种网络连接通信的规范。由于都是基于统一的http,因此就有诸多基于http协议的服务器,入Apache IIs,Nginx,Tomact,JBoss,这些服务器可以直接拿来使用,开发者只需要关注应用逻辑。

一个url请求过程:
首先了解一些基本概念:

http:这是一个使得不同电脑之间可以相互连接的一个规范。一个协议。大家都遵守这个协议,才能更好地访问。

域名: 俗称网址 url。 是为了方便记忆资源所在处的一个标识。

IP:我们网上获取的资源都是存在别人的电脑上的,这个电脑就有一个地址,就是ip。通过地址,我们可以获取到这个电脑上的资源。

域名与ip的关系:

域名是给ip套上的另一个方便记忆的地址。通过这个域名访问资源,相当于就是通过这个ip。ip是一串数字不方便记忆,才出现了域名。

上网地概念: 上网就是因为我们大家都连在了同一个网络上,大家的电脑都是相互连接的,我们就可以通过一个个网址进行获取资源。你连wifi其实也是连在一个网络上,只是这个网络比较小,是一个小局域网。

我们平时所说的内网,外网。其实没啥区别。内网无非就是自己内部人使用的网络,需要特殊的什么身份认证,才可以使用。外网也叫公网,是大家都连在一起的网络。现在的互联网其实并不是真正地互联网,不同国家之前有不同地网络,平时翻墙,是通过某种技术手段才访问到了外国地网络上。

资源访问过程:

当在网址栏输入www.taobao.com的时候,会发生许多操作。 www.taobao.com是一个域名,也叫url。第一步,通过这个url,会先请求DNS域名解析服务器,解析这个域名,映射得到真正地ip地址。通过ip地址在互联网上找到对应地服务器,向这个服务器发送一个get请求,这个服务器接受到请求后,决定默认地将数据资源传送给访问地用户。其实服务器这里还有很多业务逻辑,服务器可能有很多台,但是到底指定哪台服务器处理请求,还需要一个负载均衡设备来平均分配所有用户地请求,还有就是数据资源不一定是存储在对应ip地址的电脑上,也可以是存在其他电脑上,数据的存储方式也有不同,到底是存在一个静态文件里,或是数据库里,都需要考究。

当数据从服务器返回用户时,浏览器解析数据的时候发现一些静态资源,比如(css,js,或者图片)时又会发送另外的请求,这些请求会发生在CDN(内容分发网络)上,CDN服务器又会处理这个请求,返回一些资源。

大体上一个用户通过url得到资源会有这么操作。每一个细节都至关重要,都会影响你是否成功获取资源。

CDN架构图

在这里插入图片描述

有几点需要注意的:

不管网络架构如何变化都有几点不变原则:

1.网络上的资源都有一个url。url叫统一资源定位符,俗称网址。任何一个资源都需要一个url。

2.必须基于http与服务端交互。http时全球遵守的一个规范,只有遵守了规范,别人才知道你要干什么,才会返回资源给你。

3.数据必须在浏览器中显示。数据是一个个字节传送的,到达浏览器,需要浏览器解析资源。

现在诸多浏览器都遵循google浏览的规范。否则一些数据无法得到显示。

2.HTTP解析

B/S架构核心是http。http请求头,响应头都有一些字段,不同字段不是一些不同的意义。

响应头中一个字段,Keep-Alive 表示连接时间,一个会话能保持的时间。

可以借用浏览器查看http信息。google是F12,即可查看。

常见的http状态码:

200 表示请求成功

403 服务器收到请求,但拒绝提供资源

404 找不到这个资源

500 服务器错误

3.域名解析过程

第一步:

浏览器查看浏览器缓存中是否含有这个域名解析过的ip地址。如果有,那么解析结束。

浏览器缓存是有限制的,不仅缓存大小限制,时间也有限制。缓存世家可以通过TTL属性设置。

缓存时间过长过短都不好,过短导致每次访问资源都需要解析。缓存时间过长,导致如果这期间这个域名映射的ip地址出现更换变化,那么用户就不能访问到想要的资源。

第二步骤:

浏览器缓存中没有,浏览器就会从操作系统中查找这个域名的解析结果。操作系统其实也有一个域名解析的过程,可以通过C:\Windows\Sysytem32\drivers\etc\hosts文件设置,在这里可以指定一个域名对应的ip地址,浏览器会首先使用这个文件里的ip地址。

第三步骤:

如果本地没解析结果,那么才真正开始解析域名。

每台电脑会有一个域名解析的服务器地址,指定那个服务器来解析域名。通过cmd中输入ipconfig查看域名解析服务器,就是DNS服务器。DNS解析服务器会变化,当你接入学校的网络,那么解析服务器必定在学校里,如果在小区中接入网络,那么必定是电信/联通 (SPA)服务商提供的,域名解析服务器通常离我们不会太远。

第四:

若本地域名解析不能解决,就直接到Root Server域名服务器请求解析

第五:

根域名服务器会返回本地域名服务器一个所查询区域的主域名服务器(gTLD).gTLD是国际顶级域名服务器.com .cn .org都是。

六:

本地服务器向gTLD服务器发送请求

七:

gTLD向你返回该域名对应的NAME Server服务器地址,这个Name Server是你在哪个服务商那里注册的域名,这个域名解析任务就给给服务商提供。

八:

Name Server返回一个 ip/域名映射表,和TTL值给本地域名解析服务器,让他存着。

九:

通过TTL和ip/域名映射表,本地域名解析服务器解析你的域名。

解析结束。。 大概是这个过程

3.1几种域名解析方式

域名解析记录分A记录,MX,CNAME,NS,TXT记录。

A记录,A代表Address,用于直接指定域名对应的ip地址。

MX记录,M代表Mail Exchange 将某个域名下的邮件服务器指向自己的邮件地址。

但是正常通过web请求的话还是解析到A记录的ip地址

CNAME别名解析。将一个域名解析到另一个域名。可以将taobao.com解析到xxxx.net,也可以将baidu.com解析到xxxx.net 那么这个xxxx.net就是taobao.com和baidu.com 的别名。

NS记录 为某个域名指定DNS域名解析服务器。

TXT、记录 为某个域名或者主机名 添加说明记录。

4.CDN工作机制

CDN也就是内容分发网络(Content Delivery Network),他是构筑在现有的internet上的一种先进的流量分配网络。其目的是通过现有的internet中增加一层新的网络架构,将网站的内容发布到最近姐用户网络的边缘,使用户剋就近取得所需的内容,提高用户访问网站的响应速度。

区别于镜像。CDN=镜像(Mirror)+缓存(Cache)+整体负载均衡(GSLB)。因而CDN可以有效提高网络流量分配效率。

目前CDN主要书缓存静态数据,比如 CSS,Img,JS,静态网页等数据。用户从主服务器获得动态数据后,再从CDN服务器上下载静态数据,从而加速网页数据内容的下载。

Web请求过程主要分两步:

1.解析域名

2.通过CDN架构,一系列的过程后,向用户返回数据。

详细的Web请求过程图:

在这里插入图片描述

只有当本机和Local DNS Server 没有你要访问的域名的解析后的ip地址,才会去真正发生解析。

©️2020 CSDN 皮肤主题: 黑客帝国 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值