易企正每周分享:你的网站为什么打不开? - 企业新闻-新闻中心 - 河南易企正电子商务有限公司
欢迎进入河南易企正电子商务有限公司!  添加微信: 了解更多   官方微信: 河南易企正     咨询热线: 15937388775  
易企正每周分享:你的网站为什么打不开? 2019-08-26 16:40:48 点击浏览:203次 来源:小W

引子:在我们的工作当中经常会有这样的情况发生,“呀,这个网站打不开了” “网站怎么打开这么的慢呢”,网站能否正常打开无非就是域名、网络、服务器、解析等这些问题,那么到底一个网站能正常打开是一个什么原理呢?我今天给大家科普一下一个网站的工作原理。


一、部分定义

如果您想了解万维网的秘密,以下是最重要的术语(以下以www.hnyqz.com为例来介绍网站的打开原理):

客户端:客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。 在计算机上运行并连接到互联网的应用程序,如Chrome或Firefox。其主要作用是进行用户交互,并将其转换为对另一台称为Web服务器的计算机的请求。虽然我们通常使用浏览器访问网络,但您可以将整个计算机视为客户端 - 服务器模型的“客户端”。每个客户端计算机都有一个唯一的地址,称为IP地址,其他计算机可以用来识别它。

服务器: 连接到互联网且具有IP地址的机器。服务器等待来自其他机器(例如客户机)的请求并对其进行响应。不同于您的计算机(即客户端),服务器也具有IP地址并安装运行特殊的服务器软件,确定如何响应来自浏览器的请求。 服务器有许多类型,包括Web服务器,数据库服务器,文件服务器,应用程序服务器等。(在这篇文章中,我们在谈论Web服务器)Web服务器的主要功能是将网页存储,处理和传送给客户端。

IP地址: 互联网协议地址。 TCP / IP网络上的设备(计算机,服务器,打印机,路由器等)的数字标识符。互联网上的每台计算机都有一个IP地址,用于识别和与其他计算机通信。 IP地址有四组数字,以小数点分隔。这被称为“逻辑地址”。 

DNS: 即域名系统。跟踪计算机的域名及其在互联网上相应IP地址的分布式数据库。Internet上的计算机是通过IP地址来定位的,给出一个IP地址,就可以找到Internet上的某台主机。而因为IP地址难于记忆,又发明了域名来代替IP地址。但通过域名并不能直接找到要访问的主机,中间要加一个从域名查找IP地址的过程,这个过程就是域名解析。它所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就像是一位“翻译官”,将域名翻译成服务器可以明白的ip。

域名: 用于标识一个或多个IP地址。用户使用域名(例如www.hnyqz.com)访问互联网上的网站。当您在浏览器中键入域名时,DNS使用它来查找该给定网站的IP地址。

ISP: 全称为Internet Service Provider,即互联网服务提供商,能提供拨号上网服务、网上浏览、下载文件、收发电子邮件等服务,是网络最终用户进入Internet的入口和桥梁。 ISP是客户端和服务器之间的中间人。当您的浏览器收请求www.hnyqz.com时,它不会知道在哪里寻找www.hnyqz.com, 因此,ISP的工作是进行DNS(域名系统)查找,以询问查找的网站的IP地址。

TCP / IP: 即传输控制协议/互联网协议,是最广泛使用的通信协议。是指能够在多个不同网络间实现信息传输的协议簇。Telnet、FTP、SMTP等。“协议”是一些标准的规则。TCP / IP被用作通过网络传输数据的标准。

端口号: 一个16位整数,用于标识服务器上的特定端口,并始终与IP地址相关联。它可以用来识别服务器上可以转发网络请求的特定进程。所谓的端口,就好像是门牌号一样,客户端可以通过ip地址找到对应的服务器端,但是服务器端是有很多端口的,每个应用程序对应一个端口号,通过类似门牌号的端口号,客户端才能真正的访问到该服务器。 为了对端口进行区分,将每个端口进行了编号,这就是端口号。

主机: 连接到网络的计算机 - 它可以是客户端,服务器或任何其他类型的设备。每个主机都有唯一的IP地址。对于www.google.com等网站,主机可以是为该网站的网页提供服务的网络服务器。主机和服务器概念经常混合,但是它们是两个不同的东西。服务器是一种主机 - 它们是一个特定的机器。另一方面,提供托管服务来维护多个Web服务器的机器可以称作主机。在这个意义上,您可以从主机运行服务器。

HTTP: 超文本传输协议。 Web浏览器和Web服务器用于通过互联网进行通信的协议。HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。

