个人收录,你不知道的,总会在这里找到答案,自己的强大才是真的强大,希望我写的也可以帮到你。
1、页面从输入URL到页面加载显示完成,这个过程中都发生了什么?
- 1.输入域名地址
- 2.发送至DNS服务器并获得域名对应的WEB服务器IP地址;
- 3.与WEB服务器建立TCP连接;
- 4.服务器的永久重定向响应(从 到 )
- 5.浏览器跟踪重定向地址
- 6.服务器处理请求
- 7.服务器返回一个HTTP响应
- 8.浏览器显示 HTML
- 9.浏览器发送请求获取的资源(如图片、音频、视频、CSS、JS等等)
- 10.浏览器发送异步请求
这里我贴一篇不久前写的文章 在浏览器地址栏键入URL,按下回车之后会经历了那些事
2、浏览器工作原理
1.用户界面 、2.网络 、3.UI后端 、4.数据存储 、5.浏览器引擎 、6.渲染引擎 、7.js解释器、
3、浏览器解析过程:
流程:解析 以构建 树 构建 树布局 树绘制 树
4.介绍一下你对浏览器内核的理解?
主要分成两部分:和。
渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。
JS引擎则:解析和执行javascript来实现网页的动态效果。最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。
5.常见的浏览器内核有哪些?
- :IE,360,傲游,搜狗,世界之窗,腾讯等。
- :Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等
- :Opera7及以上。
- :Safari,Chrome等。
6.请描述一下 cookies,sessionStorage 和 localStorage 的区别?
是网站为了标示用户身份而储存在用户本地终端上的数据(通常经过加密),数据会在浏览器和服务器间来回传递。
和不会自动把数据发给服务器,仅在本地保存。
存储大小:
- 数据大小不能超过。
- 和 虽然也有存储大小的限制,但比大得多,可以达到 或更大。
有期时间:
- 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
- 数据在当前浏览器窗口关闭后自动删除.
- 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
7.请大概描述下页面访问cookie的限制条件
跨域问题,设置了。
8.如何实现浏览器内多个标签页之间的通信? (阿里)
调用、等本地存储方式
9.页面可见性(Page Visibility API) 可以有哪些用途?
通过 的值检测页面当前是否可见,以及打开网页的时间等;
在页面被切换到其他后台进程的时候,自动暂停音乐或视频的播放
10.网页验证码是做什么的,是为了解决什么安全问题。
区分用户是的公共全自动程序。可以;
有效进行不断的登陆尝试。
11.为什么利用多个域名来存储网站资源?
缓存更方便 ,突破浏览器并发限制 节约带宽 ,节约主域名的连接数,优化页面响应速度 防止不必要的安全问题
12.谈一下你对网页标准和标准制定机构重要性的理解。
和都是为了能让 发展的更‘健康’,开发者遵循统一的标准,降低开发难度,开发成本,也会更好做,也不会因为滥用代码导致各种 、安全问题,最终提高网站易用性。
13.知道什么是微格式吗?
是一种让机器可读的语义化 词汇的集合,是结构化数据的开放标准。是为特殊应用而制定的特殊格式
:将智能数据添加到网页上,让网站内容在搜索引擎结果界面可以显示额外的提示。
14.一个页面上有大量的图片,加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。
- (1)图片懒加载,在页面上的未可视区域可以添加一个滚动条事件,判断图片位置与浏览器顶端的距离与页面的距离,如果前者小于后者,优先加载。
- (2)如果为幻灯片、相册等,可以使用图片预加载技术,将当前展示图片的前一张和后一张优先下载。
- (3)如果图片过大,可以使用特殊编码的图片,加载时会先加载一张压缩的特别厉害的缩略图,以提高用户体验。
- (4)如果图片展示区域小于图片的真实大小,则因在服务器端根据业务需要先行进行图片压缩,图片压缩后大小与展示一致。
可以看看这篇文章 关于前端优化的一些方案
15.谈谈以前端角度出发做好SEO(搜索引擎)需要考虑什么?
合理的标签使用, 主要的互联网目录,链接交换和链接广泛度。
16.请写出一些前端性能优化的方式,越多越好
- 1.减少dom操作
- 2.部署前,图片压缩,代码压缩
- 3.优化js代码结构,减少冗余代码
- 4.减少http请求,合理设置 HTTP缓存
- 5.使用内容分发cdn加速
- 6.静态资源缓存
- 7.图片延迟加载
可以看看这篇文章 关于前端优化的一些方案
17.描述一下渐进增强和优雅降级之间的不同?
:是从复杂的现状开始,并试图减少用户体验的供给,而则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要。意味着往回看;而则意味着朝前看,同时保证其根基处于安全地带。
18.webSocket如何兼容低浏览器?(阿里)
- Adobe Flash Socket
- ActiveX HTMLFile (IE)
- 基于 multipart 编码发送 XHR
- 基于长轮询的 XHR
19.web开发中会话跟踪的方法有哪些
- 1.cookie
- 2.session
- 3.url重写
- 4.隐藏input
- 5.ip地址
20.HTTP method
- 1.一台服务器要与兼容,只要为资源实现和方法即可。
- 2.是最常用的方法,通常发送某个资源。
- 3. 与 类似,但服务器在响应中值返回首部,不返回实体的主体部分。
- 4. 让服务器用请求的主体部分来创建一个由所请求的 命名的新文档,或者,如果那个 已经存在的话,就用干这个主体替代它。
- 5. 起初是用来向服务器输入数据的。实际上,通常会用它来支持HTML的表单。表单中填好的数据通常会被送给服务器,然后由服务器将其发送到要去的地方。
- 6. 会在目的服务器端发起一个,最后一站的服务器会弹回一个响应并在响应主体中携带它收到的。 方法主要用于诊断,用于验证请求。
- 7. 方法请求 服务器告知其支持的各种功能。可以查询服务器支持哪些方法或者对某些特殊资源支持哪些方法。
- 8. 请求服务器删除请求 指定的资源。
21.HTTP response报文结构是怎样的
rfc2616中进行了定义:
- 1.首行是状态行包括:HTTP版本,状态码,状态描述,后面跟一个
- 2.首行之后是若干行响应头,包括:
- 3.响应头部和响应实体之间用一个 空行分隔
22.HTTP状态码及其含义
举例状态码类型:
23.什么是同源:协议相同 域名相同 端口相同
同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。
如果非同源,共有三种行为受到限制
- 1.、 和 无法读取。
- 2. 无法获得。
- 3. 请求不能发送。
24.关于建站安全防护
译为跨站脚本攻击,具体是指攻击者在Web页面里插入恶意Script脚本,当用户浏览该网页时,Script代码会被执行,从而进行恶意攻击。
关键字段设置
输入检查,特殊字符 < > / &等,对其进行转义后存储
本质上讲,是黑客将一个http接口中需要传递的所有参数都预测出来,然后不管以什么方式,他都可以根据他的目的来任意调用你的接口,对服务器实现CURD。
使用验证码,更高级用图灵测试
通常没有任何过滤,直接把参数存放到了SQL语句当中
根本上防止注入的方法,就是参数化查询或者做词法分析。
利用,寻找利用系统应用的瓶颈;阻塞和耗尽;当前问题:用户的带宽小于攻击的规模,噪声访问带宽成为木桶的短板。
25.对前端工程化的理解
- 1.开发规范
- 2.模块化开发
- 3.组件化开发
- 4.组件仓库
- 5.性能优化
- 6.项目部署
- 7.开发流程
- 8.开发工具
26.AMD和CMD是什么?它们的区别有哪些?
和 是二种模块定义规范。现在都使用模块化编程,;。AMD依赖前置,CMD依赖就近。CMD的 职责单一,没有全局,AMD的一个可以多用。
27.MVC BFC
的缩写,一种软件设计典范使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。
, 中文为“”。流体特性:块状水平元素,如div元素(下同),在默认情况下(非浮动、绝对定位等),水平方向会自动填满外部的容器;。
28.你如何对网站的文件和资源进行优化?
期待的解决方案包括:文件合并文件最小化/文件压缩使用CDN托管缓存的使用(多个域名来提供缓存)其他。
29.如果网页内容需要支持多语言,你会怎么做?
- 1.应用字符集的选择,选择UTF-8编码
- 2.语言书写习惯&导航结构
- 3.数据库驱动型网站
30.如果设计中使用了非标准的字体,你该如何去实现?
所谓的标准字体是多数机器上都会有的,或者即使没有也可以由默认字体替代的字体。
方法:
- 用图片代替
- web fonts在线字库,如等等;http://www.chinaz.com/free/20…;
- ,Webfonts(字体服务例如:Google Webfonts,Typekit等等。)
31.如何自学一门新编程语言
- (1)了解背景知识:历史、现状、特点、应用领域、发展趋势
- (2)搭建开发环境,编写HelloWorld
- (3)声明变量和常量
- (4)数据类型
- (5)运算符
- (6)逻辑结构
- (7)通用小程序
- (8)函数和对象
- (9)第三方库、组件、框架
- (10)实用项目
32.什么是哈希表?
,是根据关键码值直接进行访问的数据结构。也就是说,它通过把映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做。
33.静态网页和动态网页区别:
网页内容任何人在任何时间访问都是不变的
网页内容不同人在不同时间访问可能是不同的
34.SQL语句的分类
- DDL:数据定义语句
- DCL:数据控制语句
- DML:操作操作语句
- DQL:查询语句
35.什么是弹性布局?
解决某元素中“”的布局方式,为布局提供最大的灵活性。
设为 布局以后,子元素的 和属性将失效!!!
; 属性 定义子元素的位置。
36.编写响应式?
- 1.声明viewport元标签
- 2.使用流式布局
- 3.所有容器使用相对尺寸,不用绝对尺寸
- 4.(最重要原则)使用CSS3 Media Query技术
37.常见的浏览器兼容问题?
- 1.不同浏览器的标签默认的内.外补丁不同。*{margin:0;padding:0;}
- 2.图片默认有间距使用float属性为img布局
- 3.居中问题(而FF默认为左对齐)
- 4.CSS 兼容前缀 、、、、
- 5.使用CSS Hack 如: 、
38.H5新特性:
- (1)
- (2)
- (3)
- (4)
- 是运行在后台的 JS,独立于其他脚本,不会影响页面的性能。
- (5)
- 1.Cookie技术 ( 兼容性好,数据不能超4kb,操作复杂)
- 2.(兼容性差,数据8MB,操作简单)sessionStorage
- 3.localStorage
- (6)
- WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。
39.C3新特性:
- 1.复杂的选择器
- 2.弹性布局
- 3.动画
40.什么是typescript
- 1.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。
- 2.扩展了JavaScript的语法,所以任何现有的JavaScript程序可以不加改变的在TypeScript下工作。是为大型应用之开发而设计,而编译时它产生 JavaScript 以确保兼容性。
41.三大框架的区别:
- Angular带有比较强的排它性的
- React主张是函数式编程的理念,侵入性没有Angular那么强,主要因为它是软性侵入。
- Vue 渐进式的
42.spa应用
**优点:**用户体验好 、良好的前后端分离。
缺点:
- 1.不利于SEO。
- 2.初次加载耗时相对增多。
- 3.导航不可用,如果一定要导航需要自行实现前进、后退。
43.什么是模块化编程?
每个模块内部,变量代表当前模块。
这个变量是一个对象,它的属性(即)是对外的接口。加载某个模块,其实是加载该模块的属性。
44.性能优化?
- 1.使用 CDN
- 2.图片懒加载
- 3.使用外部 JavaScript 和 CSS
- 4.压缩 JavaScript 、 CSS 、字体、图片等
- 5.优化 CSS Sprite
- 6.减少 HTTP 请求数
- 7.减少 DNS 查询
- 8.减少 DOM 元素数量
- 9.减少 DOM 操作
- 10.把脚本放在页面底部
可以看看这篇文章 关于前端优化的一些方案
45.什么是HTTP协议:
- HTTP是一个客户端和服务器端请求和应答的标准。
- 和 协议的区别:
- 不支持 数据的压缩,而支持