测试工程师八股文04|计算机网络 和 其他

一、计算机网络 

1、http和https的区别

HTTP和HTTPS是用于在互联网上传输数据的协议。它们都是应用层协议,建立在TCP/IP协议栈之上,用于客户端(如浏览器)和服务器之间的通信。 

①http和https的主要区别在于安全性。http是一种明文传输协议,数据在传输过程中没有加密,容易被窃听和篡改,因此不适合传输敏感信息。而 https是在http的基础上加入了 ssl/tls 加密层,通过加密传输和身份认证,确保信息的安全性和完整性。

②https 常用于需要保护隐私的场景,如网上支付和登录等,而http则适用于不涉及敏感信息的普通网站,例如展示网站。

③另外由于二者使用的是完全不同的连接方式,所以端口号也不一样,http是80端口,https用的是443端口。

2、ssl怎么连接

SSL/TLS 连接的过程大致分为几个步骤。

①首先,客户端向服务器发起连接请求,并告诉服务器它支持的加密方式。

②接着,服务器选择一个双方都支持的加密协议,并发送自己的数字证书给客户端,客户端验证证书的有效性。

③然后,客户端生成一个预主密钥,并用服务器的公钥加密后发送给服务器,双方用这个密钥生成对称密钥开始加密通信

④最后,所有数据传输都通过这个加密通道进行,确保数据的安全性和隐私性。通信结束时,双方会通过发送关闭通知来安全关闭连接。

3、TCP和UDP的区别

TCP 和 UDP 是两种不同的传输层的协议。TCP 是面向连接的,提供可靠的数据传输,保证数据按顺序到达,并有重传机制来确保数据不丢失,因此适用于要求高可靠性的应用,如文件传输和网页浏览。相比之下,UDP 是无连接的,不保证数据的顺序和可靠性,但它速度更快,适用于实时性要求高的场景,如视频通话和在线游戏,因为这些应用可以容忍一些数据丢失或乱序。

复杂版本:

TCP⾯向连接,通过三次握⼿建⽴连接,四次挥⼿接除连接;UDP是⽆连接的,即发送数据之前 不需要建⽴连接,这种⽅式为UDP带来了⾼效的传输效率,但也导致⽆法确保数据的发送成功。

TCP是可靠的通信⽅式。通过TCP连接传送的数据,TCP通过超时重传、 数据校验等⽅式来确保 数据⽆差错,不丢失,不重复,且按序到达;⽽UDP由于⽆需连接的原因,将会以最⼤速度进⾏传 输,但不保证可靠交付,也就是会出现丢失、重复等等问题。 

③TCP⾯向字节流,实际上是TCP把数据看成⼀连串⽆结构的字节流,由于连接的问题,当⽹络出 现波动时,连接可能出现响应问题;UDP是⾯向报⽂的,UDP没有拥塞控制,因此⽹络出现拥塞不 会使源主机的发送速率降低。

④每⼀条TCP连接只能是点到点的;⽽UDP不建⽴连接,所以可以⽀持⼀对⼀,⼀对多,多对⼀和 多对多的交互通信,也就是可以同时接受多个⼈的包。

⑤TCP需要建⽴连接,⾸部开销20字节相⽐8个字节的UDP显得⽐较⼤。

⑥TCP的逻辑通信信道是全双⼯的可靠信道,UDP则是不可靠信道。

4、TCP的三次握手和四次挥手

假设客户端想要停止通信

三次握手用于建立TCP连接,确保双方都准备好进行数据传输。过程是:客户端发起连接请求,服务器响应确认,最后客户端确认服务器的响应,连接就建立起来了。

四次挥手用于安全地终止TCP连接,确保双方的数据传输完成后再断开。客户端发送结束请求,服务器确认后也发送结束请求,最后客户端确认服务器的关闭请求,连接就安全地关闭了。

三次握手保证了连接的可靠性,而四次挥手则确保数据传输完成后连接能干净利落地关闭。

5、OSI七层模型

  • OSI模型是⼀个抽象的框架,⽤于理解和设计⽹络系统。它将⽹络通信过程分为七个独⽴的层,每层都有特定的功能。

 ①物理层 (Physical Layer):

  • 负责传输⽐特流的物理连接和电信号。
  • 示例:⽹线、光纤、电缆等。

②数据链路层 (Data Link Layer):

  • 负责在物理链路上的可靠的数据帧传输。将物理层的比特流转换为数据帧,
  • 示例:MAC地址、以太⽹、交换机等。

③⽹络层 (Network Layer):

  • 负责不同⽹络之间数据报,实现⽹络互联。
  • 示例:IP地址、路由器等。

④传输层 (Transport Layer):

  • 负责端到端的通信,如流量控制和差错控制。
  • 示例:TCP、UDP等。

⑤会话层 (Session Layer):

  • 负责建⽴、管理和终⽌应⽤程序之间的会话。
  • 示例:会话管理协议等。

⑥表示层 (Presentation Layer):

  • 负责数据格式的转换、加密和解密。
  • 示例:SSL/TLS(用于加密通信)、JPEG、GIF、MPEG(数据格式化和压缩)。

