一次完整的 HTTP 服务过程(详细)

例题:
当我们在 web 浏览器的地址栏中输入:www.baidu.com,具体发生了什么?
分析: 当面试官问出这句话的时候不仅仅涉及到了http的请求过程,甚至还涉及到了浏览器的解析。

一、Http大致请求流程

  1. www.baidu.com这个网址进行 DNS 域名解析,得到对应的 IP 地址
  2. 根据这个IP,找到对应的服务器,发起 TCP 的三次握手
  3. 建立 TCP 连接后发起HTTP 请求
  4. 服务器响应 HTTP 请求,浏览器得到 html代码
  5. 浏览器解析html代码,并请求 html 代码中的资源(如 js、css、图片等)(先得到 html 代码,才能去找这些资源)
  6. 浏览器对页面进行渲染呈现给用户
  7. 服务器关闭TCP 连接

二、详解请求过程

2.1 DNS怎么找到域名的?(域名解析过程)

  • DNS定义:DNS( Domain Name System)`是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。
  • DNS查询: DNS 查询就是将域名转换成IP 的过程,这个过程短的话 2ms 几乎无感,长则可能达到几秒钟;
  • DNS查找顺序:浏览器缓存-> 系统缓存-> 路由器缓存->ISP DNS缓存 -> 递归搜索; 逐步读取缓存,直到拿到IP地址。
2.1.1 浏览器缓存
  • 浏览器缓存定位:chrome://net-internals/#dns
  • 首先会搜索浏览器自身的DNS缓存,操作系统没有设定浏览器存储DNS记录的时间长短,不同的浏览器都有一个固定时间的缓存,时长1~30分钟不等,主要是为了减少网络请求的损耗;chrome浏览器的缓存只有1分钟,看缓存有没有过期,过期的话缓存的解析就结束了。
  • 浏览器DNS缓存的时间跟DNS服务器返回的TTL值无关。注:TTL(Time-To-Live),域名解析记录在DNS服务器中的存留时间。TTL这个参数告诉本地DNS服务器,域名缓存的最长时间。例如:阿里云解析默认的TTL是10分钟(本地DNS服务器对于域名的缓存时间是10分钟),10分钟之后,本地DNS服务器就会删除这条记录,删除之后,如果有用户访问这个域名,就要重复DNS解析流程。如果网站已经稳定,不会经常更换IP,可将TTL设置到协议的最大值,即24小时,这样可以让域名解析记录更长时间的存放在本地DNS服务器中,加快用户访问。
2.1.2 系统缓
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值