面试题速刷 - 知识广度

  • 网页和iframe如何通讯?(听都没听过iframe)---属于HTML中Web Socket内容

iframe是HTML中的一个元素,它允许在一个HTML页面中嵌入另一个HTML页面。下面是对iframe的简要解释:
定义: iframe代表"内联框架"(Inline Frame)。
用途: 它用于在当前网页中嵌入另一个独立的HTML文档。
iframe 核心API: postMessage,使用它通讯。 要注意跨域的限制和判断。

  • Koa2 洋葱圈模型 (Nodejs)


    一定要先搞清楚 await async,nodejs知识了解即可...

  • 移动端 H5 click有 300ms延迟,如何解决?
    FastClick:

    现代浏览器的改进:width = device-width,手机认为已经做了响应式布局

  • 网络请求中,token和cookie有什么区别?
    cookie跨域不共享、不跨域传递(withCredentials解决)。
    不同端口的cookie是隔绝的,共享不了。即使在同一个页面嵌入一个iframe端口不一样,cookie也是取不到的。(默认情况下)



    禁止第三方cookie:比如用户A正在访问一个网站a的手机选购页面,这个网站同时有一个京东的广告(就是第三方JS),该网页和京东广告都会对用户信息写入cookie,但是该网页和京东广告的cookie是不能共享的。那么当用户A某天访问京东时,京东广告之前写入的第三方cookie就可以派上用场,读取之前设置的第三方cookie发现之前用户浏览过网站a的手机界面,京东就会给用户推荐手机选购,导致了用户隐私泄露。👇


cookie 和 session:


cokie体积很小的,最大只有4kb,主要是用户ID。Session体积很大,存储在服务器中,Session包含了单个用户的身份信息、权限角色、会话状态等等。

  1. 登录请求
    用户在浏览器上访问网站时,通常会填写用户名和密码,然后点击“登录”按钮提交登录表单。
    浏览器将用户的登录信息(如用户名、密码)通过HTTP POST请求发送给服务器。
    服务器接收到请求后,验证用户名和密码是否正确(查数据库)。
  2. 创建Session
    如果用户名和密码验证通过,服务器将为用户创建一个Session(会话)。Session是服务器在内存或数据库中保存的用户数据,用于在不同请求之间维持用户的状态。它的作用是让服务器能够识别出这是同一个用户。
    生成Session ID:服务器为用户生成一个唯一的Session ID。这个Session ID通常是一个随机字符串,具有一定的安全性,难以被猜测。
    保存Session数据:服务器将用户的身份信息(如用户ID、权限等)存储在与Session ID关联的会话中。这个会话可以保存在服务器内存中、数据库中,或者通过某些分布式缓存(如Redis)进行管理。
  3. 设置Cookie
    接下来,服务器需要让浏览器保存这个Session ID,以便后续请求能够识别出用户是谁。服务器通过HTTP响应头中的Set-Cookie指令,将Session ID发送到浏览器。例如:
    Set-Cookie: sessionid=abc123;
    浏览器收到这个响应后,会保存这个Cookie。以后,当浏览器向服务器发出请求时,它会自动在HTTP请求头中带上这个Cookie。
  4. 后续请求中的Session验证
    用户登录成功后,浏览器的每次请求都会自动附带上之前保存的Cookie。服务器通过读取这个Cookie中的Session ID来识别用户。
    浏览器发送请求:当用户浏览网站的其他页面时,浏览器会自动在每次请求中附带Cookie:
    Cookie: sessionid=abc123
    服务器验证Session:服务器收到请求后,会检查请求头中的Cookie,找到Session ID(如abc123)。接着,服务器会根据这个Session ID从自己的存储中找到对应的Session数据。
    判断用户状态:服务器根据Session数据,判断该用户是否已登录、登录用户的身份、权限等信息,并生成相应的响应。这个过程完全是服务器端的逻辑处理,客户端无法直接访问Session中的数据。
  5. 保持会话状态
    整个登录会话期间,只要浏览器的Cookie没有过期、用户没有主动登出,Session会一直存在,用户的登录状态会持续保持。
    Session的生命周期:服务器可以设定Session的有效期。例如,默认设置可能是20分钟,如果用户20分钟内没有任何操作,Session将自动过期。Cookie也可以设置有效期,确保登录状态的持久性。
    Session的销毁:当用户点击“登出”按钮时,服务器会删除该用户对应的Session数据,并指示浏览器删除相应的Cookie,确保用户无法再通过这个Cookie访问受保护的页面。
  • token vs cookie
    cookie自动默认传,token你不加是不会传的。

    来个对比:

JWT

Session 和 JWT 哪个更好?
没有好坏之分。只是说适合场景不一样。
Session:

session放在内存中是因为取cookie的速度是有要求的,内存中每个进程有独立的空间,是相互隔离的,对应着每个session也是隔离访问不到的。

JWT:


适用场景:

  • SSO单点登录?
    就是我登录了百度,我去访问百度贴吧、百度地图...都登陆了。
    基于Cookie实现的!主域名一样cookie可以共享


    域名A和域名B把ticket(token)存储在各自的localstorage中,localstorage也是跨域不共享的。
    OAuth2.0 了解一下。

  • HTTP协议和UDP协议有什么区别?
    HTTP协议在应用层,UDP和TCP协议在传输层,TCP和UDP才有可比性。
    TCP:稳定,有连接有断开

    UDP:不稳定,无连接无断开,效率高

  • HTTP 1.0和1.1和2.0区别
    1.0: 最基础,只支持GET POST方法。
    1.1:缓存策略,支持长连接(一次HTTP连接可以收发多次请求),断点续传,状态码206,支持新的方法,可用于Restful API
    2.0:可压缩header减少体积,多路复用,一次TCP连接可以多个HTTP并行请求。(之前的优化策略:多个JS或多个CSS拼接成一个文件,现在有了多路复用就可以不用这样了。)服务端推送。

  • HTTPS中间人攻击?如何预防?(问HTTPS加密过程和原理)
    HTTP是明文传输。HTTPS先非对称加密,后面对称加密。
    黑客有自己的公钥私钥,它在中间掉包公钥传递给客户端。

  • 描述从输入url到页面展示的完整过程

  1. 网络请求

  2. 解析:字符串->结构化数据

  3. 渲染:Render Tree 绘制到页面

    总结:
  • 网页重绘repaint和重排reflow有什么区别?

    动态网页随时都会重绘重排。
    重绘:

    重排:

    重排性能消耗更大。


    BFC(Block Format Context)块级格式化上下文:内部元素无论如何改动都不会影响其他元素的位置。

  • 如何实现网页中多标签tab通讯?

  1. WebSocket
  2. localStorage
  3. SharedWorker(自行去搜搜阮一峰老师文章)

    总结:
  • 网页和 iframe 之间如何通讯?
    iframe通讯的核心API:postMessage, postMessage(消息,域名)
posted @   一个甜橙子  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示