前端面试必备 | 计算机网络篇(P1-16)

alt

文章目录

  1. 什么是HTTP?它的工作原理是什么?它的请求和响应内容是什么?
  2. HTTP和HTTPS有什么区别?如何实现HTTPS?
  3. 解释一下HTTP请求方法GET和POST的区别。
  4. 什么是Cookie?它在计算机网络中的作用是什么?
  5. 什么是Session?如何在前端实现基于Session的身份验证?
  6. 对称加密和非对称加密是什么,如何使用?
  7. 什么是TCP/IP协议?它在计算机网络中的作用是什么?
  8. 解释一下DNS是什么,它的作用是什么?
  9. 什么是RESTful API?它与传统的API有什么不同?
  10. 说一下OSI七层模型?
  11. TCP和UDP的区别是什么?
  12. 解释一下浏览器缓存,它的优点和使用场景是什么?
  13. 什么是CDN?它在前端性能优化中的作用是什么?
  14. 说下TCP三次握手,四次挥手?
  15. 浏览器输入网址后执行的过程?
  16. 说说你对计算机网络模型的理解

1. 什么是HTTP?它的工作原理是什么?它的请求和响应内容是什么?

HTTP超文本传输协议(Hypertext Transfer Protocol)的缩写,它是一种用于在Web上发送和接收超文本(如HTML)的应用层协议。

HTTP的工作原理是基于客户端-服务器模型。一般情况下,客户端是指用户使用的浏览器,服务器则是存储网站内容的远程主机。

下面是HTTP的基本工作流程:

  1. 客户端发起HTTP请求:浏览器向服务器发送HTTP请求,包括请求的资源路径、请求方法(如GET、POST等)和其他可选的请求头字段(如Cookie、User-Agent等)。
  2. 服务器处理请求:服务器接收到客户端请求后,根据请求的资源路径和方法进行处理,执行相应的逻辑操作。
  3. 服务器返回HTTP响应:服务器生成HTTP响应,包括响应状态码(如200表示成功,404表示资源未找到等),响应头字段(如Content-Type、Content-Length等)和响应体(即请求的资源内容)。
  4. 客户端处理响应:浏览器接收到服务器的HTTP响应后,根据响应内容进行相应的处理,如解析HTML、渲染页面等。

alt

HTTP请求的内容包括请求行、请求头和请求体

  • 请求行包含请求方法URL路径HTTP协议版本
  • 请求头包含附加的信息,如请求的Host、User-Agent、Cookie等。
  • 请求体则是一些需要在请求中携带的数据,例如在POST请求中传递的表单数据

alt

HTTP响应的内容包括响应行、响应头和响应体。响应行包含HTTP协议版本、响应状态码和相应的状态信息。响应头包含一些附加的信息,如响应的Content-Type、Content-Length等。响应体则是服务器返回的实际内容,如HTML文档、图片、视频等。

通过HTTP,客户端和服务器可以进行通信并交换超文本内容,实现了Web中的数据传输和交互。

2. HTTP和HTTPS有什么区别?如何实现HTTPS?

HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是用于在客户端和服务器之间传输数据的协议,它们有以下区别:

  1. 安全性:HTTP是明文传输协议,数据传输过程中不加密,因此存在安全风险。HTTPS通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议进行加密通信,确保数据在传输过程中的机密性和完整性,提供更高的安全性。

  2. 端口号:HTTP使用默认端口80进行通信,而HTTPS使用默认端口443。

  3. 证书验证:为了建立HTTPS连接,服务器需要使用SSL/TLS证书来验证其身份。客户端会验证该证书的有效性和可信度,确保与正确的服务器进行通信。这增加了对服务器身份的认证。

