8月30日面试准备随笔

  1. http与https的区别
    http是超文本传输协议,https是在http的基础上,添加SSL/TLS安全协议。
    所以http不安全 但是传输速度稍快,https安全。
    http 80端口,https 443端口

  2. SSL是 安全协议,目的是确保数据在传输过程中不被窃取或篡改。
    主要功能有数据加密(使用对称加密技术加密)、 身份验证(通过数字证书验证服务器身份)、数据完整性(使用消息验证码MAC,确保数据在传输过程中不被篡改)
    TLS是SSL的后续版本,加强版

  3. tcp和udp的区别 以及应用场景
    tcp更稳定 适用于 传输文件 浏览网页等 需要准确无误的传递信息的场景
    udp更快 更适用于视频 通话 直播等 对实时性要求较高、而少量丢包没关系 的场景

  4. 三次握手
    三次握手是建立连接的过程
    1 客户端发SYN包 2 服务器回SYN+ACK包 3 客户端发ACK包

建立连接之后可以拆分成多包发送,客户端发送报文中会有序列号+长度,而服务器端则回复ACK=序列号➕长度=下一包的起始序列 以表示收到。丢失的部分可以申请重发,反过来服务器给客户端发送也是一个道理

  1. 四次挥手 --- 关闭连接,两者都可发起
    1 客户端 发送FIN包表示关闭 并进入关闭等待1状态
    2 服务端返回ACK包 表示确认并进入关闭等待状态。此时服务端还可发送未发送完的数据,客户端也还可以接收数据
    3 待服务端发送完数据后会发送FIN包 进入最后确认状态
    4 客户端收到后回复ACK包 然后进入超时等待状态 时间过了就自动关闭连接,而服务端收到ACK后直接关闭连接

  2. 死锁
    在计算机系统中,两个或多个进程在执行过程中因竞争资源而陷入的一种僵局状态
    四个必要条件:互斥(资源不共享)、占有并等待(进程们都在等待别人释放资源而自己却不释放)、不可剥夺条件(资源不可被强行剥夺)、循环等待条件(期待的资源进入循环等待状态,例如A在等B释放,B也在等A释放)

  3. 堆与栈的区别
    栈是用于存储局部变量和函数调用的高速内存区域,自动管理内存,空间有限
    堆是用于动态分配内存的区域,手动管理内存,更灵活但速度更慢,适合存储大数据结构

  4. 进程与线程
    进程是操作系统分配资源的基本单位,每个进程都有独立的内存空间和系统资源,进程之间相互独立。
    线程是进程中的一个执行单元,一个进程可以包含多个线程,线程共享进程的内存空间和资源,执行效率更高,但也更容易引发同步问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。