嵌入式软件工程师面试题——2025校招社招通用(计算机网络篇)(三十)

说明:

  • 面试群,群号: 228447240
  • 面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);
  • 文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但在这里博主希望每一个题目,大家都要经过认真思考,答案不重要,重要的是通过题目理解所考知识点,好应对题目更多的变化;
  • 博主与大家一起学习,一起刷题,共同进步;
  • 写文不易,麻烦给个三连!!!

1.HTTP请求方法你知道多少?

答案:

根据 HTTP 标准, HTTP 请求可以使用多种请求方法。
HTTP1.0 定义了三种请求方法: GET, POST HEAD 方法。
HTTP1.1 新增了六种请求方法: OPTIONS PUT PATCH DELETE TRACE CONNECT 方法。

2.GET POST 的区别,你知道哪些?

答案:

  1.  get是获取数据,post是修改数据
  2.  get把请求的数据放在url上, 以?分割URL和传输数据,参数之间以&相连,所以get不太安全。而post 把数据放在HTTP的包体内(requrest body
  3. get提交的数据最大是2k( 限制实际上取决于浏览器), post理论上没有限制。
  4. GET产生一个TCP数据包,浏览器会把http headerdata一并发送出去,服务器响应200(返回数据); POST产生两个TCP数据包,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)
  5. GET请求会被浏览器主动缓存,而POST不会,除非手动设置。
  6. 本质区别:GET是幂等的,而POST不是幂等的。
    这里的幂等性:幂等性是指一次和多次请求某一个资源应该具有同样的副作用。简单来说意味着对同一URL 的多个请求应该返回同样的结果。
正因为它们有这样的区别,所以不应该且 不能用 get 请求做数据的增删改这些有副作用的操作 。因为 get请求是幂等的,在网络不好的隧道中会尝试重试 。如果用 get 请求增数据,会有 重复操作 的风险,而这种重复操作可能会导致副作用(浏览器和操作系统并不知道你会用get 请求去做增操作)。

3.TCP 三次握手发生在 socket 建立的哪一步

答案:

TCP Client调用connec()请求建立连接时。

4.DNS负载均衡是什么策略?

答案:

当一个网站有足够多的用户的时候,假如每次请求的资源都位于同一台机器上面,那么这台机器随时可能会崩掉。处理办法就是用DNS 负载均衡技术,它的原理是在 DNS 服务器中为同一个主机名配置多个 IP 地址 , 在应答 DNS 查询时 ,DNS 服务器对每个查询将以 DNS 文件中主机记录的 IP 地址按顺序返回不同的解 析结果 , 将客户端的访问引导到不同的机器上去 , 使得不同的客户端访问不同的服务器 , 从而达到负载均衡的目的。例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等。

5.HTTPSHTTP的区别

答案:
1 HTTP 协议传输的数据都是未加密的,也就是明文的,因此使用 HTTP 协议传输隐私信息非常不安全, HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 http 协议安全。
2 https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用。
3 http https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80 ,后者是 443

6.什么是SSL/TLS

答案:

SSL 代表安全套接字层。它是一种用于加密和验证应用程序(如浏览器)和 Web 服务器之间发送的数据的协议。 身份验证 , 加密Https 的加密机制是一种共享密钥加密和公开密钥加密并用的混合加密机制。
SSL/TLS 协议作用:认证用户和服务,加密数据,维护数据的完整性的应用层协议加密和解密需要两个不同的密钥,故被称为非对称加密;加密和解密都使用同一个密钥的。
对称加密:优点在于加密、解密效率通常比较高 , HTTPS 是基于非对称加密的, 公钥是公开的。

7.HTTPS是如何保证数据传输的安全,整体的流程是什么?(SSL是怎么工作保证安全的)

答案:

1 )客户端向服务器端发起 SSL 连接请求;
2 )服务器把公钥发送给客户端,并且服务器端保存着唯一的私钥
3 )客户端用公钥对双方通信的对称秘钥进行加密,并发送给服务器端
4 )服务器利用自己唯一的私钥对客户端发来的对称秘钥进行解密,
5 )进行数据传输,服务器和客户端双方用公有的相同的对称秘钥对数据进行加密解密,可以保证在数据收发过程中的安全,即使是第三方获得数据包,也无法对其进行加密,解密和篡改。
因为数字签名、摘要是证书防伪非常关键的武器。 摘要 就是对传输的内容,通过 hash 算法计算出一段固定长度的串。然后,通过发送方的私钥对这段摘要进行加密,加密后得到的结果就是“ 数字签名 ”SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

8.Cookie是什么

答案:

