计算机基础面试题 |15.精选计算机基础面试题
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》
HTTP 长连接短连接使用场景是什么
HTTP 长连接和短连接是 HTTP 协议中两种不同的连接类型,它们在不同的场景中具有不同的使用方式。
-
HTTP 长连接是指在同一个连接上连续发送多个 HTTP 请求和响应,直到客户端或服务器完成所有操作,然后关闭连接。长连接通常用于需要连续发送多个 HTTP 请求的场景,例如,在 Web 应用程序中,客户端和服务器之间需要持续进行数据交换。长连接可以提高网络传输效率,减少网络延迟,但是可能会增加服务器的压力。
-
HTTP 短连接是指在客户端和服务器之间进行一次 HTTP 请求和响应后关闭连接。短连接通常用于需要发送单个 HTTP 请求的场景,例如,在用户登录或注册时。短连接可以避免长时间占用资源,但是可能会增加网络延迟。
总的来说,HTTP 长连接和短连接各有优缺点,需要根据具体场景选择合适的连接类型。对于需要连续发送多个 HTTP 请求的场景,使用长连接可以提高网络传输效率;对于需要发送单个 HTTP 请求的场景,使用短连接可以避免长时间占用资源。
什么是数字签名?
数字签名是一种用于确保数据完整性和真实性的技术,它使用公钥加密算法来对数据进行签名。数字签名通常由两部分组成:
- 一个是签名数据
- 一个是签名算法。
签名数据通常是一个数字摘要,它是对数据进行哈希运算后得到的一个固定长度的值。签名算法则是使用私钥对数字摘要进行加密,得到一个数字签名。
数字签名可以用于验证数据的真实性和完整性。当接收方接收到数据时,它可以使用发送方的公钥对数字签名进行解密,然后将解密后的数字摘要与自己计算得到的数据哈希值进行比较。如果两个哈希值相同,则说明数据是真实的,并且没有被篡改。
数字签名还可以用于身份验证,发送方可以使用自己的私钥对数字签名进行签名,接收方可以使用发送方的公钥对数字签名进行验证,从而确认发送方的身份。
数字签名是一种安全、可靠的数据验证和身份验证技术,它在数字证书、电子商务、电子邮件等领域中得到了广泛应用。
Keep-Alive 和非 Keep-Alive 有什么区别?
Keep-Alive和非Keep-Alive主要区别在于:
- 非Keep-Alive:对于每一个请求的对象,必须建立和维护一个全新的连接。对于每个这样的连接,客户机和服务器都要分配TCP的缓冲区和变量,这给服务器带来严重的负担。
- Keep-Alive:服务器在响应后保持该TCP连接打开,在同一个客户机与服务器之间的后续请求和响应报文可通过相同的连接进行传送。甚至位于同一台服务器的多个Web页面在从该服务器发送给同一个客户机时,可以在单个持久TCP连接上进行。
合理配置Keep-Alive参数可以提高服务器的响应速度和减少资源消耗,但也需要注意避免因长时间保持连接而导致的系统资源无效占用。因此,需要根据实际情况选择合适的通信方式。
三次握手中的 SYN 是什么
在三次握手协议中,SYN(Synchronization)是一个标志位,用于表示同步序列号。
在 TCP(传输控制协议)连接建立的过程中,三次握手是客户端和服务器之间为了建立可靠的连接而进行的一系列消息交换过程。
其中,SYN 标志位在第一次握手时由客户端发送给服务器。
当客户端想要与服务器建立连接时,
- 它会发送一个包含 SYN 标志位的 TCP 数据包。
- 这个数据包中还包含了一个初始序列号(ISN),用于标识客户端发送的第一个数据字节的编号。
- 服务器接收到这个 SYN 包后,会返回一个包含
SYN
和ACK(Acknowledgment)
标志位的 TCP 数据包,表示服务器已经收到了客户端的同步请求,并确认了客户端的初始序列号。 - 同时,服务器也会生成自己的初始序列号,并将其包含在返回的数据包中。
- 最后,客户端接收到服务器的响应后,会发送一个包含 ACK 标志位的 TCP 数据包,确认已经收到了服务器的同步请求和初始序列号。
st=>start: 客户端发送 SYN 包
op=>operation: 服务器收到 SYN 包,发送 SYN+ACK 包
cp=>check: 客户端收到 SYN+ACK 包,发送 ACK 包
e=>end: 连接建立成功
通过三次握手过程中的 SYN 标志位和序列号的交换,客户端和服务器可以确保双方都准备好进行数据传输,并建立起可靠的 TCP 连接。SYN 标志位的作用是同步双方的初始序列号,以确保数据传输的顺序和可靠性。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!