计算机基础知识

参考链接:https://blog.csdn.net/ChineseSoftware/article/details/123176978
https://www.cnblogs.com/8023-CHD/p/11067141.html
https://blog.csdn.net/qq_42033567/article/details/108088514

http与https的区别

  • HTTP 的URL以http:// 开头,而HTTPS 的URL 以https:// 开头
  • HTTP的默认端口是80,而HTTPS的默认端口是443
  • 在OSI网络模型中,HTTP工作于应用层,而HTTPS的安全传输机制工作在传输层
  • HTTP是明文传输,HTTPS 在 HTTP 的基础上加入了 SSL 协议,SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
  • HTTP的连接很简单,是无状态的。HTTPS是由SSL+HTTP构建的可进行加密传输、身份认证的网络协议,比HTTP安全。

Linux常用命令


cd 命令切换目录
ls 命令查看当前目录下的文件
	-l:列出长数据串,包含文件的属性与权限数据等 
	-a:列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
pwd 当前目录的绝对路径 
touch 创建文件
mkdir 创建文件夹
mv 移动文件、目录
rm 用于删除文件或目录
vim 用于文件编辑
cat 用于查看文本文件内容
tar 对文件进行压缩与解压缩 压缩:tar -zcf 解压缩:tar -zxf
kill 终止进程
chmod 改变文件权限 r:读权限 w:写权限 x:可执行权限 u:用户 g:同组用户 o:其他用户 a:所有用户
chmod xxx 文件名称
每一位分别表示不同类的权限,每一位的范围为0-7,表示读写执行的权限。

tcp和udp的区别

  • 连接方面,TCP是面向连接的,UDP是无连接的。
  • TCP是面向字节流的,发送数据时会将数据分解为多个小的数据报文进行发送;UDP是基于数据报的,发送数据时会直接打上UDP头将整个报文发送出去。
  • TCP只支持一对一通讯;而UDP支持一对一、一对多、多对一、多对多通讯。
  • TCP要求实时性低、准确度高;UDP要求实时性高、准确度低。
  • TCP头部20-60字节,UDP头部8个字节。
  • TCP提供可靠的传输服务,通过TCP连接传输的数据,无差错、不重复、按序到达;UDP尽最大努力进行交付,不保证可靠交付。
    基于TCP的应用层协议有:SMTP(简单邮件传输协议)、TELNET(远程登录服务协议)、HTTP(超文本传输协议)、FTP(文件传输协议)。
    基于UDP的应用层协议:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(简单文件传输协议)。

cookie和session区别

  • cookie通过在客户端记录信息确定用户身份,session通过在服务器端记录信息确定用户身份。
  • cookie不是很安全,考虑安全应当使用session。
  • 因为session会在一定时间保存在服务器上,当访问增多,会比较占用服务器性能,考虑到减轻服务器性能方面,应当使用cookie。
  • 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
  • 可以考虑将登陆信息等重要信息存放为 session,其他信息如果需要保留,可以放在 cookie 中。

进程和线程的区别

1.根本区别:进程是操作系统进行资源分配的最小单位,线程是操作系统进行任务调度的最小单位。
2.从属关系不同:进程中包含了线程,线程属于进程。
3.开销不同:进程的创建、销毁和切换的开销都远大于线程。
4.拥有资源不同:每个进程都有自己的内存空间,一个进程中的线程会共享这些内存空间。
5.CPU利用率不同:进程的CPU利用率较低,因为上下文切换开销较大,而线程的CPU利用率高,上下文的切换速度快。
6.操纵者不同:进程的操纵者一般是操作系统,线程的操纵者一般是编程人员。

线程有哪几种状态

线程通常都有5种状态,创建、就绪、运行、阻塞和死亡。
创建: 在生成线程对象,并没有调用该对象的start方法,这时线程处于创建状态。
就绪: 当调用了线程对象的start方法后,该线程就进入了就绪状态,当调用了线程对象的start方法后,该线程就进入了就绪状态。此时线程调度程序还没有把该线程设置为当前线程。当线程从等待或者睡眠中回来后也会处于就绪状态。
运行: 线程调度程序将处于就绪状态的线程设置为当前线程,此时线程就进入了运行状态,开始执行run函数中的代码。
阻塞: 线程正在运行时,因为等待某个资源被暂停进入阻塞状态。sleep、suspend等方法都能导致线程阻塞。
死亡: 如果一个线程的run方法执行结束,该线程就会死亡。

