计算机网络-HTTP的请求过程

层层包装,再层层分解。

在浏览器里输入https://www.kaola.com,这是一个URL。浏览器只知道名字是www.kaola.com,但不知道具体的地点。

1、于是,浏览器打开地址簿查找,一般使用DNS去查找,还可以使用另一种更加精准的地址簿查找协议HTTPDNS。无论用哪一种方式查找,最终都会得到这个地址:106.114.138.24。这个是IP地址,是互联网世界的门牌号。

2、知道了目标的IP地址,浏览器就会打包它的请求。对于普通的浏览请求,往往会使用HTTP协议;但对于购物的请求,往往需要加密的传输,会使用HTTPS协议。无论是什么协议,里面都会写明你要买什么和买多少。

3、DNS、HTTP、HTTPS所在的层称为应用层。经过应用层封装后,浏览器会将应用层的包交给下一层传输层去完成,传输层通过socket编程来实现。传输层有两种协议,一种是无连接的协议UDP,一种是面向连接的协议TCP。对于支付来讲,往往使用TCP协议。所谓面向连接就是,TCP会保证这个包能够到达目的地,如果不能到达就会重新发送,直至到达。TCP协议里会有两个端口,一个是浏览器监听的端口,一个是电商服务器监听的端口。操作系统往往通过端口来判断,它得到的包应该给哪个进程。

4、传输层封装完毕后,浏览器会将包交给操作系统的网络,网络层的协议是IP协议。在IP协议里面会有源IP地址,即浏览器所在机器的IP地址和目标IP地址,即电商网站所在服务器的IP地址。

5、操作系统既然知道了目标IP地址,就开始想如何根据这个门牌号找到目标机器。操作系统会判断这个目标IP地址是本地人,还是外地人(根据子网掩码判断源IP和目标IP是否在同一个子网)。显然,电商网站不在本地。操作系统启动的时候,就会被DHCP协议配置IP地址,以及默认的网关IP地址192.168.1.1。

6、操作系统如何将根据默认网关的IP地址发送数据包给默认网关呢?因为默认网关和当前浏览器机器在同一个子网,属于本地通信。于是操作系统大吼一声,谁192.168.1.1。网关会回答它,我就是,我的本地地址在村东头,这个本地地址就是MAC地址,而大吼一声就是ARP协议

7、操作系统将IP包就给了下一层,也就是MAC层。网卡再把包发出去。由于这个包里是有MAC地址的,因此能够到达网关。网管收到包后,会根据自己的知识,判断下一步该怎么走。网关往往是一个路由器。路由器中有路由表,里面记录了到某个IP地址该怎么走。路由器有点像唐僧西行路过的一个个国家的城关。每个城关连接着两个国家,每个国家相当于一个局域网,在每个国家内部,都可以使用本地的地址MAC进行通信。

8、一旦跨越城关(路由器),就要拿出IP,里面写着源IP和目的IP。城关往往知道路该怎么走,因为城关经常和邻近的城关沟通,到哪里该怎么走。这种沟通的协议称为路由协议,常用的有OSPFBGP。城关和城关之间是一个国家,当网络包知道下一步去哪个路由,还是要使用这个国家内部的MAC地址,通过下一个城关的MAC地址找到下一个城关,然后问下一步该怎么走。一直走到最后一个城关。

9、最后一个城关知道这个网络包要去的地方,于是对这个国家吼一声谁是目标IP?目标服务器就会回一个MAC地址。网络包过关后,通过这个MAC地址就可以找到目标服务器。目标服务器收到了这个网络包,发现MAC地址对上了,将取下MAC头后的网络包发送给操作系统的网络层。发现IP也对上了,取下IP头。IP头里写的是TCP协议,然后将其发送给传输层。

10、在传输层,对于每个收到的包,都会有一个回复的包说明收到了。当网络包平安到达TCP层之后,TCP头中有目标端口号,通过这个端口号可以找到电商网站的进程正在监听这个端口号,假设有一个Tomcat,就会将这个包发给电商网站。

11、电商网站进程得到了HTTP请求,知道了买东西,买多少。往往电商网站最初接待HTTP请求的这个Tomcat只是接待员,负责统筹处理请求,而不是所有事情都自己做。具体的服务通过RPC框架统一处理,交给其他进程去做。

12、当接待员发现相应进程处理完毕,就恢复HTTPS的包,告知下单成功。这个HTTPS的包会向来的时候,经历千难万险到达你的个人电脑,最后进入浏览器显示支付成功。

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值