前端常见问题汇总(十)

news2024/11/15 21:43:55

一、HTTP1.0和HTTP2.0的区别

  • http1.0:每次请求都需要重新建立tcp连接,请求完后立即断开与服务器连接,这很大程度造成了性能上的缺陷,http1.0被抱怨最多的就是连接无法复用。

  • http1.1:引入了长连接(keep-alive),相较于1.0减少了连接和关闭的延迟,提高了效率,但是若干个请求还是需要串行排队处理,如果一旦某个请求超时,后面的就会被阻塞,也就是常说的线头阻塞。

  • http2主要特点是

    1. 新的二进制格式传输:二进制即0和1的组合,实现方便健壮,而1.x版本是基于文本,解析存在缺陷

    2. 多路复用:一个连接可以有多个请求,且可以混杂在一起根据requestid来区分不同的请求,提高了连接的利用率,降低了延迟

    3. header头部压缩:通讯两方各自缓存了一份 header请求头表,避免了重复的header传输,且缩小了包的体积大小

    4. 服务端推送功能:可以服务端主动向客户端push消息

二、webSocket和Socket之间的区别联系

1. webSocket和Socket的概念介绍
  • socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信。

  • WebSocket协议是基于TCP的一种新的网络协议,和http协议一样属于应用层协议,是一种让客户端和服务器之间能进行双向实时通信的技术。

2. webSocket和Socket的区别

1、原理上的区别:

  • Socket是传输控制层协议,WebSocket是应用层协议。
  1. Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口(不是协议,为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口)。

  2. 在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面。利用TCP/IP协议建立TCP连接。(TCP连接则更依靠于底层的IP协议,IP协议的连接则依赖于链路层等更低层次。)

  • WebSocket则是一个典型的应用层协议。

2、灵活运用的程度不同:

  • WebSocket 更易用,而 Socket 更灵活。Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。

3、传输层次不同:

  • Socket 是传输控制层的接口。用户可以通过 Socket 来操作底层 TCP/IP 协议族通信。
  • WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。

三、Cors解决跨域问题

在这里插入图片描述

跨域问题
  • 当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域
解决方案
  • Jsonp

    最早的解决方案,利用script标签可以跨域的原理实现。

    限制:

    需要服务的支持
    只能发起GET请求

  • nginx反向代理

    思路是:利用nginx反向代理把跨域改为不跨域,支持各种请求方式

    缺点:需要在nginx进行额外配置,语义不清晰

  • CORS
    规范化的跨域请求解决方案,安全可靠。

    优势:

    1. 在服务端进行控制是否允许跨域,可自定义规则
    2. 支持各种请求方式

    缺点:

    1. 会产生额外的请求

Access-Control-Allow-Origin:可接受的域,是一个具体域名或者*,代表任意
Access-Control-Allow-Credentials:是否允许携带cookie,默认情况下,cors不会携带cookie,除非这个值是true

点击查看详细解决方案 链接

四、url最大长度问题

在这里插入图片描述

五、设计模式

在这里插入图片描述
点击查看详细链接

六、js闭包的理解

点击跳转至闭包链接

对内存泄漏的理解

点击跳转至内存泄漏

七、js创建对象的几种方式

点击跳转至js创建对象详情链接

八、js变量提升详解

点击跳转至js变量提升详情链接

九、vue2和vue3的区别

点击跳转至vue2和vue3详情链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131514.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

麒麟系统虚拟机安装教程

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> 1.首先得安装VM Ware软件。 2.打开VM Ware,点击“文件”->“新建虚拟机”。 3.进入新建虚拟机向导,点击下一步。如下图&…

API管理神器:Apifox

前言 代码未动,文档先行 其实大家都知道 API 文档先行的重要性,但是在实践过程中往往会遇到很多困难。 程序员最讨厌的两件事:1. 写文档,2. 别人不写文档。大多数开发人员不愿意写 API 文档的原因是写文档短期收益远低于付出的…

2023—静待“雨中的海棠”发芽

2023—静待“雨中的海棠”发芽认真负责、全身心的投入工作减少抱怨勤思考、多总结—>高效工作保持7*24小时在线全身心BKGWY坚持不懈多运动骑车车、练哑铃、慢跑多看书看自己喜欢的书环青海湖准备环青海湖的攻略身体上的准备内心信念的支撑最后就静待“雨中的海棠”发芽吧&am…

kali - 扫描

数据来源 Whatweb WhateWhatweb是一个基于Ruby语言的开源网站指纹识别软件,正如它的名字一样,,whate能够识别各种关于网站的详细信息,包括:CMS类型、博客平台、中间件、web框架模块、网站服务器、脚本类型、 Javascript库、lP、 …

Apollo 配置中心

Apollo 配置中心目录概述需求:设计思路实现思路分析1.Apollo 配置中心2.Client端配置中心3.爬虫调度器5.Server端配置中心参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardne…

(免费分享)基于jsp,ssm甜点网站

开发工具:eclipse,jdk1.8 数据库:mysql5.7,Tomcat8.0 package com.softeem.controller;import java.util.HashMap; import java.util.Map;import javax.annotation.Resource;import org.springframework.stereotype.Controller; …

labelImag安装及使用教程

