字节测试岗位面试问题汇总(https&死锁&TCP UDP全)

本文深入探讨了HTTP和HTTPS的区别,HTTPS通过加密和认证增强了安全性。同时,解释了TCP和UDP的差异,TCP提供可靠的数据传输,而UDP则更注重速度。此外,文章还介绍了死锁的概念及其产生原因,并提出了几种解决方案。通过对网络协议和安全性的理解,有助于提升网络通信的安全和效率。
摘要由CSDN通过智能技术生成


http和https区别

笼统说:HTTP是明文传输的,传输过程中容易被拦截、修改或者伪造请求;HTTPS则是在HTTP基础上进行进行了一些信息保护,相比HTTP来说更为安全。
http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
两者区别:

1. http明文传输,https 有ssl加密传输 http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议
2. 端口不一样 http80,https 443 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
3. http连接是无状态的,https是由SSL+Http http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

HTTP的通信原理:

  • 客户端浏览器通过网络与服务器建立连接(通过TCP实现,一般端口号为80),建立连接后客户端可发送请求给服务器(请求的格式为:统一资源标识符(URL)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容)
  • 服务器接收到请求之后会返回一定的相应(其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容)
    HTTP的缺点
  • 使用明文通信,一些重要的内容会被 窃听(密码)
  • 不能验证对方的身份,可能是伪造的信息
  • 无法验证报文的完整性,有可能已经被修改
    HTTPS如何解决HTTP的问题:

HTTPS 只是在 HTTP 的基础之上增加了加密处理、认证机制和完整性保护,即 HTTPS = HTTP + 加密 + 认证 + 完整性保护
加密:对数据加密。
因为数据在传输的过程中不会被窃听者所修改,用户发送的数据会完整的传输到服务端,保证用户发的是什么,服务器接收的就是什么。
身份认证,是指确认对方的真实身份,也就是证明你是你(可以比作人脸识别),它可以防止中间人攻击并建立用户信任。
HTTPS 不是应用层的一种新协议,只是 HTTP 协议的改进(HTTP协议中的部分通信接口被ssl/tls协议代替),通常 HTTP 直接与 TCP 进行通信,当使用 ssl 协议时则先与 ssl 通信,再由 ssl 和 tcp 通信,
通过上面的分析可以看出来,HTTPS 只是在 HTTP 的基础上增加了 ssl 协议;

死锁问题

什么是死锁
是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。

a线程持有a想获取b,b线程持有b还想获取a俩都不撒手
产生原因
1、资源竞争
分为两个 1 对于不可剥夺资源的竞争或产生死锁,2 对于临时资源的竞争会产生死锁通常消息通信顺序进行不当。
临时资源(包括硬件中断、信号、消息、缓冲区内的消息等)
系统中的资源分为两类:1 可剥夺资源(某进程拿到这个资源别的进程还可以拿如内存cpu)2 不可剥夺资源 (进程拿到后只能它用完自己释放,不能强制回收如磁带机打印机)。
2、进程间推进顺序非法
如a线程保持资源A,b线程保持资源B。系统将处于不安全的状态。因为如果a想用B或者b想用A都不可用了。
产生的条件

  • 互斥条件:(我用你先别用)
    进程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占用。
  • 请求和保持条件:(不要吃碗里看锅里)
    当进程因请求资源而阻塞时,对已获得的资源保持不放。
  • 不剥夺条件:(别人用着我先不用)
    进程已获得的资源在未使用完之前,不能剥夺,只能在使用完时由自己释放。
  • 环路等待条件:(不成环)
    在发生死锁时,必然存在一个进程–资源的环形链。
    解决死锁
    简单总结就是要给资源一次性给全,有资源给不了别的也先不给,分配资源要有顺序。
  • 资源一次性分配:一次性分配所有资源,这样就不会再有请求了:(破坏请求条件)
  • 只要有一个资源得不到分配,也不给这个进程分配其他的资源:(破坏请保持条件)
  • 可剥夺资源:即当某进程获得了部分资源,但得不到其它资源,则释放已占有的资源(破坏不可剥夺条件)
  • 资源有序分配法:系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反(破坏环路等待条件)

TCP和UDP的区别

TCPUDP
TCP 是面向连接的(有三次握手)UDP 是面向无连接程序结构较简单
TCP 是面向字节流的UDP 是基于数据报的
TCP 保证数据正确性(累计确认及超时重传机制)UDP 可能丢包
TCP 保证数据顺序(顺序问题,丢包问题,流量控制都是通过滑动窗口)UDP 不保证

UDP

在这里插入图片描述

包头文件其中只有个源端口号和目的端口号
所以特点有 1、沟通简单,不需要大量数据结构 2、不会建立连接 任何人可以给他传 他也可以给任何人传 3、不会根据网络拥塞就不发了 不考虑是否会丢包。
如:直播 实时游戏等对实时性要求高的

TCP

在这里插入图片描述

  • 源端口和目标端口是不可少的。

  • 序号 解决乱序 接下来是包的序号。主要是为了解决乱序问题。不编好号怎么知道哪个先来,哪个后到

  • 确认序号 解决是否送到了发出去的包应该有确认,这样能知道对方是否收到,如果没收到就应该重新发送,这个解决的是不丢包的问题

  • 状态位 解决是否建立好了连接SYN 是发起一个链接,ACK 是回复,RST 是重新连接,FIN 是结束连接。因为 TCP 是面向连接的,因此需要双方维护连接的状态,这些状态位的包会引起双方的状态变更

  • 窗口大小 解决流量控制TCP 要做流量控制,需要通信双方各声明一个窗口,标识自己当前的处理能力

TCP三次握手四次挥手

三次握手

建立连接时 客户端和服务器的状态也要说 就是closed listend或是syn-sent

在这里插入图片描述

四次挥手

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值