⑦ 应⽤层 (Application Layer):

  • 负责直接为⽤户提供服务和应⽤接⼝。
  • 示例:HTTP、FTP、SMTP等。

6、常见的http状态码

① 2xx 表示请求成功并得到了预期的响应。

② 3xx 表示需要客户端进行重定向

  • 301 Moved Permanently:永久重定向,请求的资源已被永久移动到新url,客户端应使用新url进行后续请求。
  • 302 Found:临时重定向,请求的资源临时移动到新 URL,客户端可以继续使用原 URL 进行后续请求,且不需要更新缓存。

③ 4xx 表示客户端错误,通常是请求格式或内容的问题。

  • 400 Bad Request:客户端发出的请求有误,服务器无法理解。
  • 404 Not Found:请求的资源不存在。

④ 5xx 表示服务器错误,服务器无法处理请求。

  • 500 Internal Server Error:服务器发生未知错误,无法完成请求。
  • 502 Bad Gateway:作为代理服务器的中介接收到上游服务器的无效响应。

 补充:查看状态码的方法

  • 浏览器开发者工具:适用于前端开发和网页调试。
  • 命令行工具(curl/wget):适合快速查看 HTTP 状态码,特别是当你不想加载整个页面时。
  • Postman:适合进行 API 测试,特别是对于 HTTP 请求和响应的详细分析。
  • 后端日志:适合后端开发和服务器管理,查看日志中的状态码。
  • Fiddler:适合捕获和调试 HTTP 流量,查看请求和响应的状态码。

7、get和post的区别 

ger通常用于从服务器获取数据;post 通常⽤于向服务器提交数据,如提交表单或上传⽂件。

①get请求的参数是放在url里的,post请求的参数放在请求体里。

②get请求可以被浏览器缓存,post不能被缓存。

③因为get请求的参数是放在url里的,而url的长度是受限的,最大是2048个字符,post请求参数的长度是没有限制的。

④同样因为get请求参数是刚在url里的,所以安全性比较差,post请求的参数放在请求体里,所以安全性较好。

⑤get请求可以通过浏览器直接访问,支持刷新和后退,post请求不能被浏览器直接访问,刷新后数据需要重新传送。

 8、当在网页属于一个url后,会发生什么

当你输入一个url 后,浏览器会通过以下流程加载网页:

①DNS 解析:浏览器会首先检查是否已有该url对应的 IP 地址缓存。如果有,浏览器会直接使用该地址进行后续的 TCP 连接,。

②TCP 连接:建立与服务器的连接。涉及三次握手四次挥手。

③TLS 握手(如果是 HTTPS):建立加密通信通道。

④HTTP 请求:浏览器向服务器发送请求,获取资源。

⑤服务器响应:服务器处理请求并返回内容。

⑥前端渲染:浏览器解析并渲染页面,加载外部资源。

⑦缓存和 Cookie 处理:浏览器使用缓存加速加载,携带 Cookie 进行会话管理。

二、其他

1、深拷贝和浅拷贝

①浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存(分支)。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址 ,因此,对新对象所做的修改可能会影响到原始对象,因为它们共享相同的引用。

②深拷贝创建一个新的对象,并且递归地复制整个原始对象,新对象跟原对象不共享内存,修改新对象不会改到原对象,是“值”而不是“引用”(不是分支),这意味着对新对象所做的修改不会影响到原始对象,因为它们拥有彼此独立的副本。

③简而言之,浅拷贝是“引用复制”,深拷贝是“完全复制”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/936588.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

doxygen–自动生成文档工具

原文地址:doxygen–自动生成文档工具 – 无敌牛 欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等 简介 doxygen是软件开发中广泛使用的文档生成工具。它可以从源代码注释中自动生成文档,解析类、函数、参数相关信息,并生…

ElasticSearch04-高级操作

零、文章目录 ElasticSearch04-高级操作 1、文档添加 (1)生成文档ID 不指定 ID,即自动生成ID,ID 是一行数据的唯一键。语法:POST /index/_doc # 创建索引 PUT testid# 默认情况下自动生成ID POST /testid/_doc {&…

【GitHub分享】you-get项目

【GitHub分享】you-get 一、介绍二、安装教程三、使用教程四、配置ffmpeg五,卸载 如果大家想要更具体地操作可去开源网站查看手册,这里只是一些简单介绍,但是也够用一般,有什么问题,也可以留言。 一、介绍 you-get是一…

Polars数据聚合与旋转实战教程

在这篇博文中,我们的目标是解决数据爱好者提出的一个常见问题:如何有效地从Polars DataFrame中创建汇总视图,以便在不同时间段或类别之间轻松进行比较。我们将使用一个实际的数据集示例来探索实现这一目标的各种方法。 Polars简介 Polars 是…

ECharts柱状图-柱图2,附视频讲解与代码下载

引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个柱状图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供…

Oracle进行exp导出密码中有特殊字符报EXP-00056和ORA-12154错处理

今天,业务人员反馈,在本地进行exp导出时报错,报错内容如下: 在Oracle密码中有特殊字符时,需要加引号,但引号怎么加呢?总结如下: 1、在windows系统中 exp 用户名/“““密码”””n…

