从一个网址到Web页面的请求历程

从一个网址到Web页面的请求历程

看完《计算机网络 自顶向下方法》这本书后,想要详细的描述一下从一个网址到Web页面的请求历程,如果有错误,欢迎各位小伙伴在评论中指出。

前言

我们每天都会在浏览器中输入许多的网址,比如google等等,但是当我们输入完网址后,他又是具体怎么变成一个Web页面的呢?

简单来说就是根据域名解析出IP地址,然后找到具体的服务器,完成连接后,服务器就会发出Http response,然后我们就可以看到google的搜索框啦。

当然,具体去看的话,里面就会涉及到许多有趣的协议,下面我们一起来看看一个网址时怎么变成Web页面的吧。

1.域名解析

首先,我们在浏览器中输入一个网址,比如www.baidu.com,但是这时候我们只知道了我们要去的小伙伴家的名字叫百度,但却不知道他家的具体地址,那我们要怎么过去呢?

当然,可能有人说,我认识百度,我知道他家在哪儿,那他就会按照自己印象中的百度的地址,直接去他家。

不要急,我们可以向周围的路人打听一下,首先我们去问问本地DNS,他是个刀子嘴豆腐心,当我们问他的时候,他只会说知道或不知道,不过,如果他不知道的话,他就会帮我们去问问根DNS服务器,问他百度住哪儿,他可能会告诉你一个地址,比如说com,但他可能不知道百度具体住在com哪儿,于是他会说:我帮你去问问顶层DNS吧。但是如果顶层DNS只知道百度住在baidu.com,但也不知百度具体住哪儿呢?那他就会去问管理方DNS服务器,如果管理方DNS服务器知道的话,他就会告诉本地DNS服务器百度的住址是192.168.30.01,这是DNS服务器的迭代查询。然后本地DNS服务器就会告诉我们,当然,他这么高冷,只会和我们说百度的地址,而不会说问了好多人才知道的。也不会告诉你他悄悄记下了百度的地址,这样下次有人问他他就可以直接告诉那个人啦。这就是本地服务器的递归查询。

当然,有了地址,我们要先在小本本上记下来,这样我们下次就不用去问本地DNS服务器啦。那我们接下来就去找百度吧。

之后百度家的地址后,很多小伙伴可能会大吃一惊,他家竟然后65535扇门,不过没关系,我们看看本地DNS给我们的地址上有没有告诉我们从哪扇门进去,如果没说的话,我们就从正门,编号是80的那扇门走吧。

HTTP

HTTP请求

知道百度的地址后,我们还是不能直接进去,因为百度不知道我们是谁,这时候就轮到了HTTP协议出场,在HTTP请求中,包含了请求行,请求头和请求正文。请求行中包括请求方法、url、版本号,请求头包含了host,User-Agent,Connection,Accept-Charset, Accept-Encoding, Accept-Language。通过这些信息,百度知道了你是谁。

TCP三次握手

当然,直接走肯定是进不去的,我们要先打电话问一下百度在不在家,于是我们问了一下百度,你在家吗?这是百度听到我们的声音,他知道外面有人想进来,于是他说里面有人,这时候我们知道百度听到了我们的声音,并且他也能顺利发出请求,于是我们说了一声,好,那我进来啦。这时候百度知道了我们听到了他的请求,这就是3次握手了。

路由选择协议

内部网关协议

既然获得了百度的同意,那我们就要去找百度了,但是我们得先知道怎么去找他最快。我们和百度在两个不同的城市之间,这就是两个AS,在城市内部,我们需要坐地铁,可以是RIP,也可以是OSPF协议,他们会告诉我们怎么去高铁站最快。

外部网关协议

来到高铁站后,我们需要去问一下BGP协议,怎么去百度所在的城市最快,然后我们就可以坐上高铁,去百度家啦。

ARP协议

通过IP地址找到百度家的小区后,我们还不知道他的服务器的具体的MAC地址,但是ARP协议知道呀,我们只需要问一下ARP协议就好了。

HTTP响应

我们终于来到了百度家门口,百度会给我们一个响应,告诉我们可以进来了。当我们收到HTTP响应后,就可以看到百度完整的Web页面了。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值