实现HTTPS的步骤如下:

  1. 生成和获取证书:需要通过证书颁发机构(CA)购买或获取SSL/TLS证书。证书中包含公钥和相关信息。你可以自己生成自签名证书进行测试,但浏览器会警告访问者证书不受信任。

  2. 配置服务器:服务器需要安装证书,并配置相应的加密套件和密码算法,在配置中指定使用HTTPS的端口号(通常是443)。

  3. 开启HTTPS:在服务器的配置文件中启用HTTPS协议(如Apache的配置文件httpd.conf或Nginx的配置文件nginx.conf),设置SSL/TLS证书的路径和配置参数。

  4. 重启服务器:在完成配置后,需要重启服务器以使更改生效。

alt

实现HTTPS过程还涉及到数字证书的管理和维护,包括证书的更新和续期。此外,为了提供更高的安全性,可以配置HTTP到HTTPS的跳转,并实施其他安全措施,如HSTS(HTTP Strict Transport Security)。

请注意,HTTPS的实现可能略有不同,具体取决于你使用的服务器软件和配置方式。根据不同的服务提供商、服务器类型或工具,可以参考相关文档或指南来获取更详细的配置信息和步骤。

3. 解释一下HTTP请求方法GET和POST的区别。

HTTP请求方法GET和POST是两种常见的请求方法,它们在使用方式和作用上有一些区别。

  1. GET请求:

    • GET方法用于从服务器获取资源,通常用于请求获取页面、图片、文档等内容。
    • GET请求的参数会附加在URL的查询字符串中,并以键值对的形式传递,例如:http://example.com/resource?key1=value1&key2=value2
    • GET请求具有幂等性,即多次发送相同的GET请求,不应对服务器产生副作用,只是获取相同的响应。
    • GET请求参数的长度有限制,不适合传递大量数据。
  2. POST请求:

    • POST方法用于向服务器提交数据,通常用于提交表单、上传文件等操作。
    • POST请求的参数会包含在请求体中,并以键值对的形式传递。参数不会直接暴露在URL中,因此相对于GET方法更安全。
    • POST请求可以传递大量数据,没有像GET方法的参数长度限制。
    • POST请求不具有幂等性,即多次发送相同的POST请求,可能对服务器产生副作用,例如重复提交订单。

总结:

  • GET方法用于获取资源,参数附加在URL中,通常用于无副作用的读取操作。
  • POST方法用于提交数据,参数包含在请求体中,通常用于有副作用的写入操作。
  • GET方法适合获取少量数据,POST方法适合传递大量数据。
  • GET请求可以被缓存和收藏,POST请求一般不会被缓存。

需要根据具体的场景和需求选择适合的请求方法。

4. 什么是Cookie?它在计算机网络中的作用是什么?

Cookie是计算机网络中的一种机制,用于在客户端和服务器之间存储和交换信息。它是由服务器发送给客户端的小型文本文件,在客户端的浏览器中存储,并在每次客户端向服务器发送请求时通过HTTP头部信息传递给服务器。

Cookie在计算机网络中的主要作用如下:

  1. 会话管理:Cookie常用于跟踪用户会话。当用户通过浏览器与服务器进行交互时,服务器可以创建一个唯一的标识符(称为会话ID)并将其存储在Cookie中。随后,浏览器在后续的请求中将Cookie自动包含在HTTP头部中,使服务器能够识别用户并维护与其关联的会话状态,如登录状态、购物车内容等。

  2. 状态保持:Cookie可以在客户端存储一些状态信息,在不同请求之间传递,以维持状态。例如,网站可以使用Cookie来记录用户的偏好设置或对用户进行个性化处理。

  3. 跟踪和分析:通过将唯一标识符(如用户ID)存储在Cookie中,服务器可以追踪和分析用户的行为和访问模式。这对于统计分析和广告跟踪等方面是有用的。

  4. 广告定向:许多广告平台使用Cookie来跟踪用户的兴趣和行为,并根据这些信息向用户推送相关的广告内容。

alt

