【学姐面试宝典】—— 前端基础篇Ⅱ(HTTP/HTML/浏览器)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

前言

博主主页👉🏻蜡笔雏田学代码
专栏链接👉🏻【前端面试专栏】
今天继续学习前端面试题相关的知识
感兴趣的小伙伴一起来看看吧~🤞

文章目录


在这里插入图片描述

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

作用是Doctype 声明于文档最前面告诉浏览器以何种方式来渲染页面。
这里有两种模式严格模式混杂模式

  • 严格模式的排版和 JS 运作模式是 以该浏览器支持的最高标准运行。
  • 混杂模式向后兼容模拟老式浏览器防止浏览器无法兼容页面。

Cookie 如何防范 XSS 攻击

XSS跨站脚本攻击是指攻击者在返回的 HTML 中嵌入 javascript 脚本为了减轻这些攻击需要在 HTTP 头部配上set-cookie
httponly-这个属性可以防止 XSS它会禁止 javascript 脚本来访问 cookie。
secure- 这个属性告诉浏览器仅在请求为 https 的时候发送 cookie。 结果应该是这样的Set-Cookie= < < <cookie-value > > >

cookie 和 session 的区别localStorage 和 sessionStorage 的区别

HTTP 是一个无状态协议因此 Cookie 的最大的作用就是存储sessionId 用来唯一标识用户

  1. cookie 数据存放在客户的浏览器session 数据存放在服务器上。
  2. cookie 不是很安全别人可以分析存放在本地的 cookie 并进行 cookie 欺骗所以 cookie 一般用来存放不敏感的信息比如 用户设置的网站主题敏感的信息用 session 存储比如用户的登陆信息考虑到安全应当使用 session
  3. session 会在一定时间内保存在服务器上。当访问增多会比较占用你服务器的性能考虑到减轻服务器性能方面应当使用 cookie
  4. 单个 cookie 保存的数据不能超过 4K很多浏览器都限制一个站点最多保存 20 个 cookie。
  5. session 可以存放于文件数据库内存中都可以cookie 可以在服务器端响应的时候设置也可以客户端通过 JS 设置

下面从几个方向区分一下 cookielocalStoragesessionStorage 的区别。

  1. 生命周期

Cookie可设置失效时间否则默认为关闭浏览器后失效
LocalStorage除非被手动清除否则永久保存
SessionStorage仅在当前网页会话下有效关闭页面或浏览器后就会被清除

  1. 存放数据

Cookie4k 左右
LocalStorage 和 SessionStorage可以保存 5M 的信息

  1. http 请求

Cookie每次都会携带在 http 头中如果使用 cookie 保存过多数据会带来性能问题
LocalStorage 和 SessionStorage仅在客户端即浏览器中保存不参与和服务器的通信

  1. 易用性

Cookie需要程序员自己封装原生的 cookie 接口不友好
LocalStorage 和 SessionStorage即可采用原生接口亦可再次封装

  1. 应用场景

从安全性来说因为每次 http 请求都会携带 cookie 信息这样子浪费了带宽所以 cookie 应该尽可能的少用此外 cookie 还需要指定作用域不可以跨域调用限制很多但是用户识别用户登陆来说cookie还是比storage好用其他情况下可以用storagelocalstorage 可以用来在页面传递参数sessionstorage 可以用来保存一些临时的数据防止用户刷新页面后丢失了一些参数。

一句话概括 RESTFUL

就是用 URL 定位资源用 HTTP 描述操作。

讲讲 viewport 和移动端布局

可以参考这篇文章 响应式布局的常用解决方案对比(媒体查询、百分比、rem 和 vw/vh

addEventListener 参数

addEventListener(event, function, useCapture)其中event 指定事件名function 指定要事件触发时执行的函数useCapture 指定事件 是否在捕获或冒泡阶段执行。

http 常用请求头

Authorization用于表示 HTTP 协议中需要认证资源的认证信息
Cookie由于之前服务器通过Set-Cookie设置的一个HTTP协议Cookie
Content-Type请求体的 MIME 类型 用于 POST 和 PUT 请求中
Origin发起一个针对跨域资源共享的请求该请求要求服务器在响应中加入一个 Access-Control-Allow-Origin的消息头表示访问控制所允许的来源
Proxy-Authorization用于向代理进行认证的认证信息
User-Agent浏览器的身份标识字符串

强缓存和协商缓存

缓存分为两种强缓存和协商缓存根据响应的 header 内容来决定。

缓存类型获取资源形式状态码发送请求到服务器
强缓存从缓存取200from cache否直接从缓存取
协商缓存从缓存取304not modified是通过服务器来告知缓存是否可用

强缓存相关字段有 expirescache-control。如果 cache-control 与 expires 同时存在的话 cache-control 的优先级高于 expires。
协商缓存相关字段有 Last-Modified/If-Modified-SinceEtag/If-None-Match

强缓存、协商缓存什么时候用

因为服务器上的资源不是一直固定不变的大多数情况下它会更新这个时候如果我们还访问本地缓存那么对用户来说那就相当于资源没有更新用户看到的还是旧的资源所以我们希望服务器上的资源更新了浏览器就请求新的资源没有更新就使用本地的缓存以最大程度地减少因网络请求而产生的资源浪费。

前端优化

降低请求量合并资源减少 HTTP 请求数minify / gzip 压缩webPlazyLoad。
加快请求速度预解析 DNS减少域名数并行加载CDN 分发。
缓存HTTP 协议缓存请求离线缓存 manifest离线数据缓存 localStorage。
渲染JS/CSS 优化加载顺序服务端渲染pipeline。

GET 和 POST 的区别

get 参数通过 url 传递post 放在 request body 中。
get 请求在 url 中传递的参数是有长度限制的而 post 没有。
get 比 post 更不安全因为参数直接暴露在 url 中所以不能用来传递敏感信息。
get 请求只能进行 url 编码而 post 支持多种编码方式。
get 请求参数会被完整保留在浏览历史记录里而 post 中的参数不会被保留。
get 和 post 本质上就是 TCP 连接并无差别。但是由于 HTTP 的规定和浏览器/服务器的限制导致他们在应用过程中体现出一些不同。
get 产生一个 TCP 数据包post 产生两个 TCP 数据包。

HTTP 支持的方法

GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, CONNECT

HTML5 新增的元素

首先 html5 为了更好的实践 web 语义化增加了 headerfooternavasidesection 等语义化标签在表单方面为了增强表单为 input 增加了 coloremialdatarange 等类型 在存储方面提供了 sessionStoragelocalStorage和离线存储通过这些存储方式方便数据在客户端的存储和获取在多媒体方面规定了音频和视频元素 audio 和 vedio另外还有地理定位canvas 画布拖放多线程编程的 web worker 和 websocket 协议

今天的分享就到这里啦✨ \textcolor{red}{今天的分享就到这里啦✨} 今天的分享就到这里啦

原创不易还希望各位大佬支持一下 \textcolor{blue}{原创不易还希望各位大佬支持一下} 原创不易还希望各位大佬支持一下

🤞 点赞你的认可是我创作的动力 \textcolor{green}{点赞你的认可是我创作的动力} 点赞你的认可是我创作的动力

⭐️ 收藏你的青睐是我努力的方向 \textcolor{green}{收藏你的青睐是我努力的方向} 收藏你的青睐是我努力的方向

✏️ 评论你的意见是我进步的财富 \textcolor{green}{评论你的意见是我进步的财富} 评论你的意见是我进步的财富

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6