• 请基于 TCP/IP 五层网络模型描述下当我们在浏览器请求 https ://pp.io 站点时,发生了哪些事情


    引言

      TCP/TP网络模型自下而上依次是物理层,数据链路层,网络层,传输层,应用层。(传统的OSI模型为七层模型,多了表示层和会话层)

    一、 URL解析 

      当我们在地址栏输入 https ://pp.io 时,我们的浏览器就开始了URL解析。

      URL的一般形式为: <协议>:// <主机> : <端口>/ <路径>。

      常见的协议一般有http,ftp,https等。

      主机一般是域名,也可以是 IP 地址。

      端口和路径可以省略。

      1.HTTPS协议

      当前URL的协议是:https,相比于HTTP建立于TCP基础上的明文传输,HTTPS基于SSL/TLS,而SSL/TLS又是基于TCP/IP,也就是说SSL/TLS基于TCP基础上再做了一层封装,对内容进行加密。

      2.域名解析

      同时应用层负责域名解析,pp.io只是用我们人类比较熟悉的方式来标识特定因特网中的计算机,DNS系统可以把他转换成机器易于处理的 IP 地址。

      DNS的工作分为以下几步:

      1) 同一台用户主机上运行着DNS应用的客户端
      2) 浏览器从上述URL中抽取出主机名 pp.io并将这台主机名传送给DNS应用的客户端
      3) DNS 查询浏览器缓存 -> 查询系统缓存 -> 查询路由器缓存 -> 查询ISP DNS缓存。进行递归搜索,从.io 顶级域名服务器到 pp 的域名的服务器。
      4) DNS 客户向服务器发送一个包含主机名的请求。
      5) DNS 客户最终会收到一份回答报文,其中有对应该主机的IP地址
      6) 一旦浏览器收到一份来自DNS域名服务器的该IP地址,它能够向位于该IP的80端口的HTTP服务器进程发起一个TCP连接。(域名未特别指明端口,一般默认为80)。

    二、 建立 TCP 连接

     当浏览器向已知IP的80端口的HTTP服务器进程发起一个TCP连接后,TCP协议通过三次握手协议建立联系:

       1)浏览器发送TCP连接的请求向IP地址对应的服务器(带SYN表示的数据包)
       2)服务器收到TCP连接的请求后,回复可以连接请求(带有SYN/ACK标志的数据包)
       3)浏览器收到回传的数据,确认OK后,还会向服务端发送数据(带ACK标志的数据包),表示三次握手结束。

    三、数据传输

        三次握手成功以后,浏览器和服务器端开始TCP连接形式传输数据包。
        服务器传给浏览器所需要的资源数据
        浏览器获得数据,渲染加强然后呈现给用户。

  • 相关阅读:
    UVA 11019 Matrix Matcher ( 二维字符串匹配, AC自动机 || 二维Hash )
    蓝桥杯 修改数组 (巧用并查集)
    luoguP3242 [HNOI2015]接水果
    CF757F Team Rocket Rises Again
    luoguP2597 [ZJOI2012]灾难
    luoguP4103 [HEOI2014]大工程
    luoguP3233 [HNOI2014]世界树
    luoguP2495 [SDOI2011]消耗战
    CF613D Kingdom and its Cities
    51nod 1584 加权约数和
  • 原文地址:https://www.cnblogs.com/juanzhi/p/12575082.html
Copyright © 2020-2023  润新知