本帖最后由 huawei 于 2017-12-29 19:29 编辑
在浏览器的地址栏中输入“www.itcast.com” ,我们会看到页面开始加载。看起来似乎很简单,幕后却隐藏着一大堆魔法。从访问url到浏览器展示页面到底经历了什么?其实是很麻烦的,因为有很多术语。不幸的是,有些术语对于理解这篇文章的其余部分至关重要。
一、清楚一些最重要的术语:
客户端: 简言之就是浏览器,如Chrome或Firefox。其主要作用是进行用户交互,并将其转换为对另一台称为Web服务器的计算机的请求。虽然我们通常使用浏览器访问网络,但您可以将整个计算机视为客户端 - 服务器模型的“客户端”。每个客户端计算机都有一个唯一的地址,称为IP地址,其他计算机可以用来识别它。
服务器: 连接到互联网且具有IP地址的机器。服务器等待来自其他机器(例如客户机)的请求并对其进行响应。不同于您的计算机(即客户端),服务器也具有IP地址并安装运行特殊的服务器软件,确定如何响应来自浏览器的请求。 Web服务器的主要功能是将网页存储,处理和传送给客户端。有许多类型的服务器,包括Web服务器(在这篇文章中,我们在谈论Web服务器),数据库服务器,文件服务器,应用程序服务器等。
IP地址: 互联网协议地址。 TCP / IP网络上的设备(计算机,服务器,打印机,路由器等)的数字标识符。互联网上的每台计算机都有一个IP地址,用于识别和与其他计算机通信。 IP地址有四组数字,以小数点分隔(例如244.155.65.2)。这被称为“逻辑地址”。为了在网络中定位设备,通过TCP / IP协议软件将逻辑IP地址转换为物理地址。这个物理地址(即MAC地址)内置在您的硬件中。
TCP / IP: 传输控制协议/互联网协议。最广泛使用的通信协议。 “协议”是一些标准的规则。TCP / IP被用作通过网络传输数据的标准。
ISP: 互联网服务提供商。 ISP是客户端和服务器之间的中间人。典型的ISP通常是“有线电视公司”。当您的浏览器收请求www.itheima.com, 时,它不会知道在哪里寻找www.itheima.com, 因此,ISP的工作是进行DNS(域名系统)查找,以询问查找的网站的IP地址。
DNS: 域名系统。跟踪计算机的域名及其在互联网上相应IP地址的分布式数据库。不要担心“分布式数据库”如何工作:只需要知道输入www.github.com, 而不是IP地址就行了。
域名: 用于标识一个或多个IP地址。用户使用域名(例如www.github.com, )访问互联网上的网站。当您在浏览器中键入域名时,DNS使用它来查找该给定网站的IP地址。
端口号: 一个16位整数,用于标识服务器上的特定端口,并始终与IP地址相关联。它可以用来识别服务器上可以转发网络请求的特定进程。
主机: 连接到网络的计算机 - 它可以是客户端,服务器或任何其他类型的设备。每个主机都有唯一的IP地址。对于www.google.com, 等网站,主机可以是为该网站的网页提供服务的网络服务器。主机和服务器概念经常混合,但是它们是两个不同的东西。服务器是一种主机,但另一方面,提供托管服务来维护多个Web服务器的机器可以称作主机。在这个意义上,您可以从主机运行服务器。
HTTP: 超文本传输协议。 Web浏览器和Web服务器用于通过互联网进行通信的协议。
URL: 统一资源定位符。 URL识别特定的Web资源。一个简单的例子是https://itheima.com/someone. URL指定协议(“https”),主机名(itheima.com)和文件名(某人的个人资料页面)。用户可以从域名为itheima.com的网络主机通过HTTP获取该URL所标识的Web资源。(很绕口吗?)
二、从代码到网页的旅程
好的,现在我们有了必要的定义,让我们尝试Github的搜索,看看从地址栏输入一个网址到获取到网页经历了什么:
1)您在浏览器中输入URL
2)浏览器解析URL中包含的信息。包括协议(“https”),域名(“github.com”)和资源(“/”)。 在这种情况下,“.com”之后没有指示特定的资源,所以浏览器知道检索主(索引)页面
3)浏览器与ISP进行通信,对主机的Web服务器的IP地址进行DNS查找www.github.com. DNS服务首先联系根服务器, 查询 https://www.github.com 顶级域服务器的IP地址。 该地址被发送回您的DNS服务。 DNS服务与“.com”名称服务器进行另外的沟通,并请求 https://www.github.com. 的地址。
4)一旦ISP收到目标服务器的IP地址,它会将其发送到您的Web浏览器
5)您的浏览器从URL中获取IP地址和给定的端口号(HTTP协议默认为端口80,HTTPS默认为端口443),并打开TCP套接字连接。 此时,您的Web浏览器和Web服务器终于连接了。
6) 您的网络浏览器向网页服务器发送HTTP请求,请求 www.github.com. 的主页面
7)Web服务器接收请求并查找该HTML页面。 如果页面存在,则Web服务器准备响应并将其发送回您的浏览器。 如果服务器找不到请求的页面,它将发送一个HTTP 404错误消息,代表“找不到页面”。
8)您的Web浏览器将接收到HTML页面,然后通过它从上到按下解析寻找列出的其他资源,如图像,CSS文件,JavaScript文件等。
9)对于列出的每个资源,浏览器重复上述整个过程,向服务器发送HTTP请求。
10)浏览器完成加载HTML页面中列出的所有其他资源后,页面将最终加载到浏览器窗口中,并且连接将被关闭
|
|