需要注意的是,Cookie是存储在客户端的文本文件,因此可以被篡改和删除。为了保护用户隐私和提高安全性,Web应用程序和浏览器都提供了对Cookie的一些控制和限制机制,如设置Cookie的有效期限、限制Cookie的访问范围、启用Secure标记来仅在HTTPS连接中传输Cookie等。

5. 什么是Session?如何在前端实现基于Session的身份验证?

在计算机网络中,Session(会话)是指客户端和服务器之间的一段交互时间。

它开始于客户端向服务器发送请求,并一直持续到服务器响应完成。 Session通常用于维护特定用户在一段时间内的状态和信息。

在前端实现基于Session的身份验证,通常的步骤如下:

  1. 登录验证:用户通过提供用户名和密码进行登录。前端将用户输入的凭据发送到服务器,服务器进行验证,如果验证通过,则生成一个唯一的会话标识符(Session ID)。

  2. 存储Session ID:服务器将生成的Session ID返回给前端,前端通常会将Session ID保存在Cookie中或使用其他方式存储,以便在后续的请求中发送给服务器。另外,还可以将Session ID存储在本地存储(如localStorage)或会话存储(如sessionStorage)中。

  3. 身份验证:在后续的请求中,前端需要将Session ID包含在每个请求中,通常通过将其作为Cookie的值发送。服务器接收到请求后,会通过验证Session ID来识别用户,并判断用户是否已经通过登录验证。

  4. 会话管理:服务器通过Session ID来获取与该用户关联的会话数据。会话数据可以存储在服务器的内存中、数据库中或缓存中,用于存储用户状态、权限信息等。服务器可以根据Session ID进行相关操作,如更新会话状态、获取用户信息等。

alt

需要注意以下几点:

  • 服务器端实现:在实现基于Session的身份验证时,还需要服务器端的支持。服务器需要在接收到请求时,解析Cookie中的Session ID,并对其进行验证和处理。

  • 安全性考虑:为了增加安全性,建议使用HTTPS来传输Session ID,防止中间人攻击和信息篡改。此外,还需要适当设置Session的过期时间,并定期更新Session ID。

  • 注销:为了注销Session和退出登录,需要在服务器端删除或失效Session数据,并在前端清除存储的Session ID。

  • 安全漏洞:基于Session的身份验证需要处理一些常见的安全漏洞,如会话劫持和会话固定攻击。服务器端应采取适当的安全防护措施,如生成强大的Session ID、使用随机数种子、控制Cookie的安全标志等。

alt

综上所述,基于Session的身份验证在前端通常涉及用户登录、Session ID的存储和传输,以及在后续请求中验证和管理会话数据。服务器端负责验证Session ID并提供相应的会话管理功能。

6. 对称加密和非对称加密是什么,如何使用?

对称加密和非对称加密是常见的加密算法,用于确保数据在传输或存储过程中的安全性。

  1. 对称加密:
  • 对称加密使用相同的密钥(称为秘密密钥)进行加密和解密。
  • 加密和解密的过程都使用同一个密钥,因此速度较快。
  • 常见的对称加密算法有DES、AES等。
  • 使用对称加密时,发送方和接收方需要事先共享同一个密钥。

alt

  1. 非对称加密:
  • 非对称加密使用一对密钥,分别称为公钥和私钥。
  • 公钥用于加密数据,私钥用于解密数据。
  • 使用公钥加密的数据只能通过对应的私钥进行解密。
  • 常见的非对称加密算法有RSA、ECC等。
  • 使用非对称加密时,发送方发布其公钥给接收方,接收方使用公钥加密数据后发送给发送方,发送方再使用私钥解密数据。

alt

使用对称加密和非对称加密的一般步骤:

  1. 对称加密:
    • 选择适当的对称加密算法和密钥长度。
    • 生成密钥并共享给通信双方。
    • 发送方使用共享的密钥对数据进行加密。
    • 接收方使用共享的密钥对数据进行解密。