解决没法docker pull问题

没想到国内源死差不多了,以下内容需要提前科学上网 su cd /etc/systemd/system/docker.service.d vim proxy.conf 参照下图修改,代理服务器改成你自己的。 ​​[Service] Environment"HTTP_PROXYsocks5://192.168.176.180:10810" Environment&…

LeNet-5:深度学习与卷积神经网络的里程碑

目录 ​编辑 引言 LeNet-5的结构与原理 输入层 C1层:卷积层 S2层:池化层 C3层:卷积层 S4层:池化层 C5层:卷积层 F6层:全连接层 输出层 LeNet-5的算法基础 LeNet-5的优点 LeNet-5的现代应用 …

JavaFX使用jfoenix的UI控件

jfoenix还是一个不错的样式,推荐使用,而且也可以支持scene builder中的拖拖拽拽 需要注意的是过高的javafx版本可能会使得某些样式或控件无法使用 比如alert控件,亲测javaFX 19版本可以正常使用 1.在pom.xml中引入依赖 GitHub地址https://gi…

VMware Workstation Pro 17 下载 以及 安装 Ubuntu 20.04.6 Ubuntu 启用 root 登录

1、个人免费版本 VMware Workstation Pro 17 下载链接怎么找?直接咕咕 VMware 找到如下链接。链接如下:Workstation 和 Fusion 对个人使用完全免费,企业许可转向订阅 - VMware 中文博客 点进去链接之后你会看到如下,注意安装之后仍…

6.2 Postman接口收发包

欢迎大家订阅【软件测试】 专栏,开启你的软件测试学习之旅! 文章目录 前言1 接口收发包的类比1.1 获取对方地址(填写接口URL)1.2 选择快递公司(设置HTTP方法)1.3 填写快递单(设置请求头域&#…

STM32标准库学习之寄存器方法点亮LED灯

STM32C8T6最小系统开发板,点亮PC13引脚的LED灯 1.使能PC13引脚的定时器 PC13引脚为GPIOC组的第13个端口,GPIO的时钟使能定时器为RCC_APB2ENR,这是可以从手册中得出的,如下图所示 从下图可以得出,若要使能GPIOC端口&a…

【Azure 架构师学习笔记】- Azure Function (1) --环境搭建和背景介绍

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Function 】系列。 前言 随着无服务计算的兴起和大数据环境中的数据集成需求, 需要使用某些轻量级的服务,来实现一些简单操作。因此Azure Function就成了微软云上的一个必不可少的组成部分。 …

深度学习:基于MindSpore的极简风大模型微调

什么是PEFT?What is PEFT? PEFT(Parameter Efficient Fine-Tuning)是一系列让大规模预训练模型高效适应于新任务或新数据集的技术。 PEFT在保持大部分模型权重冻结,只修改或添加一小部份参数。这种方法极大得减少了计算量和存储开销&#x…

【蓝桥杯每日一题】推导部分和——带权并查集

推导部分和 2024-12-11 蓝桥杯每日一题 推导部分和 带权并查集 题目大意 对于一个长度为 ( N ) 的整数数列 ( A 1 , A 2 , ⋯ , A N A_1, A_2, \cdots, A_N A1​,A2​,⋯,AN​ ),小蓝想知道下标 ( l ) 到 ( r ) 的部分和 ∑ i l r A i A l A l 1 ⋯ A r \su…

bug:uniapp运行到微信开发者工具 白屏 页面空白

1、没有报错信息 2、预览和真机调试都能正常显示,说明代码没错 3、微信开发者工具版本已经是win7能装的最高版本了,1.05版 链接 不打算回滚旧版本 4、解决:最后改调试基础库为2.25.4解决了,使用更高版本的都会报错,所…

嵌入式入门Day30

IO Day5 线程相关函数pthread_createpthread_selfpthread_exitpthread_join\pthread_detachpthread_cancelpthread_setcancelstatepthread_setcanceltype 作业 线程 线程是轻量化的进程,一个进程内可以有多个线程,至少包含一个线程(主线程&a…

Maven学习(Maven项目模块化。模块间“继承“机制。父(工程),子项目(模块)间聚合)

目录 一、Maven项目模块化? (1)基本介绍。 (2)汽车模块化生产再聚合组装。 (3)Maven项目模块化图解。 1、maven_parent。 2、maven_pojo。 3、maven_dao。 4、maven_service。 5、maven_web。 6…

ERC论文阅读(03)--instructERC论文阅读笔记(2024-12-14)

instructERC论文阅读笔记 2024-12-14 论文题目:InstructERC: Reforming Emotion Recognition in Conversation with Multi-task Retrieval-Augmented Large Language Models 说明:以下内容纯属本人看论文及复现代码的记录,如想了解论文细节&…

《Java核心技术I》Swing用户界面组件

Swing和模型-视图-控制器设计模式 用户界面组件各个组成部分,如按钮,复选框,文本框或复杂的树控件,每个组件都有三个特征: 内容,如按钮的状态,文本域中的文本。外观,颜色&#xff0c…