面试题:百度
1.从输入URL到页面渲染
(1)DNS解析获取ip
(2)浏览器发送请求与服务器进行交互
(3)浏览器收到返回的信息,渲染页面;
简单来说,DNS本质是一个数据库,记录了很多的URL和对应的IP地址
整个过程:
一个url通过DNS解析(获取i到ip地址) ——>>
在浏览器或者本机的操作系统中进行dns缓存查询(都会形成Dns记录) ——>>
通过查看缓存或者产生新的DNS记录,获取到ip地址之后与服务器之间建立连接(三次握手) ——>>
浏览器根据IP和端口,发送http请求 ——>>
服务器接收到请求,返回响应报文 ——>>
浏览器解析返回来的html文档(构建DOM树) ——>>
断开连接(TCP四次挥手)
2.get 和post的区别
get是以检索和获取为主,一般在url上表名请求的所有内容,请求体中一般不会有内容
post是以创建个更新为主,因为内容比较大,故请求体中有内容
因为url的长度是限制的,一般会由浏览器限制,像谷歌一般会限制2kb,也就是2048个字符,同
时url的组成是由字母数字和某些特殊字符组成,所以当输入汉字进行检索的时候是会将其进行编码的。
get会做缓存,post不做缓存。
3.eventLoop
4.setTimeout 误差原因
5.深浅拷贝
6.跨域原因及解决方案
7.css放在头部,js放在尾部
8.css触发bfc
9.webpack plugin和loader区别
10.前端优化
11.协商缓存
浏览器缓存(Brower Caching):是浏览器在本地磁盘对用户最近请求过的文档进行存储,
当访问者再次访问同一页面时,浏览器就可以直接从本地磁盘加载文档。
(1)强缓存:不会向服务器发送请求,直接从缓存中读取资源,状态码是200;
(2)协商缓存:向服务器发送请求,服务器会根据这个请求的Request headers的一些参数来判断是否命中协商缓存,如果命中,从缓存中读取数据,返回304状态码
cache-control: max-age=xxxx,public
客户端和代理服务器都可以缓存该资源;
客户端在xxx秒的有效期内,如果有请求该资源的需求的话就直接读取缓存,statu code:200 ,如果用户做了刷新操作,就向服务器发起http请求
cache-control: max-age=xxxx,private
只让客户端可以缓存该资源;代理服务器不缓存
客户端在xxx秒内直接读取缓存,statu code:200
cache-control: max-age=xxxx,immutable
客户端在xxx秒的有效期内,如果有请求该资源的需求的话就直接读取缓存,statu code:200 ,即使用户做了刷新操作,也不向服务器发起http请求
cache-control: no-cache
跳过设置强缓存,但是不妨碍设置协商缓存;一般如果你做了强缓存,只有在强缓存失效了才走协商缓存的,设置了no-cache就不会走强缓存了,每次请求都回询问服务端。
12.长列表优化
13.webview交互
14.vue响应式原理
15.原型
24万+

被折叠的 条评论
为什么被折叠?