http的三次握手和四次挥手

三次握手

在这里插入图片描述

  • 第一次握手:客户端发送一个SYN报文,并指明客户端的初始化序列号,此时客户端处于SYN-SENT状态。
  • 第二次握手:服务器收到客户端的SYN报文后,会以自己的SYN报文作为应答,也指定自己的初始化序列号,将客户端的seq+1作为ack的值,表示自己收到了客户端的seq,并请求下一个seq,此时服务器处于SYN-RCVD状态。
  • 第三次握手:客户端收到SYN报文后,会发送一个ACK报文,将ack设为服务器的seq+1,表示已经收到服务器的SYN报文,并发送下一个seq,此时客户端初一ESTABLISHED状态,服务器收到ACK报文后,也处于ESTABLISHED状态,此时,双方已建立起了连接。
    为什么要三次握手?
    通过三次握手可以保证双方的发送和接收能力正常,确保与列好同步,以及防止旧的失效连接请求产生误解,从而建立可靠的链接。
  • 确认双方的发送和接收能力:第一次握手客户端发送SYN报文段到服务器,服务器接收到SYN报文段后,确认客户端的发送能力和自己的接收能力正常。
  • 确保客户端和服务器的序列号同步:在第二次握手时,服务器发送了带有SYN/ACK标志的报文段,其中ACK确认号字段的值为客户端的初始序列号加1,同时,服务器也选择了自己的初始序列号。这样,客户端和服务器都知道对方的初始序列号,并可以同步它们的序列号。
  • 防止已失效的连接请求报文段产生连接:考虑这样一种情况,客户端发送了一个连接请求报文段,但因网络延迟等原因导致该报文段长时间滞留,过了一段时间后,客户端重新发送了一个新的连接请求报文段并成功建立连接。此时,滞留的旧报文段可能会到达服务器,如果只进行两次握手,服务器会认为这是一个新的连接请求并建立连接,而实际上客户端可能已经关闭了该连接。通过三次握手,可以让服务器确认客户端对连接的真实意图。
http的四次握手

在这里插入图片描述

  • 第一次挥手:客户端会发送一个FIN报文,报文会指定一个序列号,此时客户端处于FIN-WAIT1状态。
  • 第二次挥手:服务端收到FIN报文后,会发送ACK报文,并且把ack等于客户端序列值+1表示已经收到客户端的FIN报文了,此时服务端处于CLOSE-WAIT状态。客户端收到服务端的ACK报文后,进入FIN-WAIT2。
  • 第三次挥手:服务端传输完剩余数据后,服务端想断开连接,会发送FIN报文,且指定一个序列号,此时服务端处于LAST-ACK状态。
  • 第四次挥手:客户端收到FIN后,发送ACK报文进行应答,seq=服务器的ack,ack=服务器的seq+1,此时客户端处于TIME-WAIT状态,需要过一阵子以确保服务器收到自己的ACK报文进入CLOSE状态,服务器收到ACK报文后,也进入CLOSE状态。

为什么要四次挥手?

  • 为了保证在最后断开的时候,客户端能够发送最后一个ACK报文段能够被服务器接收到。如果客户端在收到服务器给它的断开连接的请求之后,回应完服务器就直接断开连接的话,若服务器没有收到回应就无法进入CLOSE状态,所以客户端要等待两个最长报文段寿命的时间,以便于服务器没有收到请求之后重新发送请求。
  • 防止“已失效的连接请求报文”出现在连接中,在释放连接的过程中会有一些无效的滞留报文,这些报文在经过2MSL的时间内就可以发送到目的地,不会滞留在网络中。这样就可以避免在下一个连接中出现上一个连接的滞留报文了。

为什么需要接收方最后等待2MSL
1MSL表示一个1个最长报文段的寿命。
接收方等待最后一次ack+重发的第三次释放连接请求到达发送方的时间<=2MSL,因此需要等待2MSL。
本质原因是网络是不可靠的,所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。如果发送方的最后一次ack没有被接收方收到的话,那么接收方会进行重传第三次的释放连接请求,TIME_WAIT就是为了在这种情况下重发丢失了的ack报文。

