计算机网络:小明在家里输入了一个URL打开网址的过程,究竟发生了什么?

      最后更新:2022-02-07 10:55:37 手机定位技术交流文章

      文章目录

      • 前言
      • 一、简单版流程描述
      • 二、过程中使用到的协议
        • TCP/IP协议
        • DNS协议
        • URL/URI协议
        • HTTPS
      • 三、复杂描述

      前言

      分析一个例子,加深自己在计算机网络方面的理解:从小明在家里输入一个URL网址,到网址呈现在他面前,这个过程究竟发生了什么?

      一、简单版流程描述

      我们以小明输入了http://www.someSchool.edu/someDepartment/home.index为例

      我们在地址栏输入URL(即网址),浏览器会向DNS(域名服务器,后面会说)提供网址,由它来完成 URL 到 IP 地址的映射。然后将请求你的请求提交给具体的服务器,在由服务器返回我们要的结果(以HTML编码格式返回给浏览器),浏览器执行HTML编码,将结果显示在浏览器的正文。这就是一个浏览器发起请求和接受响应的过程。

      • DNS服务器会首先进行域名的映射,找到访问www.someSchool.edu所在的地址,然后HTTP 客户端进程在 80 端口发起一个到服务器 www.someSchool.edu 的 TCP 连接(80 端口是 HTTP 的默认端口)。在客户和服务器进程中都会有一个套接字与其相连。
      • HTTP 客户端通过它的套接字向服务器发送一个 HTTP 请求报文。该报文中包含了路径 someDepartment/home.index 的资源,我们后面会详细讨论 HTTP 请求报文。
      • HTTP 服务器通过它的套接字接受该报文,进行请求的解析工作,并从其存储器(RAM 或磁盘)中检索出对象 www.someSchool.edu/someDepartment/home.index,然后把检索出来的对象进行封装,封装到 HTTP 响应报文中,并通过套接字向客户进行发送。
      • HTTP 服务器随即通知 TCP 断开 TCP 连接,实际上是需要等到客户接受完响应报文后才会断开 TCP 连接。
      • HTTP 客户端接受完响应报文后,TCP 连接会关闭。HTTP 客户端从响应中提取出报文中是一个 HTML 响应文件,并检查该 HTML 文件,然后循环检查报文中其他内部对象。
      • 检查完成后,HTTP 客户端会把对应的资源通过显示器呈现给用户。

      二、过程中使用到的协议

      TCP/IP协议

      CP/IP 我们一般称之为协议簇,什么意思呢?就是 TCP/IP 协议簇中不仅仅只有 TCP 协议和 IP
      协议,它是一系列网络通信协议的统称。而其中最核心的两个协议就是 TCP / IP 协议,其他的还有 UDP、ICMP、ARP
      等等,共同构成了一个复杂但有层次的协议栈。

      TCP 协议的全称是 Transmission Control Protocol 的缩写,意思是传输控制协议,HTTP 使用 TCP
      作为通信协议,这是因为 TCP 是一种可靠的协议,而可靠能保证数据不丢失。

      IP 协议的全称是 Internet Protocol 的缩写,它主要解决的是通信双方寻址的问题。IP 协议使用 IP 地址
      来标识互联网上的每一台计算机,可以把 IP地址想象成为你手机的电话号码,你要与他人通话必须先要知道他人的手机号码,计算机网络中信息交换必须先要知道对方的 IP 地址。

      • 上述的浏览器向DNS域名服务器提供网址的时候采用了HTTP协议,也就是说采用了TCP通信协议;而DNS域名服务器完成URL到IP地址的映射,也就是说需要得到IP地址,也就从而用到了IP协议

      DNS协议

      DNS 你有没有想过为什么你可以通过键入 www.google.com
      就能够获取你想要的网站?我们上面说到,计算机网络中的每个端系统都有一个 IP 地址存在,而把 IP 地址转换为便于人类记忆的协议就是 DNS协议。

      DNS 的全称是域名系统(Domain Name System,缩写:DNS),它作为将域名和 IP
      地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

      • 上述已经进行了阐述,从人类可记忆的网址www.google.com到这个网址实际对应的web服务器的IP地址的过程就使用到了DNS协议进行映射

      URL/URI协议

      我们上面提到,你可以通过输入 www.google.com
      地址来访问谷歌的官网,那么这个地址有什么规定吗?我怎么输都可以?AAA.BBB.CCC 是不是也行?当然不是的,你输入的地址格式必须要满足URI 的规范。

      URI的全称是(Uniform Resource Identifier),中文名称是统一资源标识符,使用它就能够唯一地标记互联网上资源。

      URL的全称是(Uniform Resource Locator),中文名称是统一资源定位符,也就是我们俗称的网址,它实际上是 URI的一个子集。

      URI 不仅包括 URL,还包括 URN(统一资源名称),它们之间的关系如下

      在这里插入图片描述
      所以,当我们输入www.google.com这样的域名时,其实就是用到了URI协议,或者说URL协议

      HTTPS

      HTTP 一般是明文传输,很容易被攻击者窃取重要信息,鉴于此,HTTPS 应运而生。HTTPS 的全称为 (Hyper Text Transfer Protocol over SecureSocket Layer),全称有点长,HTTPS 和 HTTP 有很大的不同在于
      HTTPS 是以安全为目标的 HTTP 通道,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在 HTTP的基础上增加了 SSL 层,也就是说 HTTPS = HTTP + SSL。(这块我们后面也会详谈 HTTPS)

      上文中从Web服务器返回到客户端的HTTP响应报文,便可以采用HTTPS进行加密传输

      三、复杂描述

      看这篇
      Web 页面的请求历程

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/17942.html

          热门文章

          文章分类