面试系列之http协议讲解预热

前言

本篇文章主要讲解http协议,无论是前端开发还是后端开发者,http协议都是必须要知道一个知识。

与Http协议密切相关的DNS,TCP,IP

我们在浏览器输入一个地址后,计算机和浏览器从开始做了哪些事情,以chrome浏览器为例子:从场景1进行到场景4

场景1-DNS(应用层)

地址输入成功后,首先会到达负责域名解析的DNS服务
1. 首先Chrome搜索自身的DNS缓存。看浏览器自身的缓存中是否有输入的域名对应的ip地址。如果有直接拿过来用(这个过程需要一分钟)
2. 浏览器本身没有,搜索操作系统自身的DNS缓存(浏览器没有找到缓存或者缓存已经失效)
3. 操作系统的DNS缓存也没有找到,就会尝试读取本地的HOST文件
4. 如果Host文件中也没有找到,浏览器发起一个DNS的一个系统调用(域名解析请求,一半都是运营商提供的)
- 宽带运营上服务器查看本身缓存,找到对应的域名条目
- 如果未找到,运营商服务器会代替我们的浏览器发起一个迭代DNS解析的请求,(首先去找根域的ip地址,一层一层的询问,最后找到我们输入域名的ip地址),找到后就会把这个ip地址结果发给我们运营商服务器,运营商服务器把结果返回操作系统内核同时缓存起来。操作系统内核就会把ip地址结果返回浏览器,最终浏览器拿到了输入域名的地址
5. 浏览器获得域名对应的ip地址后

场景2-TCP(传输层)

浏览器拿到对应域名的ip地址后,带着http数据进入传输层,TCP传输层为了确保数据能到达目标,发送端与接收端经典的三次握手。

握手过程使用了TCP的标志(flag)-SYN(synchronize)和ACK(anknowlegement)

场景3-IP协议(网络层)

注意这里的IP协议和IP地址不要弄混,两个完全不同的概念。

  1. IP协议的作用是把各种数据包传输给对方。但是要是能保证确实传输到对方哪里,还需要满足两个重要条件IP地址和MAC地址都要是对的。IP间的通信依赖MAC地址
  2. 传输过程中使用ARP协议凭借MAC地址进行通信。ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。查找过程也是不断中转的过程,一站一站的中转,最终确认那个ip接收端对应的正确MAC地址。这
  3. 确认了正确的MAC地址之后,增加了作为通信目的地的MAC地址后转,就可以继续把http数据往下传递,转发给链路层。

场景4 链路层

接收端的服务器在链路层接收到数据,就会往自己上一层发送,重新走一遍IP协议——TCP协议——最后传输到应用层,这时候真正接收到了由客户端发送过来的http请求。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值