19-05-02 网络连接(1)

netWork

Posted by Wangchenchen on 2019-05-02
主题:

​ 从浏览器中输入网址,随后相关的网页内容就会出现相关的内容,但是当我在地址栏输入网页地址敲回车的那一刻,我的电脑发生了什么?

名词解释:

  1. URL(统一资源定位符:Uniform Resource Locator):在浏览器中输入的网址;

  2. IP(网络协议地址:Internet Protocol Address):在网络中所有设备都会被分配到一个地址,相当于现实中的某路上的xx号xx室 其中 “号”对应的号码是对应整个子网的,而”室”对应的号码是分配给子网中计算机的,也就是网络中的地址,“号” 对应的是网络号,“室”对应的是主机号,这个地址的整体称为IP地址;

    ​ 常见的IP地址分为IPV4与IPV6两大类,但是也有其他不同的小分类

    ​ 每个IP可唯一标识一台主机,但是IP地址是一个32位的数字,为了便于记忆,我们通常把按每字节(8位)划分,然后用10进制表示出来,及常用的点分十进制,而IPV6是冒号分十六进制,

  3. TCP/IP:就是由一些小的子网,通过路由器连接组成一个大的网络,子网也可以理解为用集线器连接的几台计算机;

  4. Host文件:电脑本地一个没有后缀的文件,可以在本地使用编辑器打开,里面主要存储了常用的网址域名与其对应的IP地址建立一个关联的“数据库”当用户在浏览器中输入一个需要登陆的网址时系统首先就会进入host’文件中进行查找,

  5. 域名(域名:Doman Name) 由一串用点分割的名字组成intenate上某个计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位

    例:http://baidu.com为例,http是通信时使用的协议,baidu.com是域名,www是提供服务器的名字,计算机名+域名才是主机名,即www.baidu.com是主机名。
    
  6. DNS(域名系统: Doman Name System): DNS服务器主要是接收客户端的信息,然后返回相应的内容,通常我们本机都会有个DNS的客户端,这个就称为DNS解析器;

    ​ a. 域名

    ​ 服务器,邮件服务器(邮件地址中@后半部分)的名称;

    ​ b. Class

    ​ 这是最早的时候设计的DNS方案,考虑到DNS在互联网以外的其他网络应用,利用Class来识别网络信息,但是目前除了互联网没有其他网络,所以现在的class值就永远是代表互联网的 IN;

    ​ c.记录类型

    ​ 关于域名对应何种类型的记录,如类型是A 表示 域名对应的是IP地址, 类型是MX,表示对应的是邮件服务器,所以对于不同的记录类型,服务器就会返回不同的信息内容;

    ​ DNS服务器上会事先存上上面三种信息的对应记录数据;

运行过程

当我们在浏览器输入URL,(http://jswangchenchen.com)

1.缓存查找

打个比方,你出门找一个地方,第一个想法肯定是先想这个地方你有没有去过,如果你去过就不需要问人直接过去就好了,所以,在写好URL点击回车前,浏览器会从历史记录,书签或缓存中查找地址, 然后是在host文件中,最后是在路由器缓存中进行查找,如果有就会打开相应的网页,如果没有就会直接将消息传到DNS对IP地址进行解析。

2.DNS解析

先发送一个DNS请求到本地DNS服务器,DNS本地服务器进行递归查询,如果本地服务器没有就会向根服务器发送消息; 
根服务器并没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器到域服务器上去继续查找,并给出域的地址;
本地服务器继续向域服务器发出请求,在这个例子中,访问的是.com域服务器,与服务器接到请求后,也不会返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名解析服务器地址;
最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址的对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时可以直接返回结果;

3.建立TCP连接

拿到IP地址后,客户端会以一个随机端口(1024<端口号<65535)向服务器的WEB程序80端口发起TCP的连接请求。请求到达端口后,进入网卡,进入到内核的TCP/IP协议栈(用于识别该链接请求,解封包,一层层的拨开)最终到达WEB程序,最终建立TCP/IP连接;关于TCP/IP协议以后会进行详细讲解(三次挥手);

4.发送Http请求

与服务器建立TCP安全连接后就可以进行Http请求,后期会专门开一章讲解Http 现在先简单讲下发送Http请求过程就是构建Http请求报文并通过TCP协议发送到服务器指定端口;

5.服务器处理请求并返回Http响应

响应报文主要分为三部分:状态行,相应头和相应正文;

6.最后关闭TCP连接

最后通过四次挥手进行关闭;

7.最后页面进行渲染;

本章终。

如果有什么不足的地方希望大家提出宝贵意见

E-mail

jsntwangchenchen@outlook.com