相关面试题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了相关面试题相关的知识,希望对你有一定的参考价值。
1.http与https区别:
http原理:
(1)客户端的浏览器首先与服务器建立连接,通过tcp完成。建立连接后,客户机发送一个请求给服务器,格式为:[url],协议版本号,MIME信息(修饰符,客户机信息,许可内容)。
(2)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号,一个成功错误的代码,后边是MIME信息(服务器信息,实体信息和可能的内容)
https原理:
(1)客户端将它支持的算法列表和一个用作产生密钥的随机数发送给服务器。
(2)服务器选一种加密算法,并和服务器公钥证书发送给客户端;服务器同时提供了一个用作产生密钥的随机数
(3)客户端对服务器的证书进行验证,抽取服务器的公用密钥,然后产生pre_master_secret的随机密码串,并使用服务器的公用密钥对其进行加密,并将加密后的信息发送给服务器。
(4)客户端与服务器根据pre_master_secret以及客户端与服务器的随机数值独立计算出加密和MAC密钥
(5)客户端将所有握手消息的MAC值发送给服务器
(6)服务器将所有握手消息MAC值发送给客户端
区别:https就是披上ssl(secureSocketLayer)的http,对数据进行加密传输,比http更安全,但加载时间延长了。SSL证书信用体系还是不太安全。服务器要频繁的进行加密解密,计算资源消耗大。
2.三握四挥
握(我要和你连接,你真的要连接吗,我真的要和你连接,成功)
挥(我要和你断开,好吧断吧,我也要和你断开,好吧断吧)
(上图来自B站某视频)
3.http常见状态码
1xx:表示临时响应要请求方继续执行操作
2xx:表示成功处理了请求的状态码
3xx:表示重定向,页面可能更换了位置
4xx:表示请求可能出错,妨碍了服务器的处理
5xx:表示服务器在尝试请求时发生内部错误
4.get和post区别
get在浏览器回退不会做其他操作,而post会再次提交请求
get产生url地址可以被Bookmark,post不行
get只能进行url编码,而post支持多种编码
get会被浏览器主动cache,post不会要手动设置
get传送数据有限,post没有
get不太安全参数容易暴露在url上
get产生一个tcp包,post2个(get会把http,header,data一并发送出去,而post会先发header,服务器响应一段时间后,在发送data)
5.进程和线程区别,缓存和缓冲区别,并发和并行区别
1)进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位。开销方面每个进程有独立的代码和数据空间,程序之间的切换会有较大的开销;线程可以看做轻量级的进程,每个线程都有自己独立的运行栈和程序计数器,线程之间开销小。进程可以理解为程序。
2)缓存:读数据把数据保存在缓存区,再次读取该数据就不用去硬盘取了,而在缓存读取。缓冲:向硬盘写入数据时,先把数据放入缓冲区,然后在一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和寻道,提高性能。
3)并行两个或多个事件同一时刻发生,并发多个事件间隔发生。
串行:一次只取一个任务并执行这个任务
6.软件生命周期
计划阶段-----》需求分析---》设计阶段---》编码---》测试---》运行维护
测试用例
用例编号 测试项目 测试标题 重要级别 预测条件 输入数据 执行步骤 预期结果
软件测试
规定条件下进行操作,已发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程
(后续再补)
以上是关于相关面试题的主要内容,如果未能解决你的问题,请参考以下文章
[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)RCE (远程代码/命令执行漏洞)相关面试题
经验总结:Java高级工程师面试题-字节跳动,成功跳槽阿里!