一、前言
对于打开一个网址,浏览器输出内容这个过程发生了什么早就很好奇,今天听了若愚老师的讲解加上自己查阅资料,下面就简单描述一下这个过程。
二、基本原理
1、URL的输入
首先我们要在浏览器上输入一个URL,URL是统一资源定位符(Uniform Resource Locator)的意思,其功能是用来定位互联网的资源。
把URL分割成几个部分:协议、网络地址、资源路径。其中网络地址指示该连接网络上哪一台计算机,可以是域名或者IP地址,可以包括端口号;协议是从该计算机获取资源的方式,常见的是http、http、sftp、file,不同协议有不同的通讯内容格式;资源路径指示从服务器上获取哪一项资源。
2、域名解析
对于http://jirengu.com的URL,浏览器实际上不知道jirengu.com到底是什么东西,需要查找jirengu.com网站所在服务器的IP地址,才能找到目标。其实jirengu.com就被称作域名,通过域名查找IP,而不是直接在网页上输入IP查找,是因为域名方便人记忆,IP都是一长串数字,很难记住是哪一个网站的。
如果地址不是一个IP地址,通过DNS(域名系统)将该地址解析成IP地址。这个过程里,你的电脑直接询问的DNS服务器可能没有对应的IP,就会向它的上级服务器询问,上级服务器同样可能没有,就依此一层层向上找,最高可达根节点,找到或者全部找不到为止。IP地址对应着网络上一台计算机,DNS服务器本身也有IP,你的网络设置包含DNS服务器的IP。
另外,如果URL地址不包含端口号,根据协议的默认端口号确定一个。
3、服务器处理
服务器是一台安装系统的机器,常见的系统如Linux、windows server 2012。常见的 web服务器有 Apache、Nginx、IIS、Lighttpd
根据某个协议要求,组织一个请求的数据包,里面包含大量请求信息,包括请求的资源路径、你的IP地址等,系统里安装的处理请求的应用叫 Web server。web服务器接收用户的Request 交给网站代码,或者接受请求反向代理到其他 web服务器。然后服务器响应请求,将数据返回给浏览器。数据可能是根据HTML协议组织的网页,里面包含页面的布局、文字。数据也可能是图片、脚本程序等。现在你可以用浏览器的“查看源代码”功能,感受一下服务器返回的是什么东东。如果资源路径指示的资源不存在,服务器就会返回著名的404错误。例如URL
4、渲染
开始根据资源的类型,将资源组织成屏幕上显示的图像,这个过程叫渲染,网页渲染是浏览器最复杂、最核心的功能。HTML字符串被浏览器接受后被一句句读取解析,解析到link 标签后重新发送请求获取css,解析到 script标签后发送请求获取 js,并执行代码,解析到img 标签后发送请求获取图片资源。将渲染好的页面图像显示出来,并开始响应用户的操作。
到此,从网址的输入,到浏览器上内容的输出这个过程算是完成了。
下图是一个简单/users打开过程
二、结语
以上只是最基本的步骤,实际不可能就这么简单,即使基本步骤本身也有很复杂的子步骤。对于基本原理的理解就到这,想更加深入的了解,还需自己多查阅相关资料。