面试专题基础题精选(一)

本文概述了网络基础知识,包括HTTP与HTTPS的联系与区别,HTTPS的安全特性,常见的HTTP状态码,HTTP事务流程,HTTP无状态协议及其克服方法,请求报文和响应报文结构,HTTP请求方式以及首部字段类型。此外,还讨论了TCP与UDP的区别,页面加载过程,以及网络七层模型的相关协议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试常见的八股文

这篇文章总结了一下我之前学习软件测试面试的一些八股文。 文章主要包含计算机网络的一些基础知识。

1. 计算机网络基础知识

1、HTTP与HTTPS有什么联系?它们的端口号是多少?

HTTP通常承载于TCP之上,在HTTP和TCP之间添加一个安全协议层(SSL或TSL),这个时候,就成了我们常说的HTTPS。HTTP默认的端口号为80,Https默认的端口号为443。

2、为什么 HTTPS更安全?

在网络请求中,需要有很多服务器、路由器的转发。其中的节点都可能篡改信息,而如果使用HTTPS,密钥在终点站才有。HTTPS之所以比HTTP安全,是因为它利用 SSL/TLS协议传输。它包含证书、卸载、流量转发、负载均衡、页面适配、浏览器适配、 refer传递等技术,保障了传输过程的安全性。

3、说出你知道的HTTP常见状态码。

(1)100 Continue表示继续,一般在发送post请求时,已发送了 HTTP header之后,服务器端将返回此信息,表示确认,之后发送具体参数信息。
(2)200 OK表示正常返回信息
(3)201 Created表示请求成功并且服务器创建了新的资源。
(4)202 Accepted表示服务器已接受请求,但尚未处理。
(5)301 Moved Permanently表示请求的网页已永久移动到新位置。
(6)302 Found表示临时性重定向。
(7)303 See Other表示临时性重定向,且总是使用GET请求新的URI。
(8)304 Not Modified表示自从上次请求后,请求的网页未修改过,
(9)400 Bad Request表示服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
(10)401 Unauthorized表示请求未授权。
(11)403 Forbidden表示禁止访问。
(12)404 Not Found表示找不到如何与URI相匹配的资源。
(13)500 Internal Server error表示最常见的服务器端错误。
(14)503 Service Unavailable表示服务器端暂时无法处理请求(可能是过载或维护)。

4、完整的HTTP事务流程是怎样的?⭐️⭐️⭐️

基本流程如下。
(1)域名解析。
(2)发起TCP的3次握手。
(3)建立TCP连接后发起HTTP请求。
(4)服务器端响应HTTP请求,浏览器得到HTML代码。
(5)浏览器解析HTML代码,并请求HTML代码中的资源。
(6)浏览器对页面进行渲染并呈现给用户。

5、什么是HTTP无状态协议?如何克服HTTP无状态协议的缺陷?

(1)无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续需要处理,需要前面提供的信息。
(2)克服无状态协议缺陷的办法是通过 cookie和会话保存信息。

6、HTTP的请求报文和响应报文包含哪些部分?

请求报文包含3部分。
(1)请求行,包含请求方法、URI、HTTP版本信息。
(2)请求首部字段。
(3)请求内容实体。
响应报文包含3部分。
(1)状态行,包含HTTP版本、状态码、状态码的原因短语。
(2)响应首部字段。
(3)响应内容实体

7、HTTP中有哪些请求方式?

(1)GET:请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL,给服务器传递参数数据
(2)POST:传输信息给服务器,主要功能与GET方法类似,但传递的数据量通常不受限制。
(3)PUT:传输文件,报文主体中包含文件内容,保存到对应URI位置。
(4)HEAD:获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
(5) DELETE:删除文件,与PUT方法相反,删除对应URL位置的文件。
(6)OPTIONS:查询相应URI支持的HTTP方法。

8、HTTP的首部字段包括哪些类型?

(1)通用首部字段(请求报文与响应报文都会使用的首部字段)。
它包括以下几部分。

  • Date:创建报文的时间

  • Connection:连接的管理

  • Cache- Control:缓存的控制

  • Transfer- Encoding:报文主体的传输编码方式

(2)请求首部字段(请求报文会使用的首部字段)。
它包括以下几部分。

  • Host:请求资源所在服务器。

  • Accept:可处理的媒体类型。

  • Accept-Charset:可接受的字符集。

  • Accept- Encoding:可接受的内容编码。

  • Accept- Language:可接受的自然语言。