URL: 统一资源定位符。 URL识别特定的Web资源。一个简单的例子是http://hnyqz.com/qw。URL指定协议(“http”),主机名(hnyqz.com)和文件名(某个页面)。用户可以从域名为hnyqz.com的网络主机通过HTTP获取该URL所标识的Web资源。


二、从代码到网页的旅程

1)您在浏览器中输入URL

图片1

2)浏览器解析URL中包含的信息。包括协议(“http”),域名(“hnyqz.com”)和资源(“/”)。 在这种情况下,“.com”之后没有指示特定的资源,所以浏览器知道检索主(索引)页面。

3)浏览器与ISP进行通信,对主机的Web服务器的IP地址进行DNS查找www.hnyqz.com。DNS服务首先联系根服务器, 查询 http://www.hnyqz.com 顶级域服务器的IP地址。该地址被发送回您的DNS服务。 DNS服务与“.com”名称服务器进行另外的沟通,并请求 http://www.hnyqz.com的地址。

4)一旦ISP收到目标服务器的IP地址,它会将其发送到您的Web浏览器。

5)您的浏览器从URL中获取IP地址和给定的端口号(HTTP协议默认为端口80,HTTPS默认为端口443),并打开TCP套接字连接。 此时,您的Web浏览器和Web服务器终于连接了。 

6)您的网络浏览器向网页服务器发送HTTP请求,请求 www.hnyqz.com的主页面。

7)Web服务器接收请求并查找该HTML页面。 如果页面存在,则Web服务器准备响应并将其发送回您的浏览器。 如果服务器找不到请求的页面,它将发送一个HTTP 404错误消息,代表“找不到页面”。

8)您的Web浏览器将接收到HTML页面,然后通过它从上到按下解析寻找列出的其他资源,如图像,CSS文件,JavaScript文件等。

9)对于列出的每个资源,浏览器重复上述整个过程,向服务器发送HTTP请求。

10)浏览器完成加载HTML页面中列出的所有其他资源后,页面将最终加载到浏览器窗口中,并且连接将被关闭。

网站打开的快慢和网速以及页面上要加载的内容都有关系。


三、绘制最后的页面

工作还没有完成! 现在,您的浏览器具有构成网站(HTML,CSS,JavaScript,图像等)的资源,必须通过几个步骤将资源呈现为可读的网页。您的浏览器有一个渲染引擎,负责显示内容。 渲染引擎以小块形式接收资源的内容。 然后有一个HTML解析算法告诉浏览器如何解析资源。

图片2

构建DOM树后,将分析样式表以了解如何对每个节点进行样式化。 使用此信息,浏览器遍历DOM节点并计算每个节点的CSS样式,位置,坐标等。

一旦浏览器具有DOM节点及其样式,那么最终就可以将页面绘制到屏幕上了。 结果是:你在互联网上看过的一切。

当你在浏览器中输入网址(例如www.coder.com)并且敲了回车以后, 浏览器首先要做的事情就是获得coder.com的IP地址,具体的做法就是发送一个UDP的包给DNS服务器,DNS服务器会返回coder.com的IP, 这时候浏览器通常会把IP地址给缓存起来,这样下次访问就会加快。

比如Chrome, 你可以通过chrome://net-internals/#dns来查看。

有了服务器的IP, 浏览器就要可以发起HTTP请求了,但是HTTP Request/Response必须在TCP这个“虚拟的连接”上来发送和接收。

想要建立“虚拟的”TCP连接,TCP邮差需要知道4个东西:(本机IP, 本机端口,服务器IP, 服务器端口),现在只知道了本机IP,服务器IP, 两个端口怎么办?

本机端口很简单,操作系统可以给浏览器随机分配一个, 服务器端口更简单,用的是一个“众所周知”的端口,HTTP服务就是80, 我们直接告诉TCP邮差就行。

经过三次握手以后,客户端和服务器端的TCP连接就建立起来了! 终于可以发送HTTP请求了。  


分享:

版权:【注明为本站原创的文章,转载请注明出处与原文地址!本站部分转载文章能找到原作者的我们都会注明,若文章涉及版权请发至邮箱605330730@qq.com,以便我们及时处理。向本站投稿或需要本站向贵司网站定期免费投稿,请添加QQ:605330730】

上一篇易企正每周分享:看这篇,让你的摄影上一个档次!
下一篇易企正每周分享:护肤也讲究“门当户对”?

在线
客服

在线客服服务时间:9:00-20:00 服务热线:15937388775

在线
咨询

15937388775
7*24小时在线答疑

关注
微信

添加微信咨询

在线
咨询

顶部