HTTP 协议是 无状态 的,主要是为了让 HTTP 协议尽可能简单,使得它能够处理大量事务, HTTP/1.1 引入 Cookie 来保存状态信息。
Cookie 服务器发送到用户浏览器并保存在本地的一小块数据 ,它会在浏览器之后向同一服务器再次发起请求时被携带上,用于告知服务端两个请求是否来自同一浏览器。由于之后每次请求都会需要携带Cookie 数据,因此会带来额外的性能开销(尤其是在移动环境下)。
Cookie 曾一度用于客户端数据的存储,因为当时并没有其它合适的存储办法而作为唯一的存储手段,但现在随着现代浏览器开始支持各种各样的存储方式,Cookie 渐渐被淘汰。新的浏览器 API 已经允许开发者直接将数据存储到本地,如使用 Web storage API (本地存储和会话存
储)或 IndexedDB
cookie 的出现是因为 HTTP 是无状态的一种协议,换句话说,服务器记不住你,可能你每刷新一次网页,就要重新输入一次账号密码进行登录。这显然是让人无法接受的,cookie 的作用就好比服务器给你贴个标签,然后你每次向服务器再发请求时,服务器就能够 cookie 认出你。
抽象地概括一下:一个 cookie 可以认为是一个「变量」,形如 name=value ,存储在浏览器;一个session 可以理解为一种数据结构,多数情况是「映射」(键值对),存储在服务器上。

9.Session 的工作原理是什么?

答案:

Session 可以被存储在服务器上的文件、数据库或者内存中。也可以将 Session 存储在 Redis 这种内存型数据库中,效率会更高。
session 的工作原理是客户端登录完成之后,服务器会创建对应的 session session 创建完之后,会把session 的 id 发送给客户端,客户端再存储到浏览器中。这样客户端每次访问服务器时,都会带着sessionid,服务器拿到 sessionid 之后,在内存找到与之对应的 session 这样就可以正常工作了。

10.CookieSession的对比

答案:

Cookie
Cookie 是客户端保持状态的方法。
Cookie 简单的理解就是存储由服务器发至客户端并由客户端保存的一段字符串。为了保持会话,服务器可以在响应客户端请求时将Cookie 字符串放在 Set-Cookie 下,客户机收到 Cookie 之后保存这段字符串,之后再请求时候带上Cookie 就可以被识别。
除了上面提到的这些, Cookie 在客户端的保存形式可以有两种,一种是会话 Cookie 一种是持久
Cookie ,会话 Cookie 就是将服务器返回的 Cookie 字符串保持在内存中,关闭浏览器之后自动销毁,持久Cookie 则是存储在客户端磁盘上,其有效时间在服务器响应头中被指定,在有效期内,客户端再次请求服务器时都可以直接从本地取出。需要说明的是,存储在磁盘中的Cookie 是可以被多个浏览器代理所共享的。
Session
Session 是服务器保持状态的方法。
首先需要明确的是, Session 保存在服务器上,可以保存在数据库、文件或内存中,每个用户有独立的Session用户在客户端上记录用户的操作。我们可以理解为每个用户有一个独一无二的 Session ID 作为Session文件的 Hash 键,通过这个值可以锁定具体的 Session 结构的数据,这个 Session 结构中存储了用户操作行为。

11.什么是RARP?工作原理

答案:

概括:
向地址转换协议,网络层协议, RARP ARP 工作方式相反。 RARP 使只知道自己硬件地址的主机能够知道其IP 地址。 RARP 发出要反向解释的物理地址并希望返回其 IP 地址,应答包括能够提供所需信息的RARP 服务器发出的 IP 地址。
原理:
(1) 网络上的每台设备都会有一个独一无二的硬件地址,通常是由设备厂商分配的 MAC 地址。主机从网卡上读取MAC 地址,然后在网络上发送一个 RARP 请求的广播数据包,请求 RARP 服务器回复该主机的IP地址。
(2)RARP 服务器收到了 RARP 请求数据包,为其分配 IP 地址,并将 RARP 回应发送给主机。
(3)PC1 收到 RARP 回应后,就使用得到的 IP 地址进行通讯。

12.端口有效范围是多少到多少?

答案:

0-1023 为知名端口号,比如其中 HTTP 80 FTP 20 (数据端口)、 21 (控制端口)。
UDP TCP 报头使用两个字节存放端口号,所以端口号的有效范围是从 0 65535 。动态端口的范围是从1024到 65535。

最近更新

  1. TCP协议是安全的吗?

    2024-01-22 06:26:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-22 06:26:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-22 06:26:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-22 06:26:05       18 阅读

热门阅读

  1. mini-spring-Bean含参实例化(三)

    2024-01-22 06:26:05       30 阅读
  2. Conan: starting at a text book Hello World

    2024-01-22 06:26:05       32 阅读
  3. logback排除指定包类方法的日志

    2024-01-22 06:26:05       33 阅读
  4. 配置ansible自动化工具

    2024-01-22 06:26:05       27 阅读
  5. React:构建用户界面的强大工具

    2024-01-22 06:26:05       26 阅读