在做目标检测任务时,需要进行标注,选择了LabelImg作为标注工具,下面是安装及使用过程。 我们使用Anconda的虚拟环境进行安装,激活环境后,执行: pip install labelimg -i https://pypi.tuna.tsinghua.edu.c…

WebSocket 协议详述( java在线聊天室_上篇)

文章目录1、 WebSocket 协议1.1、 何为WebSocket?1.2、 websocket 和 http(应用层的俩个协议)1.3、 websocket协议的具体过程1.4、websocket好处2、 WebSocket实现2.1、 客户端实现2.1.1、 websocket对象2.1.2、 websocket事件2.1.3、 websoc…

【linux】linux中vim/vi (linux基本开发工具)

本期主题:linux中vim/vi的使用和介绍。博客主页:小峰同学分享小编的在Linux中学习到的知识和遇到的问题小编的能力有限,出现错误希望大家不吝赐 目录 🍁vim键盘图 🍁vim基本概念 🍁vim的基本操作 &#x1…

Python使用库(二)

Python使用库(二) 第三方库 认识第三方库 第三方库就是别人已经实现好了的库, 我们可以拿过来直接使用. 虽然标准库已经很强大了, 但是终究是有限的. 而第三方库可以视为是集合了全世界 Python 程序猿的智慧, 可以说是几乎无穷无尽. 问题来了, 当我们…

Linux驱动入门-最简单字符设备驱动(基于pc ubuntu)

一.字符设备驱动概念 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、 IIC、 SPI,LCD 等等都是字符设备&#xff0…

公共管理老师赴英国G5名校-伦敦大学学院CSC公派访学

CSC青年骨干教师项目的实施院校一般都要求申请人提前上报邀请函等申请材料,以进行校内遴选。为提升竞争优势,A老师希望能获得英国名校的邀请函。最终我们为其申请到英国G5名校之一的伦敦大学学院,凭借该邀请函,A老师顺利通过了本校…

【2022年终总结】勇敢追梦,去和人生博弈

目录序言刚开始的1月松懈的2月忙碌的3月迷茫的4月开源项目的5月入职汇报的6月7月8月9月假期过后的10月至关重要的11月最后冲刺的12月2022年的总结2023年的目标往年回顾序言 在刚刚过完的平安夜和圣诞节之际,同时意味着2022年要画上一个句号。这一周算是比较煎熬的几…

高效的事件处理模式——Reactor、Proactor

IO模型 从理论上说,阻塞IO、IO复用和信号驱动IO都是同步IO模型。因为在这三种IO模型中,IO的读写操作,都是在IO事件发生之后,由应用程序来完成的。而POSIX规范所定义的异步IO模型则不同。对异步IO而言,用户可以直接对I…

ubuntu18.04安装docker和nvidia-docker2

ubuntu18.04安装docker和nvidia-docker 1、卸载旧版本的docker 旧版本的 Docker 被称为 docker、docker.io 或 docker-engine。 如果安装了这些,需要卸载它们: sudo apt-get remove docker docker-engine docker.io containerd runc2、 使用存储库安装…

聊一聊 SQLSERVER 的行不能跨页

一:背景 1. 讲故事 相信有很多朋友在学习 SQLSERVER 的时候都听说过这句话,但大多都是记忆为主,最近在研究 SQLSERVER,所以我们从 底层存储 的角度来深入理解下。 二:理解数据页 1. 数据页的组织 在前面的文章中我…

Vue2学习笔记(二):MVVM模型、数据代理

一、MVVM M(Model): 对应data中的数据 V(View): 也就是模板(template) VM(ViewModel): 对应Vue实例对象 大多数的前端框架都或多或少借鉴了MVVM模型,其中VM可以看做是View与Model中间的桥梁,它协助页面(View)和数据(Model)的展示。 二、数据代理 1.了…

JUC(十一)-线程池-ScheduledThreadPoolExecutor分析

ScheduledThreadPoolExecutor 分析 文章目录ScheduledThreadPoolExecutor 分析一、ScheduledThreadPoolExecutor介绍二、ScheduledThreadPoolExecutor应用2.1 ScheduledThreadPoolExecutor 构造器2.2 ScheduledThreadPoolExecutor 应用代码三、ScheduledThreadPoolExecutor源码…

10多个LearnDash示例和演示:从这些在线教育网站获得灵感!

正在寻找真实的LearnDash示例来激发您自己的电子学习网站的灵感? LearnDash 是最受欢迎的 WordPress LMS 插件之一,约翰霍普金斯大学和 Collibra 等大型组织以及 Yoast 和 ProBlogger 等小型品牌都在使用它。 LearnDash在线教育网站定制 LearnDash是最…

基于FireBeetle 2 ESP32-E开发板的LVGL移植及传感器显示(Arduino+TFT_eSPI+LVGL)

目录项目介绍硬件介绍硬件结构说明LVGL移植综合实现功能展示项目总结👉 【Funpack2-3】基于FireBeetle 2 ESP32-E开发板的LVGL移植及传感器显示 👉 CSDN-工程源文件 👉 Github-KafCoppelia/FireBeetle2_lvgl_sensors 项目介绍 本项目基于Fir…