【回顾】浏览器请求www.baidu.com的大概全过程

前言

当浏览器发送一个请求到你所访问的网站的机器,响应的过程是怎样的呢?
假设我们电脑的相关配置为:
ip地址:192.168.31.37
子网掩码:255.255.255.0
网关地址:192.168.31.1
DNS地址:8.8.8.8

请求发送与响应的过程

1、当浏览器发送请求去访问www.baidu.com时,首先会到DNS服务器进行对域名的解析,返回相应的ip地址给浏览器,如:
在这里插入图片描述

接着会判断两个ip地址172.194.26.108与192.168.31.37是不是一个子网的;
2、这两个ip地址明显不是一个子网,就得发送一个数据包给网关,相当于路由器的作用,地址是192.168.31.1;
在这之前需要把浏览器发出的请求打包成一个数据包,把http请求给打包到数据包中去,http协议分为几个部分:
请求方法+URL地址+http版本,如:GET http://172.194.26.108/test HTTP/1.1,
请求头:
Host:upload.guangzhou.io
Proxy-Connection: keep-alive
User-Agent: Mozilla/5.0

空行

请求体:比如常见的可以放一个json串

由此就构成了http请求报文;

3、请求传递的过程
浏览器请求一个地址时,先按照应用层的http协议,封装一个应用层数据包,数据包里放了http请求报文;
接着就来到了传输层,走的是tcp协议,tcp协议会要求我们设置端口,发送方的端口一般会发送数据到接收方的80端口,这时候会把应用层数据包给封装到tcp数据包中去,会加上一个tcp头,这个tcp头里就放了端口号信息;
接着就来到了网络层,走的是ip协议,会把tcp头和tcp数据包封装到以太网数据包里去,然后再加上一个ip头,ip头里有本机和目标机器的ip地址,这里的本机ip地址为192.168.31.37,目标机器ip地址为172.194.26.108;
接着就来到了数据链路层,走的是以太网协议,会把ip头和ip数据包封装到以太网数据包里去,加上一个以太网数据包的头,里面包含本机网卡的mac地址,网关的mac地址。
在这里插入图片描述

之后一个以太网数据包会被切割为4个数据包,每个数据包里包含以太网头,ip头和切割后的ip数据包。ip头里包含了每个数据包的序号,这4个以太网数据包通过交换机发到你的网关上,然后你的路由器可以联通别的子网,将数据包转发到别的子网的路由器里去,最后到达百度的某台服务器机器;
在这里插入图片描述
百度服务器接收到4个以太网数据包以后,根据ip头的序号,把4个以太网数据包里的ip数据包给拼起来,还原成一个完整的ip数据包。接着从ip数据包里拿出tcp数据包,再从tcp数据包里拿出http数据包,读取出http数据包里的各种协议内容,转给服务器上部署的系统去执行,把结果进行响应。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值