TCP为什么是可靠的
可靠传输就是通过TCP连接传送的数据是没有差错、不会丢失、不重复并且按序到达的。TCP通过序列号、检验和、确认应答信号、重发机制、连接管理、窗口控制、流量控制、拥塞控制一起保证TCP传输的可靠性。

  • 确认应答 (1)发送端每次发送数据时,TCP就给每个数据包分配一个序列号并且在一个特定的时间内等待接收端对分配的这个序列号进行确认,如果发送端在一个特定时间内没有收到接收端的确认,则发送端会重传此数据包。(2)接收端利用序列号对接收的数据进行确认,以便检测对方发送的数据是否有丢失或者乱序等,接收端一旦收到已经顺序化的数据,它就将这些数据按正确的顺序重组成数据流并传递到高层进行处理。
  • 超时重传 TCP协议要求在发送端每发送一个报文段,就启动一个定时器并等待确认信息;接收端成功接收新数据后返回确认信息。若在定时器超时前数据未能被确认,TCP就认为报文段中的数据已丢失或损坏,需要对报文段中的数据重新组织和重传。发送方没有接收到响应的ACK报文原因可能有两点:(1)数据在传输过程中由于网络原因等直接全体丢包,接收方根本没有接收到。(2)接收方接收到了响应的数据,但是发送的ACK报文响应却由于网络原因丢包了。
  • 拥塞控制 慢启动、拥塞避免、快重传、快恢复
  • 流量控制 如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。
    在这里插入图片描述

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

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

相关文章

【Matlab】语音信号分析与处理实验报告

一、目的 使用Matlab分析与设计实验&#xff0c;理解与掌握以下知识点&#xff1a; 1、信号的采样、频谱混叠 2、信号的频谱分析 3、信号的幅度调制与解调方法 4、理想滤波器的时域和频域特性 5、数字滤波器的设计与实现 二、内容 1、录制一段个人的语音信号 2、采用合适的频…

Unity光照贴图的切换,实现黑夜和白天效果

有这么一个需求&#xff0c;不能使用实时光来进行动态控制光照开关&#xff0c;但是又要实现白天和黑夜的效果&#xff0c;我的场景中有大概十几个点光源和平行光 实现步骤&#xff1a; 一、模型原模原样复制到另一个场景中&#xff08;因为贴图只能存在于当前的场景文件夹&am…

支付宝沙箱支付详细教程(IDEA版)—2023最新版

&#x1f607;作者介绍&#xff1a;一个有梦想、有理想、有目标的&#xff0c;且渴望能够学有所成的追梦人。 &#x1f386;学习格言&#xff1a;不读书的人,思想就会停止。——狄德罗 ⛪️个人主页&#xff1a;进入博主主页 &#x1f5fc;专栏系列&#xff1a;无 &#x1f33c…

Redis数据库操作

Redis 命令参考 — Redis 命令参考http://doc.redisfans.com/ 1、Redis&#xff0c;远程词典服务器&#xff0c;是一个基于内存的键值型NoSQL数据库 特征&#xff1a; 键值型&#xff0c;支持多种不同数据结构&#xff0c;功能丰富 单线程&#xff0c;每个命令具备原子性 …

Docker的安装部署以及配置的操作流程(图文)

Docker的安装以及配置流程&#xff08;图文&#xff09; Docker一、配置域名解析二、CentOS Docker 安装1. 查询已安装的docker2. 安装必要的一些系统工具3. 添加软件源&#xff08;阿里云&#xff09;信息4. 更新并安装Docker-CE5. 查看docker 的版本6. 关闭运行的防火墙7. 开…

h5手写签名示例

前言 业务中需要用户进行签字&#xff0c;如何让用户在手机端进行签字&#xff1f; 示例如下 代码已分享至Gitee: https://gitee.com/lengcz/qianming 原示例&#xff1a; https://www.jq22.com/jquery-info13488 H5实现手写签字 创建一个html页面 <!DOCTYPE html> …

Wireshark抓包分析(ARP TCP DNS HTTP)

目录 一、ARP 二、DNS 三、TCP TCP的总过程&#xff1a; ​TCP三次握手&#xff1a; TCP四次挥手&#xff1a; 四、HTTP 一、ARP 1.ARP&#xff08;Address Resolution Protocol&#xff09;&#xff0c;是根据IP地址获取物理地址的一个TCP/IP协议。 我们要抓ARP 同网段内…

每日学术速递6.7

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.The ObjectFolder Benchmark: Multisensory Learning with Neural and Real Objects(CVPR 2023) 标题&#xff1a;ObjectFolder 基准测试&#xff1a;使用神经和真实对象进行多感官…

Windows VMware安装RockyLinux9

