从在浏览器输入网址,到能看到网页,虽然可能只有短短的0.1秒,但这其中计算机执行了多少条命令,网页又经过了怎样的迂回曲折才呈现在你的面前的呢?
通常情况下,浏览器在一台计算机上,而显示的网页在另外一台计算机上,它们之间通过网络连接。
网址表示想要访问的页面,不同网址会对应不同页面。网址中包含域名,域名一般以www开始,以.cn或者.com,.org等结尾,同一个域名下可以有多个网址。
网络是由多台计算机组成的,如何定位到其中的一台计算机呢?可以给计算机编号,由此ip地址应运而生。当前使用的大部分ip地址说ipv4地址,ipv4由32位组成,为方便书写用点分隔成4段,每段8位,2的8次方等于256,所以每一位的范围是0-255,ipv4总共有43亿个地址。
那么域名和ip地址又是怎么对应起来的呢,对于浏览器来说,输入网址后,它会从网址中取出域名,然后通过访问DNS获得域名对应的ip地址。DNS表示域名服务器,可以理解为DNS有一张表,表中记录了所有的域名和ip地址的对应关系,只要你给我域名,我给你查出对应的ip地址。
你的计算机拿到另外一台计算机的ip地址后,你的计算机就会将你的请求发送给ip地址对应的那台计算机,其他计算机也会发出同样的请求,这样的请求都通过网络来到了这台目标计算机,像这样的被其他计算机访问的计算机,称为服务器。
一台服务器上可以同时提供多种不同的服务:Web服务,也就是提供网页;FTP服务,提供文件存储和访问;邮件服务,提供电子邮件收发,这些服务分别由不同的服务器程序来完成。但是一个网络请求来到服务器,服务器怎么知道这个请求想要什么服务呢?
浏览器发送请求时可以携带信息给服务器,告诉服务器获取哪种服务就可以了。那这个信息在计算机系统其实就是“端口号”。
我们在使用浏览器时,没有用过端口号。实际上在发送请求时,如果是获取网页,浏览器自动添加了默认端口。
通过刚才的一系统步骤,浏览器端的请求已经找到了服务器这台计算机,并且由服务器上某个具体的服务器程序来处理请求。然后服务器程序根据网址中不同的路径或者文件名给浏览器返回对应的页面。
当服务器返回的内容通过网络到达浏览器,经由浏览器解析后就显示出来。这里,将服务器给浏览器返回的内容,称之为响应。
从输入网址开始到看到网页的整个流程就是这样的,对于计算机和网络来说,这些事情可能只用了0.1秒,但要理解这个流程,还是要花些功夫的。