【前端面试3+1】11 http和https有何不同及https的加密过程、数组有哪些方法及作用、tcp三次握手四次挥手、【分发饼干】

一、http和https有何不同?https的加密过程

1、不同:

        HTTP和HTTPS的主要区别在于安全性。HTTP是超文本传输协议,是一种用于传输数据的协议,但是传输的数据是明文的,容易被窃听和篡改。而HTTPS是在HTTP基础上加入了SSL/TLS协议,通过加密和认证机制来保护数据的安全性。

2、https的加密过程:

  1. 客户端向服务器发起HTTPS请求。
  2. 服务器返回自己的SSL证书,包含公钥和数字签名。
  3. 客户端验证证书的合法性,如果合法则生成一个随机的对称密钥,并用服务器的公钥加密这个对称密钥,然后发送给服务器。
  4. 服务器使用自己的私钥解密客户端发送过来的对称密钥。
  5. 服务器和客户端使用这个对称密钥进行对称加密通信,保障数据的安全性。

3、补充:

        对称密钥是在握手过程中由客户端生成的,然后通过非对称加密的方式传输给服务器。这样可以保证数据在传输过程中是加密的,同时也确保了服务器和客户端之间的通信是安全的。

二、数组有哪些方法,并说明每个方法有什么作用?

下面列出了一些常用的数组方法以及它们的作用:

  1. push():向数组末尾添加一个或多个元素,并返回数组的新长度。

  2. pop():删除数组末尾的元素,并返回该元素的值。

  3. shift():删除数组的第一个元素,并返回该元素的值,同时将数组长度减一。

  4. unshift():向数组的开头添加一个或多个元素,并返回数组的新长度。

  5. concat():用于合并两个或多个数组,不会改变原数组,返回一个新的数组。

  6. slice():从已有的数组中返回选定的元素,不会改变原数组,返回一个新的数组。

  7. splice():向/从数组中添加/删除项目,然后返回被删除的项目,会改变原数组。

  8. join():将数组中的所有元素转换为字符串并连接起来,返回一个字符串。

  9. indexOf():返回指定元素在数组中第一次出现的索引,如果不存在则返回-1。

  10. lastIndexOf():返回指定元素在数组中最后一次出现的索引,如果不存在则返回-1。

  11. forEach():对数组中的每个元素执行一次提供的函数。

  12. map():对数组中的每个元素执行一次提供的函数,并返回一个新数组。

  13. filter():使用提供的函数测试所有元素,并返回一个包含所有通过测试的元素的新数组。

  14. reduce():对数组中的每个元素执行一个累加器函数,将其减少为单个值。

  15. sort():对数组元素进行排序,默认是按照字符串Unicode码点进行排序。

  16. reverse():颠倒数组中元素的顺序,原地修改数组。

三、tcp的三次握手和四次挥手

tcp简短:

        TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,它通过三次握手建立连接和四次挥手释放连接。

三次握手

  • 第一步:客户端向服务器发送一个SYN(同步)标志的数据包,表明客户端请求建立连接。
  • 第二步:服务器收到客户端的SYN数据包后,会回复一个带有SYN和ACK(确认)标志的数据包,表示接受客户端的请求并准备好建立连接。
  • 第三步:客户端收到服务器的确认后,会再次向服务器发送一个带有ACK标志的数据包,表示客户端也确认连接已建立。

四次挥手

  • 第一步:客户端向服务器发送一个带有FIN(结束)标志的数据包,表明客户端不再发送数据,但仍愿意接收数据。
  • 第二步:服务器收到客户端的FIN后,会回复一个带有ACK标志的数据包,表示服务器已接收到客户端的结束请求。
  • 第三步:服务器在发送完所有数据后,会向客户端发送一个带有FIN标志的数据包,表明服务器也准备关闭连接。
  • 第四步:客户端收到服务器的FIN后,会回复一个带有ACK标志的数据包,表示客户端已接收到服务器的结束请求,并准备关闭连接。

        通过三次握手建立连接和四次挥手释放连接,TCP协议保证了数据在传输过程中的可靠性和完整性。三次握手确保双方都同意建立连接,四次挥手则确保双方都完成数据传输并同意关闭连接。

四、【算法】分发饼干

1、题目:

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。

对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。


 

int findContentChildren(int* g, int gSize, int* s, int sSize) {}

2、解题:

解题思路:
1. 首先对孩子数组g和饼干数组s进行升序排序,以便后续分配饼干时从小到大进行比较。
2. 使用双指针i和j分别指向孩子数组和饼干数组的起始位置。
3. 在一个while循环中,不断比较孩子的胃口和饼干的大小:
   - 如果当前孩子的胃口可以满足当前的饼干大小,则将满足的孩子数量加一,并且移动到下一个孩子和下一个饼干。
   - 如果当前孩子的胃口无法满足当前的饼干大小,则只移动到下一个饼干,继续寻找可以满足的孩子。
4. 最终返回满足的孩子数量re,即尽可能多地满足孩子的胃口。
 

int cmp(const void*a,const void*b)
{return *(int*)a-*(int*)b;
}
int findContentChildren(int* g, int gSize, int* s, int sSize) {int re=0;int i=0,j=0;qsort(g,gSize,sizeof(int),cmp);qsort(s,sSize,sizeof(int),cmp);while(i<gSize&&j<sSize){if(g[i]<=s[j]){i++;j++;re++;}elsej++;}return re;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五、企业级架构之Nginx负载均衡

一、负载均衡技术 1、介绍&#xff1a; 负载均衡技术&#xff08;Load Balance&#xff09;是一种概念&#xff0c;其原理就是把分发流量、请求到不同的服务器&#xff0c;平均分配用户请求。 2、作用&#xff1a; ① 流量分发&#xff0c;请求平均&#xff0c;提高系统处理…

idea改vm参数后没法重启

背景 Idea2023修改了编译器compiler内存&#xff0c;maven的run time内存&#xff0c;idea安装目录下idea64.exe.vmoptions选项的jvm内存参数后导致idea启动时没有任何反应&#xff0c;也没有任何日志输出 idea2023没法重启 导致idea2023没法重启的操作步骤如下 1.修改idea的…

腾讯云服务器4核8g配置好不好?用它干啥使?

腾讯云4核8G服务器多少钱&#xff1f;腾讯云4核8G轻量应用服务器12M带宽租用价格646元15个月&#xff0c;活动页面 txybk.com/go/txy 活动链接打开如下图所示&#xff1a; 腾讯云4核8G服务器优惠价格 这台4核8G服务器是轻量应用服务器&#xff0c;详细配置为&#xff1a;轻量4核…

国外媒体推广软文宣发:促进海外宣发新风尚,迈向国际舞台

大舍传媒http://www.dashemeijie.com 序言 伴随全球经济一体化发展趋向&#xff0c;越来越多的中国企业希望在国际舞台上表现自己的总体水平。而国外媒体软文发稿作为一种全新的海外宣传方式&#xff0c;正逐渐成为促进海外宣发新风尚的主要常用工具。接下来我们就探讨国外媒…

深入浅出 -- 系统架构之垂直架构

当业务复杂度增加、访问量逐渐增大出现高并发时&#xff0c;单体架构无法满足需求&#xff0c;可以根据业务功能对系统进行拆分&#xff0c;以提高访问效率。 垂直架构介绍 1.垂直架构一般是因为单体架构太过于庞大而进行的拆分&#xff0c;拆分后各个系统应满足独立运行互相不…

关于hive启动的相关问题记录

问题&#xff1a;初始化hive元数据报错 [atguiguhadoop102 software]$ schematool -initSchema -dbType mysql -verboseError: Table CTLGS already exists (state42S01,code1050) Closing: 0: jdbc:mysql://hadoop102:3306/metastore?useSSLfalse org.apache.hadoop.hive.me…

中文Mistral模型介绍(Chinese-Mistral)——中文大语言模型

中文Mistral简介 Chinese-Mistral由清华大学地学系地球空间信息科学实验室开发。 该模型基于Mistral发布的Mistral-7B-v0.1训练得到。首先进行中文词表扩充&#xff0c;然后采用实验室提出的PREPARED训练框架&#xff08;under review&#xff09;在中英双语语料上进行增量预训…

C++核心高级编程 --- 4.类和对象

文章目录 第四章&#xff1a;4.类和对象4.1 封装4.1.1 封装的意义4.1.2 struct与class的区别 4.2 对象的初始化和清理4.2.1 构造函数和析构函数4.2.2 构造函数的分类及调用4.2.3 拷贝构造函数调用时机4.2.4 构造函数调用规则4.2.5 深拷贝与浅拷贝4.2.6 初始化列表4.2.7 类对象作…

树莓派部署yolov5实现目标检测(ubuntu22.04.3)

最近两天搞了一下树莓派部署yolov5&#xff0c;有点难搞&#xff08;这个东西有点老&#xff0c;版本冲突有些包废弃了等等&#xff09; 最后换到ubuntu系统弄了&#xff0c;下面是我的整体步骤&#xff08;建议先使能一下ssh&#xff08;最下面有&#xff09;&#xff0c;结合…

Redis中的复制功能(五)

心跳检测 概述 在命令传播阶段&#xff0c;从服务器默认会以每秒一次的频率&#xff0c;向主服务器发送命令: REPLCONF ACK < replication_offset >其中replication_offset是从服务器当前的复制偏移量。 发送REPLCONF ACK命令对于主从服务器有三个作用: 1.检测主从服…

一、企业级架构之LNMP

一、LNMP 概述 1、LNMP之间的关系&#xff1a; LNMP Linux Nginx MySQL PHP 2、配置LNMP服务器&#xff1a; (1) 克隆一台centos7虚拟机&#xff0c;修改 IP 地址 和 UUID 编号。 IP 为 10.1.1.10&#xff0c;UUID 修改后三位。 (2) 设置主机名称&#xff0c;绑定IP地…

GraalVM运行模式和企业级应用

文章目录 GraalVM运行模式JIT模式AOT模式 GraalVM的问题和解决方案GraalVM企业级应用传统架构的问题Serverless架构函数计算Serverless应用场景Serverless应用 GraalVM内存参数 GraalVM运行模式 JIT模式 JIT&#xff08; Just-In-Time &#xff09;模式 &#xff0c;即时编译模…

SCI一区 | Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测

SCI一区 | Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测 目录 SCI一区 | Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测预测效果基本介绍模型…

【Linux】SSH协议应用

SSH协议 SSH简介实现OpenSSH ssh中的四个文件~/.ssh文件路径实验解析 SSH 简介 SSH&#xff08;secure shell&#xff09;只是一种协议&#xff0c;存在多种实现&#xff0c;既有商业实现&#xff0c;也有开源实现。本文针对的实现是OpenSSH&#xff0c;它是自由软件&#xf…

2024年腾讯云4核8G服务器性能可以满足哪些使用场景?

腾讯云4核8G服务器多少钱&#xff1f;腾讯云4核8G轻量应用服务器12M带宽租用价格646元15个月&#xff0c;活动页面 txybk.com/go/txy 活动链接打开如下图所示&#xff1a; 腾讯云4核8G服务器优惠价格 这台4核8G服务器是轻量应用服务器&#xff0c;详细配置为&#xff1a;轻量4核…

运筹学经典问题(八):CVRP和VRP-TW

文章目录 问题描述问题建模决策变量数学建模基于容量的消除子环的约束 &#xff08;load-based SECs&#xff09; CVRP完整的数学模型加上时间窗限制的CVRP 问题描述 给定一个图&#xff0c;图上的点代表客户&#xff0c;边代表客户之间的路线&#xff0c;边的权重代表客户之间…

学透Spring Boot — 004. Spring Boot Starter机制和自动配置机制

如果你项目中一直用的是 Spring Boot&#xff0c;那么恭喜你没有经历过用 Spring 手动集成其它框架的痛苦。 都说 Spring Boot 大大简化了 Spring 框架开发 Web 应用的难度&#xff0c;这里我们通过配置 Hibernate 的两种方式来深刻体会这一点&#xff1a; 使用 Spring 框架集…

MySQL 导入库/建表时/出现乱码

问题描述&#xff1a; 新建不久的项目在使用Navicat for MySQL进行查看数据&#xff0c;发现表中注释的部分乱码&#xff0c;但是项目中获取的数据使用不会。 猜测因为是数据库编码和项目中使用的不一样&#xff0c;又因为项目的连接语句定义了需要编码&#xff0c;故项目运行…

基于向量数据库搭建自己的搜索引擎

前言【基于chatbot】 厌倦了商业搜索引擎搜索引擎没完没了的广告&#xff0c;很多时候&#xff0c;只是需要精准高效地检索信息&#xff0c;而不是和商业广告“斗智斗勇”。以前主要是借助爬虫工具&#xff0c;而随着技术的进步&#xff0c;现在有了更多更方便的解决方案&…

AcWing-游戏

1388. 游戏 - AcWing题库 所需知识&#xff1a;博弈论&#xff0c;区间dp 由于双方都采取最优的策略来取数字&#xff0c;所以结果为确定的&#xff0c;有可能会有多个不同的过程&#xff0c;但是我们只需要关注最终结果就行了。 方法一&#xff1a; 定义dp[i][j] 表示区间…