前言&#xff0c;今天用虚拟机安装rockyLinux时碰到了一些坑&#xff0c;要么时无法联网&#xff0c;要么是无法使用ssh链 接&#xff0c;在这里记录下 准备工作 1. VMware Workstation 17 Pro 2. RockyLinux9.2阿里镜像站&#xff0c;这里无选择了最小版本Rocky-9-latest-x86…

小程序自动化测试的示例代码

背景 近期团队打算做一个小程序自动化测试的工具&#xff0c;期望能够做的业务人员操作一遍小程序后&#xff0c;自动还原之前的操作路径&#xff0c;并且捕获操作过程中发生的异常&#xff0c;以此来判断这次发布时候会影响小程序的基础功能。 上述描述看似简单&#xff0c;但…

【算法证明 七】深入理解深度优先搜索

深度优先搜索包含一个递归&#xff0c;对其进行分析要复杂一些。与上一篇文章一样&#xff0c;还是给节点定义几个状态&#xff0c;然后详细分析深度优先搜索算法有哪些性质。 算法描述 定义状态 v . c o l o r &#xff1a;初始状态为白色&#xff0c;被发现时改为灰色&…

【cfeng work】什么是云原生 Cloud Native

WorkProj 内容管理 云原生云原生应用十二要素应用cfeng的work理解 本文introduce 云原生 Cloud Native相关内容 随着技术的迭代&#xff0c;从最初的物理机—> 虚拟机&#xff0c;从单机 —> 分布式微服务&#xff0c; 现在的热门概念就是云☁&#xff08;cloud&#xff…

python 使用 openpyxl 处理 Excel 教程

目录 前言一、安装openpyxl库二、新建excel及写入单元格1.创建一个xlsx格式的excel文件并保存2.保存成流(stream)3.写入单元格 三、创建sheet工作表及操作四、读取excel和单元格1.读取 excel 文件2.读取单元格3.获取某一行某一列的数据4.遍历所有单元格5.遍历指定行列范围的单元…

数据结构之堆——算法与数据结构入门笔记(六)

本文是算法与数据结构的学习笔记第六篇&#xff0c;将持续更新&#xff0c;欢迎小伙伴们阅读学习。有不懂的或错误的地方&#xff0c;欢迎交流 引言 当涉及到高效的数据存储和检索时&#xff0c;堆&#xff08;Heap&#xff09;是一种常用的数据结构。上一篇文章中介绍了树和完…

iOS自动化环境搭建(超详细)

1.macOS相关库安装 libimobiledevice > brew install libimobiledevice 使用本机与苹果iOS设备的服务进行通信的库。 ideviceinstaller brew install ideviceinstaller 获取设备udid、安装app、卸载app、获取bundleid carthage > brew install carthage 第三方库…

机器视觉初步5:图像预处理相关技术与原理简介

在机器视觉领域中&#xff0c;图像预处理是一项非常重要的技术。它是指在对图像进行进一步处理之前&#xff0c;对原始图像进行一系列的操作&#xff0c;以提高图像质量、减少噪声、增强图像特征等目的。本文将介绍一些常用的图像预处理技术&#xff0c;并通过配图说明&#xf…

Android CMake

首先了解几个名词 NDK The Android Native Development Kit The Android NDK is a toolset that lets you implement parts of your app in native code, using languages such as C and C. For certain types of apps, this can help you reuse code libraries written in t…

Centos7安装Python3.10

Centos7用yum安装的Python3版本比较旧&#xff0c;想要安装最新版本的Python3需要自己动手编译安装。下面就来讲讲安装步骤&#xff0c;主要分为这么几个步骤&#xff0c;依赖→下载→编译→配置。另外所有操作都是在root用户下进行。 依赖 编译Python源码需要依赖许多库&…

springboot-内置Tomcat

一、springboot的特性之一 基于springboot的特性 自动装配Configuretion 注解 二、springboot内置Tomcat步骤 直接看SpringApplication方法的代码块 总纲&#xff1a; 1、在SpringApplication.run 初始化了一个上下文ConfigurableApplicationContext configurableApplica…

《C++ Primer》--学习4

函数 函数基础 局部静态对象 局部静态对象 在程序的执行路径第一次经过对象定义语句时初始化&#xff0c;并且直到程序终止才被销毁&#xff0c;在此期间即使对象所在函数结束执行也不会对它有影响 指针或引用形参与 const main&#xff1a; 处理命令行选项 列表初始化返回…