网站访问过程

网站访问过程

1.域名解析IP地址

①使用目标IP地址访问。由于IP地址是一堆数字不方便记忆,于是有了域名这种字符型标识。

②使用域名访问。域名解析就是域名到IP地址的转换过程,域名的解析工作由DNS服务器完成。
客户端:

  1. 浏览器向本机DNS模块发出DNS请求,DNS模块生成相关的DNS报文;(应用层)

  2. 将DNS报文交给UDP协议单元(传输层)

  3. 将封装好的UDP数据报交给IP协议单元(网络层),IP协议单元将该数据封装成IP数据包,其目的IP地址为DNS服务器的IP地址;

  4. 封装好的IP数据包将传递给数据链路层的协议单元进行发送;发送时在ARP缓存中查询相关数据,如果没有,就发送ARP广播(包含待查询的IP地址,收到广播的主机检查自己的IP,符合条件的主机将含有自己MAC地址的ARP包发送给ARP广播的主机)请求,等待ARP回应;得到ARP回应后,将IP地址与路由的下一跳MAC地址对应的信息写入ARP缓存表;
    写入缓存后,以路由下一跳的地址填充目的MAC地址,以数据帧形式转发;
    服务端:

  5. 数据链路->IP->UDP->DNS服务单元逐层向上解析

  6. DNS服务单元将域名解析成对应IP地址,产生DNS回应报文;

  7. DNS回应报文->UDP->IP->MAC->我的主机;

  8. 我的主机收到数据帧,将数据帧->IP->UDP->浏览器;

  9. 将域名解析结果以域名和IP地址对应的形式写入DNS缓存表

现在,你就得到了目的主机的IP地址啦也通过ARP得到了MAC地址,就可以和他进行通信了!

2.与目的主机进行TCP连接(三次握手)

  1. 该TCP报文中SYN标志位设为1,表示连接请求;
  2. 该TCP报文通过IP(由之前的DNS请求得知)->MAC(由ARP请求得知)->网关->目的主机;
  3. 目的主机收到数据帧,通过IP->TCP,TCP协议单元回应请求应答报文;
  4. 该报文中SYN和ACK标志设为1,表示连接请求应答;
  5. 该TCP报文通过IP(DNS)->MAC(ARP)->网关->我的主机;
  6. 我的主机收到数据帧,通过IP->TCP,TCP协议单元回应请求确认报文;
  7. 该TCP报文通过IP(DNS)->MAC(ARP)->网关->目的主机;
  8. 目的主机收到数据帧,通过IP->TCP,连接建立完成。
    网站访问过程

3.发送与收取数据(浏览器与目的主机开始HTTP访问过程)

  1. 浏览器向域名发出GET方法报文(HTTP请求);
  2. 该GET方法报文通过TCP->IP(DNS)->MAC(ARP)->网关->目的主机;//客户端到服务端
  3. 目的主机收到数据帧,通过IP->TCP->HTTP,HTTP协议单元会回应HTTP协议格式封装好的HTML形式数据(HTTP响应);[ 从请求信息中获得客户机想访问的主机名。从请求信息中获取客户机想要访问的web应用(web应用程序指提供浏览器访问的程序,简称web应用)。从请求信息中获取客户机要访问的web资源。(web资源,即各种文件,图片,视频,文本等)读取相应的主机下的web应用,web资源。用读取到的web资源数据,创建一个HTTP响应。]//知道你想要什么我就给什么
  4. 该HTML数据通过TCP->IP(DNS)->MAC(ARP)->网关->我的主机;
  5. 我的主机收到数据帧,通过IP->TCP->HTTP->浏览器,浏览器以网页形式显示HTML内容。

4.http协议

2020/2/21
今天学习的目标:了解访问网站的一些基本流程、HTML、JS、CSS等最基础的概念
今天了解比较透彻的有:访问网站的基本过程:域名解析、TCP连接(三次握手)、发送与接收数据
哪些东西今天了解到了一些HTTP连接的内容,还有WebServer、Web Services等内容需要后续继续深入阅读