面试题

在地址栏输入网址敲回车发生了什么?

一.浏览器解析出url中的域名: url由通信协议+域名+端口号+资源路径组成,浏览器需要从url中解析要请求的域名

二.DNS解析:

1.查询浏览器的DNS缓存

2.若浏览器缓存中未找到该域名对应的ip,则查找操作系统的DNS缓存,即hosts文件中的域名与ip的映射关系

3.若在操作系统缓存中也没有找到,则查找本地DNS服务器缓存。

4.若本地DNS缓存中仍然没有找到,则直接请求Root Server域名服务器

5.根域名服务器返回给本地服务器一个所查询域的主域名服务器(gTLD Server)地址,gTLD是顶级域名服务器,如.com、.cn、.org等。

6,.本地域名服务器向上一步返回的gTLD服务器发送解析请求。

7.gTLD接受请求查找并返回此域名对应的Name Server域名服务器的地址

8.本地域名服务器向Name Server域名服务器发送解析请求,Name Server域名服务器找到该域名对应的ip,连同一个TTL值返回给本地域名服务器。

9.本地域名服务器缓存该域名和ip的对应关系,缓存时间由TTL的值控制

10.把解析结果返回给用户,用户根据TTL值进行缓存。

三.客户端与服务器建立TCP连接

第一次握手:客户端向服务器端发送请求(SYN=1) 等待服务器确认;

第二次握手:服务器收到请求并确认,回复一个指令(SYN=1,ACK=1);

第三次握手:客户端收到服务器的回复指令并返回确认(ACK=1)。

四.四次挥手:

  1. 浏览器所在主机向服务器发出连接释放报文,然后停止发送数据;
    
  2. 服务器接收到释放报文后发出确认报文,然后将服务器上未传送完的数据发送完;
    
  3. 服务器数据传输完毕后,向客户机发送连接释放报文;
    
  4. 客户机接收到报文后,发出确认,然后等待一段时间后,释放TCP连接;
    

什么是BFC?什么情况下触发BFC

什么是BFC?
BFC 全称为: 块格式化上下文,

什么情况下触发BFC?
根元素或其它包含它的元素

浮动元素 (元素的 float 不是 none)

绝对定位元素 (元素具有 position 为 absolute 或 fixed)

内联块 (元素具有 display: inline-block)

表格单元格 (元素具有 display: table-cell,HTML表格单元格默认属性)

表格标题 (元素具有 display: table-caption, HTML表格标题默认属性)

  具有overflow 且值不是 visible 的块元素,

  display: flow-root

你可能感兴趣的:(面试题)