网络部分常见面试题

1. HTTPS 和 HTTP 的区别是什么(为什么 HTTPS 更安全,HTTPS 中的 S 是什么意思)?

HTTP(HyperText Transfer Protocol)和 HTTPS(HyperText Transfer Protocol Secure)都是用于在网络上传输数据的协议。它们之间的主要区别在于安全性,以下是具体的区别:

HTTP

  1. 传输方式:HTTP 以纯文本形式传输数据。
  2. 安全性:HTTP 不加密数据,数据在传输过程中容易被窃听、篡改和伪造。
  3. 端口:HTTP 使用端口 80。
  4. 证书:HTTP 不使用任何证书进行数据加密和验证。
  5. 性能:由于不进行加密处理,HTTP 的传输速度通常会比 HTTPS 快一些。

HTTPS

  1. 传输方式:HTTPS 使用 SSL/TLS(Secure Sockets Layer / Transport Layer Security)协议加密数据。
  2. 安全性:HTTPS 通过加密数据来保护数据的完整性和机密性,防止数据在传输过程中被窃听、篡改和伪造。
  3. 端口:HTTPS 使用端口 443。
  4. 证书:HTTPS 需要 SSL/TLS 证书来建立安全连接,这些证书由受信任的证书颁发机构(CA)签发。
  5. 性能:由于需要进行加密和解密操作,HTTPS 的传输速度可能比 HTTP 慢一些,但现代硬件和优化技术已经使得这种差异不明显。

主要区别总结

  1. 安全性:HTTPS 提供了数据加密,确保数据传输的安全性,而 HTTP 不加密数据。
  2. 端口:HTTP 使用端口 80,而 HTTPS 使用端口 443。
  3. 证书要求:HTTPS 需要使用 SSL/TLS 证书,HTTP 则不需要。
  4. 数据完整性:HTTPS 通过加密和验证机制确保数据在传输过程中不被篡改,而 HTTP 则无法保证数据的完整性。

为什么选择 HTTPS

  1. 安全传输:防止数据在传输过程中被窃听和篡改。
  2. 数据隐私:保护用户的隐私信息,特别是涉及敏感数据的传输,如支付信息、登录凭证等。
  3. 信任与认证:通过 SSL/TLS 证书,用户可以确认网站的身份,防止钓鱼网站。

2. TCP 和 UDP 的区别?

TCP(Transmission Control Protocol)和 UDP(User Datagram Protocol)是两种不同的传输层协议,它们在数据传输方式和应用场景上有很大的区别。以下是它们的主要区别:

TCP(Transmission Control Protocol)

  1. 连接方式:TCP 是面向连接的协议。在数据传输前,需要建立一个可靠的连接(通过三次握手)。
  2. 可靠性:TCP 提供可靠的数据传输,确保数据包按序到达且无丢失。如果有数据包丢失,TCP 会进行重传。
  3. 流量控制:TCP 具有流量控制和拥塞控制机制,确保发送方不会发送过多的数据,避免网络拥塞。
  4. 传输顺序:TCP 保证数据包按照发送的顺序到达接收方。
  5. 开销:由于需要建立连接、保证可靠性和顺序性,TCP 的开销较大。
  6. 适用场景:适用于对数据传输可靠性要求高的场景,如网页浏览、文件传输、电子邮件等。

UDP(User Datagram Protocol)

  1. 连接方式:UDP 是无连接的协议,不需要建立连接即可传输数据。
  2. 可靠性:UDP 不保证数据传输的可靠性,数据包可能会丢失、重复或乱序到达。
  3. 流量控制:UDP 不具有流量控制和拥塞控制机制,发送方可以任意速度发送数据。
  4. 传输顺序:UDP 不保证数据包按照发送的顺序到达接收方。
  5. 开销:UDP 协议简单,开销较小,适合需要快速传输和实时性强的场景。
  6. 适用场景:适用于对数据传输速度和实时性要求高,但对可靠性要求低的场景,如视频直播、在线游戏、语音通信等。

主要区别总结

  1. 连接方式:TCP 是面向连接的,需要三次握手建立连接;UDP 是无连接的,不需要建立连接。
  2. 可靠性:TCP 提供可靠的数据传输,UDP 不提供可靠性保障。
  3. 流量控制:TCP 有流量控制和拥塞控制,UDP 没有。
  4. 传输顺序:TCP 保证数据包按序到达,UDP 不保证。
  5. 开销:TCP 开销较大,UDP 开销较小。
  6. 适用场景:TCP 适用于需要可靠传输的场景,UDP 适用于需要快速传输和实时性的场景。

 3. 端口号的范围和分类?

端口号是用于标识网络通信中不同服务和应用的数字标识符。端口号的范围是从 0 到 65535,总共可以有 65536 个端口。根据用途和分配的不同,端口号可以分为以下三个范围:

1. 知名端口(Well-Known Ports)(0 ~ 1023):这些端口是为系统或特定应用保留的。只有特权进程(通常是系统级进程)才能绑定到这些端口。

2. 注册端口(Registered Ports)(1024 ~ 49151):这些端口号可以由用户或组织注册用于特定的服务和应用程序。这些端口号通常用于用户应用和特定的服务。

3. 动态/私有端口(Dynamic/Private Ports)(49512 ~ 65535):这些端口号通常不被分配给特定的服务,而是用于临时或私有通信,也称为临时端口。这些端口号一般用于客户端在连接到服务器时分配的临时端口,用于双向通信。

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rcnhtin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值