首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
快到锅里来
西安文理学院 计算机类
发布于陕西
关注
已关注
取消关注
@Chowley:
「QALog」校招测试八股—计网篇(一)
哈喽大家好,我是chowley,QALog创始人,测试开发工程师这次的测试八股系列专栏由我来主写,给大家带来亿点点硬货,今天是计网系列的第一篇,我总结了市面上主流的测试核心八股,废话少说直接开整!下面是本期目录:Q1:介绍一下OSI七层模型、每层的作用从下往上:物理层(Physical Layer):负责在物理媒介上透明的传输原始比特流,确保比特流能够在通信媒介上稳定、可靠地传输,而不对传输的数据进行任何形式的处理,主要关注数据的传输速率、电压等物理特性。数据链路层(Data Link Layer):处理节点之间的数据帧传输,确保在通信实体之间可靠地传输数据。它有两个特性:(1)帧编码的目的是为了确保数据能够正确地在物理媒介上传输,并且接收端能够正确地解码和处理接收到的数据。(2)误差纠正控制通过在数据帧中添加冗余信息(如校验位、奇偶校验等)来检测和纠正这些错误,从而提高数据传输的可靠性和准确性。网络层(Network Layer):负责数据包的路由和转发,实现不同网络之间的通信,如 IP 协议就在这一层工作。路由算法可以分为静态路由和动态路由两种类型:(1)静态路由(Static Routing):管理员手动配置路由表,指定每个目标网络的下一跳路由器。这种方式适用于网络拓扑结构稳定的情况,但不适合大型或动态网络。(2)动态路由(Dynamic Routing):路由器之间通过路由协议(如RIP、OSPF、BGP等)交换路由信息,根据网络状态动态调整路由表。动态路由能够自适应网络变化,适用于大型复杂网络。传输层(Transport Layer):提供端到端的数据传输服务,负责数据的可靠传输和流量控制,如 TCP 协议。会话层(Session Layer):负责建立、管理和终止会话,为应用程序之间的通信提供服务。保证了通信的可靠性和有效性,使得不同终端的程序之间能够进行有效的数据交换。表示层(Presentation Layer):处理数据的表示格式,确保一个系统的应用层数据可以被另一个系统理解。涉及到编解码、加密解密、压缩解压缩等。应用层(Application Layer):为用户提供应用服务,是用户直接接触的网络层,常见的应用有 HTTP、FTP、SMTP 等。OSI层级按照功能划分,每一层都有特定的任务和责任,层级之间协同工作以实现用户数据的传输和通信。Q2:讲一下计网中常用的协议有哪些?我以市面上主流的五层模型来讲解:物理层:主要协议有 RS-232、RS-485、Ethernet 等,用于在物理媒介上传输比特流。数据链路层:主要协议有以太网(Ethernet)、PPP(Point-to-Point Protocol)、HDLC(High-Level Data Link Control)等,用于在直接相连的节点之间传输数据帧。网络层:主要协议有 IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、ARP(Address Resolution Protocol)等,用于在不同网络之间传输数据包,并处理数据包的路由和转发。传输层:主要协议有 TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)等,用于在端到端的通信中提供可靠的数据传输服务。应用层:主要协议有 HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)等,用于不同应用之间的数据交换和通信。这些协议在计算机网络中起着至关重要的作用,通过协议规定了数据的传输格式、通信规则和传输方式,保证了网络通信的正常进行。Q3:TCP/IP模型呢?TCP/IP 模型是一个将网络通信划分为四个层次的参考模型,与 OSI 模型类似,但具有更简单的结构。它包括以下四层:应用层:提供用户应用程序间的通信。包括 HTTP、FTP、SMTP 等协议。传输层:负责端到端的通信。包括 TCP 和 UDP 协议。网络层:负责将数据包从源主机传输到目的主机。包括 IP、ICMP、ARP 等协议。链路层:负责将数据帧从一个节点传输到相邻节点。包括以太网、PPP 等协议。TCP/IP 模型中的每一层都有特定的功能和责任,协同工作以实现网络通信。与 OSI 模型不同,TCP/IP 模型将会话层、表示层和物理层的功能合并到了应用层和链路层中,使得模型结构更简单、更实用。Q4:说一下HTTP和HTTPS的区别HTTP(HyperText Transfer Protocol)和 HTTPS(HTTP Secure)是用于传输数据的两种协议,它们之间的主要区别在于安全性和加密方式:安全性:HTTP 是一种不安全的协议,数据传输是明文的,容易被窃听和篡改。而 HTTPS 则通过 SSL/TLS 协议加密数据传输,运行在TCP上,提供了更高的安全性,能够有效防止数据被窃听和篡改。加密方式:HTTPS 使用 SSL(Secure Sockets Layer)或 TLS(Transport Layer Security)协议来加密数据传输。SSL/TLS 使用公钥加密和私钥解密的方式,保证数据在传输过程中的机密性和完整性。端口号:HTTP 默认使用端口 80 进行通信,而 HTTPS 默认使用端口 443。URL 形式:HTTP 的 URL 以 "http://" 开头,而 HTTPS 的 URL 以 "https://" 开头。总的来说,HTTPS 比 HTTP 更安全,适用于对数据传输安全性要求较高的场景,如网上支付、用户登录等。Q5:介绍一下HTTP状态码HTTP 状态码是服务器向客户端返回的一个三位数字代码,用于表示服务器对请求的处理结果。常见的 HTTP 状态码有以下几类:1xx(信息性状态码):表示请求已被接收,继续处理。2xx(成功状态码):表示请求已成功被服务器接收、理解、并接受。200 OK:请求成功。常用于 GET 和 POST 请求。3xx(重定向状态码):表示需要客户端进一步的操作才能完成请求。301 Moved Permanently:永久重定向,请求的资源已被永久移到新位置。302 Found:临时重定向,请求的资源已被临时移到新位置。4xx(客户端错误状态码):表示客户端发出的请求有错误。400 Bad Request:客户端请求存在问题(如请求方法错误、参数不合理等),服务器无法理解。401 Unauthorized:请求要求用户的身份认证,通过后才能访问资源。403 Forbidden:服务器理解客户端的请求,但是拒绝执行此请求。404 Not Found:服务器无法找到请求的资源(或不存在)。5xx(服务器错误状态码):表示服务器在处理请求时发生了错误。500 Internal Server Error:服务器遇到了一个未曾预料的状况,导致无法完成对请求的处理。503 Service Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常(当前很忙)。熟悉HTTP 状态码可以帮助测试人员,快速定位和解决网络请求中出现的问题,对于调试和排查网络请求错误非常有用。插播一条广告:我们正在组建测试开发方向的求职交流社区,如果您对软件质量管理、团队工作效率提高内容感兴趣,可以持续关注我的账户,会持续发布相关内容!广告结束,继续拷打!Q6:结合网络模型,说一下URL的请求过程URL(Uniform Resource Locator)是用于定位和访问互联网资源的地址,其请求过程可以结合网络模型(比如 TCP/IP 模型)来解释。一个简单的 URL 请求过程:应用层:用户在浏览器中输入 URL,浏览器根据 URL 中的协议(比如 HTTP、HTTPS)选择相应的传输协议。传输层:浏览器通过传输层协议(如 TCP)与服务器建立连接。TCP 协议负责将数据可靠地传输到目标服务器。网络层:根据 URL 中的主机名(如 baidu.com),浏览器通过DNS 解析获取服务器的 IP 地址,并使用 IP 协议找到目标服务器。数据链路层:数据被封装成数据帧,在物理媒介上传输。物理层:数据在物理媒介上传输,比如通过以太网、Wi-Fi 等传输方式。服务器端:服务器接收到请求后,根据 URL 中的路径和其他信息,处理请求并返回相应的数据。反向传输:服务器将响应数据封装成数据包,并通过网络层、传输层传输到客户端。客户端:客户端接收到响应数据后,根据协议解析数据,并在应用层上显示给用户。这样,通过网络模型的各层协议,浏览器和服务器之间就完成了一次 URL 请求和响应的过程。Q7:简单讲一下HTTP不同版本之间的区别和各自的特点HTTP的版本包括 HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2 和 HTTP/3,它们之间的区别主要体现在性能、功能和协议特性上:HTTP/0.9:最早的版本,只支持 GET 方法,没有头部信息,服务器收到请求后返回 HTML 格式的文档。没有状态管理机制,每个请求都是独立的,无法维护客户端的状态。HTTP/1.0:引入了头部信息,支持更多的请求方法,如 POST、PUT、DELETE 等。支持状态码、缓存控制等功能,使得通信更加可靠和灵活。HTTP/1.1:引入了持久连接(Persistent Connections),减少了建立和关闭连接的开销,提高了性能。引入了管道化(Pipeline),允许客户端发送多个请求,而不必等待响应,提高了并发性能。引入了 Host 头部字段,支持在同一个 IP 地址上托管多个域名。HTTP/2:采用了二进制协议,取代了 HTTP/1.x 中的文本协议,减少了数据传输的开销。引入了多路复用(Multiplexing),允许在同一个连接上并行发送多个请求和响应,提高了并发性能。支持头部压缩(Header Compression),减少了头部信息的传输大小,提高了性能。HTTP/3:基于 UDP 协议,通过 QUIC 协议实现,以减少 TCP 连接的握手时间。支持 0-RTT(Zero Round Trip Time Resumption),在一定条件下可以实现零往返时间连接。引入了拥塞控制、丢包恢复等机制,以提高传输的稳定性和可靠性。总的来说,随着 HTTP 版本的不断更新,HTTP 协议在性能、功能和安全性方面得到了不断的改进和提升,使得 Web 应用能够更加高效、快速地进行通信和数据传输。Q8:HTTP有哪些请求方法?介绍一下它们各自的作用HTTP 协议常见的请求方法包括以下几种:GET:请求获取指定资源的表示形式。使用 GET 方法应该只用于获取数据,而不应该对服务器产生其他影响。例如,请求一个网页、图片或其他资源。POST:向指定资源提交数据,请求服务器进行处理。POST 请求可能会导致新的资源的创建或已有资源的修改。常用于提交表单数据,如用户登录、注册等。PUT:请求服务器存储一个资源,并用请求的数据替代指定的资源。如果指定的资源不存在,则创建一个新的资源。DELETE:请求服务器删除指定的资源。HEAD:类似于 GET 请求,但服务器只返回头部信息,不返回实体的主体部分。用于获取资源的元信息,如资源的大小、类型等,而不获取实际的内容。OPTIONS:请求获取服务器支持的 HTTP 方法。客户端可以通过该方法来查询服务器支持的方法,用于跨域请求时的预检请求。TRACE:回显服务器收到的请求,主要用于测试或诊断。CONNECT:建立一个到服务器的隧道,用于代理服务器。Q9:GET和POST有啥区别?GET 和 POST 是 HTTP 协议中最常用的两种请求方法,它们之间的主要区别如下:数据传输方式:GET:通过 URL 参数传输数据,数据会附加在 URL 后面,以 ?key1=value1&key2=value2 的形式出现。POST:通过请求体传输数据,数据不会附加在 URL 中,而是作为请求的一部分发送。数据长度限制:GET:由于数据是作为 URL 参数传输的,受浏览器和服务器对 URL 长度的限制,传输的数据量较小,一般不超过 2048 个字符。POST:由于数据是作为请求体传输的,通常没有长度限制,可以传输大量数据。安全性:GET:因为数据是以明文形式出现在 URL 中,所以不适合传输敏感信息,如密码等。POST:由于数据是作为请求体传输的,相对于 GET 更安全,适合传输敏感信息。缓存处理:GET:请求会被浏览器缓存,可以通过浏览器的历史记录来访问。POST:请求不会被浏览器缓存,需要重新提交数据。幂等性:GET:请求是幂等的,多次请求相同的 URL 会得到相同的结果,不会对服务器产生影响。POST:请求不是幂等的,多次请求相同的 URL 可能会对服务器产生不同的影响,比如重复提交订单。GET 适合用于获取数据,POST 适合用于提交数据。在选择使用哪种方法时,应根据具体的需求和数据传输方式来决定。Q10:幂等性是啥意思?怎么保证一个按钮的幂等性?幂等性是指对同一操作的多次执行所产生的影响相同,即使操作被执行多次也不会产生额外的影响。在 HTTP 协议中,幂等性指的是对同一个 URL 的多次请求所产生的结果是相同的。要保证一个按钮的幂等性,可以采取以下措施:GET 请求幂等性:对于纯粹的数据获取操作,如查看页面、检索数据等,可以使用 GET 请求,因为 GET 请求是幂等的,多次请求同一个 URL 不会产生额外的影响。使用唯一标识符(UID):对于需要修改或删除数据的操作,可以在请求中包含一个唯一标识符(如资源的 ID),服务器根据这个标识符来识别要修改或删除的资源,保证多次请求不会产生冲突。使用重复提交检测:在客户端或服务器端进行重复提交检测,防止同一个请求被多次提交。使用事务:在数据库操作中,可以使用事务来保证操作的原子性,即使操作被执行多次也不会产生额外的影响。总结本篇内容我主要串联了计算机网络体系、每层的作用和常用协议、以及HTTP的相关重要知识点等内容,如果您觉得写得还不错,欢迎关注《QALog校招测试八股—计网篇》系列,后面会持续更新!以上就是本文的全部内容,如有问题可留言讨论或分享给您的朋友一起学习!我们正在组建测试开发方向的求职交流社区,如果您对软件质量管理、团队工作效率提高内容感兴趣,可以持续关注我的账户,会持续发布相关内容!欢迎点赞、评论、收藏,it's important for me.Searching for QALog
点赞 24
评论 3
全部评论
推荐
最新
楼层
滴滴
校招火热招聘中
官网直投
相关推荐
德马西亚
昨天 17:54
西安电子科技大学 计算机类
等实习or去护vv
211本硕,研二了,不知道是去暑假实习还是等今年的国hvv,去年国hvv去打影子红拿的差不多接近4k/天,但是去年国hvv时间八月底了都,这个时间节点都该准备秋招了,暑期实习现在就京东hr面完了,还不一定能拿offer,只有本科一段长亭科技的实习,纠结,感觉实习工资不会太高,去了实习估计今年国hvv应该就给实习公司打白工了,虽然也能打打影子rt拿点rmb
投递京东等公司7个岗位 >
点赞
评论
收藏
转发
牛客952278
今天 09:58
上海交通大学 计算机类
all in华子,拒绝焦虑
华子实习大开,等开奖了,拒绝焦虑,友友们都投华子了没?
点赞
评论
收藏
转发
小华BUAA
03-23 12:23
北京航空航天大学 管理科学与工程类
0 offer
还有什么可以投的吗推荐一下吧
点赞
评论
收藏
转发
梦屿千寻a
05-13 21:35
华南理工大学 机械类
阿里控股一面
阿里控股很好,牛客也很客观
阿里巴巴一面195人在聊
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
全站热榜
1
...
5.16校招&实习招聘信息汇总
8585
2
...
阿里oc
5794
3
...
送花给牛友,不做“白嫖党”!牛客互动新功能上线啦!
5648
4
...
给25届同学: 永远相信美好的事情即将发生
5502
5
...
CS硕 只看40w+且965 能投啥
5405
6
...
腾讯一面凉经 5.16
5086
7
...
为什么选择做测试开发
3603
8
...
二本漫漫求职路......
3577
9
...
有没有一种可能,仅仅是一种可能
3379
10
...
虎哥の致谢
3257
正在热议
#
牛客帮帮团来啦!有问必答
#
752491次浏览
11977人参与
#
海康威视求职进展汇总
#
94866次浏览
1144人参与
#
你的工作大概什么时候入职?
#
2891次浏览
40人参与
#
非技术2024笔面经
#
180999次浏览
3041人参与
#
非技术岗是怎么找实习的
#
75891次浏览
1416人参与
#
产品实习,你更倾向大公司or小公司
#
37524次浏览
579人参与
#
面试等了一周没回复,还有戏吗
#
41255次浏览
502人参与
#
春招已经启动啦 硬件uu开始投了吗?
#
86350次浏览
676人参与
#
今年形式下双非本找得到工作吗
#
7575次浏览
161人参与
#
如何看待offer收割机的行为
#
226095次浏览
3269人参与
#
百度工作体验
#
23922次浏览
246人参与
#
2022届毕业生现状
#
321069次浏览
4446人参与
#
学历对求职的影响
#
134543次浏览
1533人参与
#
0offer是寒冬太冷还是我太菜
#
417945次浏览
4841人参与
#
铜五铁六真的存在吗?
#
29135次浏览
302人参与
#
想实习转正,又想准备秋招,我该怎么办
#
112010次浏览
1258人参与
#
通信硬件人笔面经互助
#
115669次浏览
2297人参与
#
荣耀求职进展汇总
#
66690次浏览
672人参与
#
正在春招的你,也参与了去年秋招吗?
#
134439次浏览
1696人参与
#
你的秋招进行到哪一步了
#
359548次浏览
6318人参与
牛客网
牛客企业服务