Ajax(1) => http请求面试题

1. http请求面试题

几个名词

  1. DNS服务器:是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器(在浏览器中既能用ip来访问服务器,也能用域名如www.baidu.com访问服务器,原因就是DNS服务器对域名和主机ip进行了绑定,在互联网中访问域名首先会进入DNS服务器中进行域名解析并指引到对应的主机IP上)

  2. 客户端:是指与服务器相对应,为客户提供本地服务的程序

  3. 服务器:在网络中为其它客户机提供计算或者应用服务

  4. http事务:一次完整的http请求,包括请求(request)和响应(response),两者缺一不可


面试必问:打开浏览器,输入网址,回车,到看到整个页面,经历什么过程?

【http请求阶段,发送请求】

①:首先从URL中解析主机名,先查询本地DNS缓存列表,若没找到对应主机名,则浏览器首先向DNS域名解析服务器发送请求获取主机名

​ DNS服务器进行域名反解析,找到在服务器中对应域名的主机外网IP,www.baidu.com => 182.61.200.6

②:其次从URL中解析目标端口号,与目标主机建立基于tcp/ip协议的连接(三次握手四次挥手)

【http响应阶段,发回数据】

③:服务器根据URL中的路径名称,参数,以及哈希值,把客户端的数据进行准备

④:把数据响应给客户端(如果请求的是HTML或者CSS等这样的资源文件,服务器返回的是资源文件中的源代码[不是文件本身])

【浏览器渲染阶段,绚烂页面】

⑤:浏览器客户端接收服务器返回的源代码,基于自己内部的渲染引擎(内核)开始进行页面的绘制和渲染

​ => 首先计算DOM结构,生成DOM TREE
​ => 自上而下运行代码,加载CSS等资源内容
​ => 根据获取的CSS生成带样式的RENDER TREE
​ => 开始渲染和绘制

一个页面完全加载完成,需要向服务器发起很多次HTTP事务操作
一般来说:首先把HTML源代码拿回来,加载HTML的时候,遇到link/script/img[src]/iframe/video和audio[没有设置preload=‘none’]…都会重新和服务器端建立HTTP事务交互(进行文件媒体数据请求)

  • 特殊情况:如果我们做了资源缓存处理(304),而且即将加载的资源在之前已经加载过了,这样的操作和传统的HTTP事务有所不一样,他们是从服务器和浏览器的缓存中读取数据,比传统的读取快很多

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值