学做网站的学校,湖南网站备案注销,济南工程建设交易信息网,网页设计作品特色及亮点一、http和https有何不同#xff1f;https的加密过程 1、不同#xff1a; HTTP和HTTPS的主要区别在于安全性。HTTP是超文本传输协议#xff0c;是一种用于传输数据的协议#xff0c;但是传输的数据是明文的#xff0c;容易被窃听和篡改。而HTTPS是在HTTP基础上加入了SSL/T…一、http和https有何不同https的加密过程 1、不同 HTTP和HTTPS的主要区别在于安全性。HTTP是超文本传输协议是一种用于传输数据的协议但是传输的数据是明文的容易被窃听和篡改。而HTTPS是在HTTP基础上加入了SSL/TLS协议通过加密和认证机制来保护数据的安全性。 2、https的加密过程 客户端向服务器发起HTTPS请求。服务器返回自己的SSL证书包含公钥和数字签名。客户端验证证书的合法性如果合法则生成一个随机的对称密钥并用服务器的公钥加密这个对称密钥然后发送给服务器。服务器使用自己的私钥解密客户端发送过来的对称密钥。服务器和客户端使用这个对称密钥进行对称加密通信保障数据的安全性。 3、补充 对称密钥是在握手过程中由客户端生成的然后通过非对称加密的方式传输给服务器。这样可以保证数据在传输过程中是加密的同时也确保了服务器和客户端之间的通信是安全的。 二、数组有哪些方法并说明每个方法有什么作用 下面列出了一些常用的数组方法以及它们的作用 push()向数组末尾添加一个或多个元素并返回数组的新长度。 pop()删除数组末尾的元素并返回该元素的值。 shift()删除数组的第一个元素并返回该元素的值同时将数组长度减一。 unshift()向数组的开头添加一个或多个元素并返回数组的新长度。 concat()用于合并两个或多个数组不会改变原数组返回一个新的数组。 slice()从已有的数组中返回选定的元素不会改变原数组返回一个新的数组。 splice()向/从数组中添加/删除项目然后返回被删除的项目会改变原数组。 join()将数组中的所有元素转换为字符串并连接起来返回一个字符串。 indexOf()返回指定元素在数组中第一次出现的索引如果不存在则返回-1。 lastIndexOf()返回指定元素在数组中最后一次出现的索引如果不存在则返回-1。 forEach()对数组中的每个元素执行一次提供的函数。 map()对数组中的每个元素执行一次提供的函数并返回一个新数组。 filter()使用提供的函数测试所有元素并返回一个包含所有通过测试的元素的新数组。 reduce()对数组中的每个元素执行一个累加器函数将其减少为单个值。 sort()对数组元素进行排序默认是按照字符串Unicode码点进行排序。 reverse()颠倒数组中元素的顺序原地修改数组。 三、tcp的三次握手和四次挥手 tcp简短 TCPTransmission 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 re0;int i0,j0;qsort(g,gSize,sizeof(int),cmp);qsort(s,sSize,sizeof(int),cmp);while(igSizejsSize){if(g[i]s[j]){i;j;re;}elsej;}return re;
}