alt

  1. 非对称加密:
    • 接收方生成一对公钥和私钥。
    • 发送方获取接收方的公钥。
    • 发送方使用接收方的公钥对数据进行加密。
    • 接收方使用私钥对数据进行解密。

alt

对称加密适用于传输速度要求高、密钥共享方便的场景;而非对称加密适用于传输安全性要求高、密钥共享困难的场景。通常的做法是,使用非对称加密来安全地传输对称加密中所使用的密钥,以确保传输过程的安全性。

7. 什么是TCP/IP协议?它在计算机网络中的作用是什么?

TCP/IP(Transmission Control Protocol/Internet Protocol)是一组网络通信协议,用于在计算机网络上进行可靠的数据传输和通信。它是互联网的基础协议套件,支持网络间的数据传输和互联网上的通信。

TCP/IP协议由两个主要协议组成:

  1. TCP(Transmission Control Protocol):TCP提供可靠的、面向连接的数据传输。它的主要功能是分割和重组数据,确认数据的完整性和可靠性,以及处理数据包在网络上的顺序。TCP通过建立连接、数据分段、错误检测和重传等机制,确保数据在源和目标之间可靠地传输。TCP适用于需要可靠性和顺序交付的应用,如网页浏览、文件传输和电子邮件等。 alt

  2. IP(Internet Protocol):IP是计算机网络中的主要协议,负责在网络上定位和传输数据包。它定义了数据包的格式、寻址方案和路由选择。IP协议的主要功能是将数据包从源主机路由到目标主机,实现网络的互联和跨网络通信。IP协议是无连接的,每个数据包独立处理,因此它的传输不保证数据包的可靠性、顺序和时延。 alt

TCP/IP协议在计算机网络中扮演着重要的角色,具有以下作用:

  1. 路由和数据传输:TCP/IP协议套件提供了路由和数据传输功能,使得数据包能够在不同的网络和主机之间进行传输。它支持将数据包从源地址路由到目标地址,并确保数据的可靠性和顺序。

  2. IP地址和寻址:TCP/IP使用IP地址作为网络中主机的唯一标识符。IP地址用于标识主机的位置和网络归属,使得数据包能够准确路由到目标主机。IP地址还支持分级的寻址方式,提供了灵活的网络划分和子网管理能力。

  3. 互联网标准:TCP/IP是互联网的基础协议套件,定义了互联网的基本通信协议和数据格式。它为互联网上的各种应用提供了统一的通信标准,使得不同计算机和操作系统之间能够进行交互和通信。

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

前端面试必备 文章被收录于专栏

前端面试必备知识点:HTML和CSS、JS(变量/数据类型/操作符/条件语句/循环;面向对象编程/函数/闭包/异步编程/ES6)、DOM操作、HTTP和网络请求、前端框架、前端工具和构建流程、浏览器和性能优化、跨浏览器兼容性、前端安全、数据结构和算法、移动端开发技术、响应式设计、测试和调试技巧、性能监测等。准备面试时,建议阅读相关的技术书籍、参与项目实践、刷题和练习,以深化和巩固你的知识。

全部评论
HTTP是明文传输协议,数据传输过程中不加密,因此存在安全风险。HTTPS通过***L(Secure Sockets Layer)或TLS(Transport Layer Security)协议进行加密通信,确保数据在传输过程中的机密性和完整性,提供更高的安全性
点赞 回复 分享
发布于 2023-09-10 21:08 北京
来学习打卡了,HTTP是超文本传输协议(Hypertext Transfer Protocol)的缩写,它是一种用于在Web上发送和接收超文本(如HTML)的应用层协议。
点赞 回复 分享
发布于 2023-09-10 21:00 广东

相关推荐

我面试,她问我有女朋友没
不太迷人的反派_:不过对象,还会结合你老家,意向城市等等,看你是否稳定。哥们,别多想
点赞 评论 收藏
分享
牛客517626884号:嵌入式真难啊今年,我电赛国二都成了路边野狗了
点赞 评论 收藏
分享
评论
8
15
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务