面经——面试中常问到的计算机网络相关问题

一. Web页面请求过程

Web页面请求过程涉及多个步骤,其中包括客户端(通常是浏览器)和服务器之间的交互。以下是一般的Web页面请求过程:

  1. 用户输入URL: 用户在浏览器地址栏中输入要访问的网址(URL)。

  2. DNS解析: 浏览器将URL发送到域名系统(DNS)服务器,以获取该网址对应的IP地址。DNS服务器返回相应的IP地址给浏览器。

  3. 建立TCP连接: 浏览器使用得到的IP地址和服务器建立TCP连接。这是通过使用传输控制协议(TCP)来实现的,TCP提供可靠的连接。

  4. 发起HTTP请求: 一旦建立了TCP连接,浏览器就会向服务器发起一个HTTP请求。HTTP是超文本传输协议,用于在Web浏览器和服务器之间传递信息。

  5. 服务器处理请求: 服务器接收到HTTP请求后,会根据请求的内容进行相应的处理。这可能涉及到数据库查询、文件读取等操作,以生成需要的响应。

  6. 服务器发送响应: 服务器生成一个HTTP响应,并将其发送回浏览器。响应包括状态码(表示请求成功、失败或其他状态)、响应头(包含有关响应的信息)和实际的响应体(包含请求的数据或HTML内容等)。

  7. 浏览器渲染页面: 一旦浏览器接收到服务器的响应,它会解析HTML和其他资源(如CSS、JavaScript),并开始渲染页面。这可能涉及到从服务器请求其他资源,如图像、样式表和脚本。

  8. 关闭连接: 渲染完页面后,浏览器和服务器之间的TCP连接可能会被关闭,除非使用了持久连接(HTTP keep-alive)来保持连接以供未来使用。

二. HTTP和HTTPS的区别是什么?具体使用了哪些协议?

HTTP(超文本传输协议):
  1. 不安全性: HTTP是一种不安全的协议,数据在传输过程中是明文的,容易被中间人攻击截获和窃听。

  2. 默认端口: HTTP使用的默认端口是80。

  3. 未加密传输: HTTP的数据传输是未加密的,因此对于敏感信息的传输,如登录凭据或信用卡号等,存在安全风险。

HTTPS(安全超文本传输协议):
  1. 安全性: HTTPS通过使用TLS/SSL协议对数据进行加密,提供了更高的安全性,防止数据在传输过程中被窃听或篡改。

  2. 默认端口: HTTPS的默认端口是443。

  3. 加密传输: HTTPS使用了TLS/SSL协议,通过在客户端和服务器之间建立加密通道,确保数据的机密性和完整性。

  4. 身份验证: HTTPS还涉及到服务器的身份验证,以确保用户连接到的是正确的服务器,防止中间人攻击。

  5. SSL/TLS协议: HTTPS实际上是HTTP在TLS(Transport Layer Security)或SSL(Secure Sockets Layer)协议上的安全版本。TLS和SSL用于在客户端和服务器之间建立安全连接,通过使用加密算法确保数据的隐私和安全性。

在使用HTTPS时,URL的前缀会由 "http://" 变为 "https://",表明连接是经过加密的。

总的来说,HTTPS是HTTP的安全版本,通过使用加密和认证技术,提供了更高级别的数据安全性,尤其在涉及用户敏感信息的网站上更为重要。

扩展:

SSL(Secure Sockets Layer)和其继任者TLS(Transport Layer Security)是用于在网络通信中提供安全性的协议。它们使用多种加密算法来保护数据的隐私和完整性。以下是SSL和TLS协议中常用的加密算法

对称加密算法(Symmetric Encryption):

对称加密使用相同的密钥来进行加密和解密,是一种高效的加密方式。

  1. DES(Data Encryption Standard): 一种对称密钥加密算法,已经被认为不安全,不再推荐使用。

  2. 3DES(Triple DES): 对DES进行三次迭代,提高了安全性。然而,由于其相对较慢的速度,已逐渐被更先进的算法替代。

  3. AES(Advanced Encryption Standard): 目前最广泛使用的对称密钥加密算法,提供了高级的安全性和性能。常见的AES密钥长度包括128位、192位和256位。

非对称加密算法(Asymmetric Encryption):

非对称加密使用一对密钥:公钥和私钥,其中一个用于加密,另一个用于解密。

  1. RSA(Rivest–Shamir–Adleman): 一种常用的非对称加密算法,用于数字签名和密钥交换。

  2. DSA(Digital Signature Algorithm): 用于数字签名,通常与SHA(Secure Hash Algorithm)一起使用。

  3. ECC(Elliptic Curve Cryptography): 一种非对称加密算法,提供与传统算法相似的安全性,但使用更短的密钥长度。

散列函数(Hash Functions):

散列函数用于生成数据的固定长度哈希值,通常用于验证数据的完整性。

  1. MD5(Message Digest Algorithm 5): 一种散列算法,但由于其易受到碰撞攻击,不再被推荐使用。

  2. SHA-1(Secure Hash Algorithm 1): 曾经广泛使用,但由于安全性问题,逐渐被弃用。

  3. SHA-256、SHA-384、SHA-512: 属于SHA-2家族,提供更高级的安全性。

密钥交换协议:
  1. Diffie-Hellman(DH): 用于在通信双方之间安全地交换密钥,以便进行后续的对称加密通信。

在实际应用中,常常采用组合加密算法的方式,以提供更高级别的安全性。

你可能感兴趣的:(笔记,典型题目,面试,计算机网络)