补充 400 和 401、403 状态码

参考回答:
(1)400 状态码:请求无效
产生原因:
前端提交数据的字段名称和字段类型与后台的实体没有保持一致
前端提交到后台的数据应该是 json 字符串类型,但是前端没有将对象 JSON.stringify
转化成字符串。
解决方法:
对照字段的名称,保持一致性
将 obj 对象通过 JSON.stringify 实现序列化
(2)401 状态码:当前请求需要用户验证
(3)403 状态码:服务器已经得到请求,但是拒绝执行

fetch 发送 2 次请求的原因

参考回答:
fetch 发送 post 请求的时候,总是发送 2 次,第一次状态码是 204,第二次才成功?
原因很简单,因为你用 fetch 的 post 请求的时候,导致 fetch 第一次发送了一个
Options 请求,询问服务器是否支持修改的请求头,如果服务器支持,则在第二次中发
送真正的请求。

Cookie、sessionStorage、localStorage 的区别

共同点:都是保存在浏览器端,并且是同源的
Cookie:cookie 数据始终在同源的 http 请求中携带(即使不需要),即 cookie 在浏
览器和服务器间来回传递。而 sessionStorage 和 localStorage 不会自动把数据发给
服务器,仅在本地保存。cookie 数据还有路径(path)的概念,可以限制 cookie 只属
于某个路径下,存储的大小很小只有 4K 左右。 (key:可以在浏览器和服务器端来回
传递,存储容量小,只有大约 4K 左右)
sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持,
localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;
cookie 只在设置的 cookie 过期时间之前一直有效,即使窗口或浏览器关闭。(key:
本身就是一个回话过程,关闭浏览器后消失,session 为一个回话,当页面不同即使是
同一页面打开两次,也被视为同一次回话)
localStorage:localStorage 在所有同源窗口中都是共享的;cookie 也是在所有同源
窗口中都是共享的。(key:同源窗口都会共享,并且不会失效,不管窗口或者浏览器
关闭与否都会始终生效)
补充说明一下 cookie 的作用:
保存用户登录状态。例如将用户 id 存储于一个 cookie 内,这样当用户下次访问该页
面时就不需要重新登录了,现在很多论坛和社区都提供这样的功能。 cookie 还可以设
置过期时间,当超过时间期限后,cookie 就会自动消失。因此,系统往往可以提示用
户保持登录状态的时间:常见选项有一个月、三个 月、一年等。跟踪用户行为。例如一个天气预报网站,能够根据用户选择的地区显示当地的天气情
况。如果每次都需要选择所在地是烦琐的,当利用了 cookie 后就会显得很人性化了,
系统能够记住上一次访问的地区,当下次再打开该页面时,它就会自动显示上次用户
所在地区的天气情况。因为一切都是在后 台完成,所以这样的页面就像为某个用户所
定制的一样,使用起来非常方便定制页面。如果网站提供了换肤或更换布局的功能,
那么可以使用 cookie 来记录用户的选项,例如:背景色、分辨率等。当用户下次访问
时,仍然可以保存上一次访问的界面风格。

说一下 web worker

参考回答:
在 HTML 页面中,如果在执行脚本时,页面的状态是不可相应的,直到脚本执行完成
后,页面才变成可相应。web worker 是运行在后台的 js,独立于其他脚本,不会影响
页面你的性能。并且通过 postMessage 将结果回传到主线程。这样在进行复杂操作的
时候,就不会阻塞主线程了。
如何创建 web worker:
检测浏览器对于 web worker 的支持性
创建 web worker 文件(js,回传函数等)
创建 web worker 对象

对 HTML 语义化标签的理解

参考回答:
HTML5 语义化标签是指正确的标签包含了正确的内容,结构良好,便于阅读,比如 nav
表示导航条,类似的还有 article、header、footer 等等标签。

iframe 是什么?有什么缺点?

参考回答:
定义:iframe 元素会创建包含另一个文档的内联框架
提示:可以将提示文字放在之间,来提示某些不支持 iframe 的浏
览器
缺点:
会阻塞主页面的 onload 事件
搜索引擎无法解读这种页面,不利于 SEO
iframe 和主页面共享连接池,而浏览器对相同区域有限制所以会影响性能。

Doctype 作用?严格模式与混杂模式如何区分?它们有何意义?

参考回答:Doctype 声明于文档最前面,告诉浏览器以何种方式来渲染页面,这里有两种模式,严
格模式和混杂模式。
严格模式的排版和 JS 运作模式是 以该浏览器支持的最高标准运行。
混杂模式,向后兼容,模拟老式浏览器,防止浏览器无法兼容页面。

Cookie 如何防范 XSS 攻击,Cookie 和 session 的区别

参考回答:
XSS(跨站脚本攻击)是指攻击者在返回的 HTML 中嵌入 javascript 脚本,为了减轻这
些攻击,需要在 HTTP 头部配上,set-cookie:
httponly-这个属性可以防止 XSS,它会禁止 javascript 脚本来访问 cookie。
secure - 这个属性告诉浏览器仅在请求为 https 的时候发送 cookie。
结果应该是这样的:Set-Cookie=……
Cookie 和 session 的主要区别是:
HTTP 是一个无状态协议,因此 Cookie 的最大的作用就是存储 sessionId 用来唯一标识
用户。