(3)响应首部字段(响应报文会使用的首部字段)。
它包括以下几部分

  • Accept- Ranges:可接受的字节范围。

  • Location:令客户端重新定向到的URL。

  • Server : HTTP服务器的安装信息
    (4)实体首部字段(请求报文与响应报文的实体部分使用的首部字段)。
    它包括以下几部分。

  • Allow:资源可支持的HTTP方法。

  • Content-Type:实体主体的类型。

  • Content- Encoding:实体主体使用的编码方式。

  • Content-Language:实体主体的自然语言。

  • Content- Length:实体主体的字节数。

  • Content- Range:实体主体的位置范围,一般用于发出部分请求时使用。

9、与HTTPS相比,HTTP有什么缺点?

HTTP的缺点如下。
(1)通信使用明文,不加密,内容可能被窃听,也就是被抓包分析。
(2)不验证通信方身份,可能遭到伪装。
(3)无法验证报文完整性,可能被篡改。
HTTPS就是HTTP+加密处理(一般是SSL安全通信线路)+认证+完整性保护

10、说说TCP传输的三次握手、四次挥手策略。

为了准确无误地把数据送达目标处,TCP采用了三次握手策略。用TCP把数据包发送出去后,TCP不会对传送后的数据置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志,即SYN和ACK。
发送端首先给接收端发送一个带SYN标志的数据包。接收端收到后,回传一个带有SYN/ACK标志的数据包以表示正确传达,并确认信息。最后,发送端再回传一个带ACK标志的数据包,代表“握手”结東。若在握手过程中的某个阶段莫名中断,TCP会再次以相同的顺序发送相同的数据包。
断开一个TCP连接则需要“四次握手”。
第一次握手:主动关闭方发送一个FIN,用来关闭主动关闭方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方,主动关闭方已经不会再给被动关闭方发送数据了(当然,在FIN包之前发送出去的数据,如果没有收到对应的ACK确认报文主动关闭方依然会重发这些数据),但是,此时主动关闭方还可以接收数据。
第二次握手:被动关闭方收到FIN包后,给对方发送一个ACK,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次握手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,被动关闭方的数据也发送完了,不会再给主动关闭方发送数据了。
第四次握手:主动关闭方收到FIN后,给被动关闭方发送一个ACK,确认序号为收到序号+1,至此,完成四次握手。

11、说说TCP和UDP的区别。

TCP( Transmission control protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过3次“对话”才能建立起来。
UDP( User Datagram Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。UDP适用于次只传送少量数据、对可靠性要求不高的应用环境。

11、一个页面从输入URL到页面加载显示完成,这个过程中都发生了什么?

整个过程可分为4个步骤。
(1)当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上毎个资源的URL,浏览器都会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询。这能使浏览器获得请求对应的IP地址。
(2)浏览器与远程Web服务器通过TCP三次握手协商来建立一个TCPP连接。该握手包括一个同步报文、一个同步-应答报文和一个应答报文,这3个报文在浏览器和服务器之间传递。该握手首先由客户端尝试建立起通信,然后服务器应答并接受客户端的请求,最后由客户端发出已经接受该请求的报文。
(3)一旦TCP/IP连接建立,浏览器会通过该连接向远程服务器发送HTTP的GET请求。远程服务器找到资源并使用HTTP响应返回该资源,值为200的HTTP响应状态码表示一个正确的响应
(4)此时web服务器提供资源服务,客户端开始下载资源。请求返回后,便进入了浏览器端模块。浏览器会解析HTML生成 DOM Tree,其次会根据CSS生成CSS规则树,而 JavaScript又可以根据 DOM API操作DOM。

12、网络分层模型有哪七层?

七层分别是应用( Application)层、表示( Presentation)层、会话( Session)层传输( Transport)层、网络( Network)层、数据链路(Link)层和物理( Physical)层。
每一层的作用如下。
应用层:允许访问OSI环境的手段。

  • 表示层:对数据进行翻译、加密和压缩。

  • 会话层:建立、管理和终止会话。

  • 传输层:提供端到端的可靠报文传递和错误恢复。

  • 网络层:负责数据包从源到宿的传递和网际互联。

  • 数据链路层:将比特组装成帧并实现点到点的传递。

  • 物理层:通过媒介传输比特,确定机械及电气规范。

13、网络七层模型中,你所熟知的协议有哪些?
有以下几种协议。

  • ICMP,即因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。

  • TFTP,即TCPP协议族中一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。

  • HTTP,即超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷快速的方式,适用于分布式超媒体信息系统。

  • DHCP,即动态主机配置协议,是一种让系统得以连接到网络并获取所需要配置参数的手段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值