Linux —— 管理进程

一、查看进程

  1. 运行态(Running)
    • 定义:处于运行态的进程正在 CPU 上执行指令。在单 CPU 系统中,同一时刻只有一个进程处于运行态;在多 CPU 或多核系统中,可能有多个进程同时处于运行态。
    • 示例
      • 当你在计算机上运行一个计算密集型程序,如科学计算软件在进行复杂的数学运算时,该程序对应的进程在 CPU 上执行运算指令,此时这个进程就处于运行态。
  2. 就绪态(Ready)
    • 定义:就绪态的进程已经准备好运行,即它们已经获得了除 CPU 资源之外的所有运行所需资源,但正在等待 CPU 分配时间片来执行。
    • 示例
      • 在一个多任务操作系统中,有多个应用程序同时打开。当你在前台运行一个程序(如文本编辑器)时,其他后台程序(如音乐播放器)对应的进程如果没有被阻塞,就处于就绪态,等待 CPU 调度。
  3. 阻塞态(Blocked)
    • 定义:阻塞态的进程由于等待某些事件的发生(如等待 I/O 操作完成、等待获取某个锁等)而暂时无法继续执行,此时即使 CPU 空闲也不能被调度运行。
    • 示例
      • 当一个进程发起了从硬盘读取数据的操作(如打开一个大型文件),在数据从硬盘加载到内存的过程中,这个进程就处于阻塞态,因为它必须等待 I/O 操作完成才能继续执行后续的指令。
      • 一个网络应用程序在等待网络数据接收时,例如等待服务器的响应,也会处于阻塞态。

(一)ps 选项 参数

        ps是 “process status”(进程状态)的缩写。它是一个用于查看当前系统中正在运行进程信息的实用程序。通过ps命令,用户可以获取有关进程的各种详细信息,如进程 ID(PID)、父进程 ID(PPID)、CPU 使用率、内存使用率、运行状态、启动时间等。—— 但是是静态的,相当于快照

选项

  • -a:显示所有终端上的所有进程,包括其他用户的进程。
  • -x:显示没有控制终端的进程。
  • -u:以用户友好的格式显示进程信息。
  • -f:全格式显示,包括父进程ID、进程状态、CPU使用率等更多列。
  • -e:显示系统中所有的进程。
  • -f:全格式显示。
  • -l:长格式显示,包括更多的信息如进程命令行、会话ID等。
  • -u:按用户显示,可以指定用户名。
  • -p:按进程ID显示,可以指定PID。
  • -o:自定义输出格式,可以指定要显示的列和排序方式。

PID:进程 ID,是每个进程在系统中的唯一标识符。

USER:进程所属的用户。

PR:进程优先级,数值越小优先级越高。

NI:进程的 Nice 值,用于调整进程优先级,范围是 - 20 到 19,负数表示更高的优先级。

VIRT:进程使用的虚拟内存大小,包括进程代码、数据、共享库以及被交换到磁盘的内存页面等所有占用的内存空间。

RES:进程正在使用的物理内存大小(驻留集大小),不包括交换到磁盘的内存部分。

SHR:进程使用的共享内存大小,这部分内存可以被多个进程共享。

S:进程状态,和ps命令中的状态表示类似,如R(运行)、S(睡眠)、D(不可中断睡眠)等。

%CPU:CPU 使用率,即进程占用 CPU 时间的百分比。

%MEM:内存使用率,即进程占用物理内存的百分比。

TIME +:进程自启动以来使用 CPU 的总时间。

COMMAND:进程对应的命令名称。

(二)top 选项 参数

  top是一个非常重要的性能监测和进程查看工具。它能够实时显示系统中各个进程的资源占用情况以及系统的整体性能状态。top这个名字可以理解为 “top processes”(顶级进程),因为它主要用于展示占用资源最多的进程相关信息。—— 动态显示

选项

  • 基本选项

    • -d <秒数>:指定屏幕信息刷新的时间间隔。默认情况下,top每3秒刷新一次显示的数据。用户可以通过这个选项来调整刷新频率,以适应不同的监控需求。
    • -p <进程ID>:只监视特定PID的进程。这个选项允许用户专注于一个或多个特定的进程,而不是查看所有进程的信息。
    • -u <用户名>:仅显示指定用户的进程。当系统中有大量用户时,使用这个选项可以快速定位属于某个用户的进程。
    • -b:批处理模式输出,适合脚本或重定向到文件。这使得top的输出可以被保存到文件中或者进一步处理,而无需用户交互。
  • 高级选项

    • -n <次数>:指定top命令运行的次数后自动退出。例如,top -n 5将会更新五次后自动退出。
    • -H:在进程信息中显示线程详细信息。这对于需要分析多线程应用程序的性能非常有用。
    • -i:不显示闲置(idle)或无用的进程。这个选项可以帮助用户忽略那些不影响系统性能的进程。
    • -c:显示完整的命令行而不截断。默认情况下,top可能会截断显示过长的命令行,使用这个选项可以避免这种情况。
  • 交互式操作

    • h 或 ?:显示帮助页面。用户可以在运行时通过按键触发这些命令来获取更多的帮助信息。
    • k:终止一个进程(需要输入PID)。这个命令允许用户在不离开top界面的情况下终止不需要的进程。
    • r:更改一个进程的优先级(需要输入PID和新的nice值)。通过这个命令,用户可以动态地调整进程的优先级,以优化系统性能。
    • q:退出top。这是退出top的标准方式。

下面两张图对比,可以发现数据发送了变化

(三)pstree 选项

   pstree是一个用于以树状结构展示进程间关系的工具。它能够清晰地呈现出各个进程之间的父子关系,帮助用户直观地理解系统中进程的层次结构。

选项

  1. -a:显示每个程序的完整指令,包含路径、参数或是常驻服务的标示。
  2. -c:不使用精简标示法,强制展开相同的子树。
  3. -G:使用VT100终端机的列绘图字符。
  4. -h:列出树状图时,特别标明现在执行的程序。
  5. -H<程序识别码>:此参数的效果和指定"-h"参数类似,但特别标明指定的程序。
  6. -l:采用长列格式显示树状图。
  7. -n:用程序识别码排序。预设是以程序名称来排序。
  8. -p:显示程序识别码。
  9. -u:显示用户名称。
  10. -U:使用UTF-8列绘图字符。
  11. -V:显示版本信息。

(四)pgrep 选项 参数

   pgrep是一个用于根据进程名称或其他属性来查找进程 ID(PID)的工具。它可以帮助用户快速定位符合特定条件的进程,在进程管理和监控等场景中非常有用。

选项

  1. -a:列出PID和完整的命令行。
  2. -c:计算匹配的进程数量,而不是正常输出。
  3. -d:指定输出分隔符。
  4. -f:使用完整进程名来匹配。
  5. -g:匹配列出的进程组ID。
  6. -G:匹配真实组ID。
  7. -h:列出树状图时,特别标明现在执行的程序。
  8. -l:显示PID和进程名称。
  9. -n:仅显示找到的最大(结束)进程号。
  10. -o:仅显示找到的最小(起始)进程号。
  11. -P:只匹配给定父进程的子进程。
  12. -s:匹配会话ID。
  13. -t:匹配控制终端。
  14. -u:匹配有效用户ID。
  15. -U:匹配真实用户ID。
  16. -v:反向匹配。
  17. -w:列出所有线程ID。
  18. -x:与命令名完全匹配。
  19. -F:从文件中读取PID。
  20. -L:如果PID文件未锁定则失败。
  21. --ns:匹配属于同一命名空间的进程。
  22. --nslist:列出哪些命名空间将被视为--ns选项。
  23. -V:输出版本信息。
  24. -help:显示帮助信息并退出。

案例:查找与sshd服务相关的进程

显示有五个PID

PID 是 “Process Identification Number”(进程标识号)的缩写。在 Linux 和其他操作系统中,它是一个独一无二的数字标识符,用于区分系统中正在运行的各个进程。就像每个人都有一个独一无二的身份证号码一样,每个进程也有一个唯一的 PID 来标识自己。

二、终止进程

(一)kill 选项 参数

        kill的选项选项一般是信号,参数为PID

1、查看信号

常见信号类型及含义

  • SIGTERM(15)
    • 这是kill命令默认发送的信号。它是一种比较温和的终止信号,用于请求进程正常终止。大多数进程在收到SIGTERM信号后,会先进行一些清理工作,如释放资源、保存数据等,然后再终止。例如,当你使用kill <PID>(没有指定信号编号)命令时,实际上就是向进程发送SIGTERM信号,希望进程能够优雅地结束。
  • SIGKILL(9)
    • 这是一个强制终止信号。与SIGTERM不同,进程收到SIGKILL信号后会立即终止,不会进行任何清理工作。它通常用于当进程无法响应SIGTERM信号,或者需要立即终止一个可能处于死锁或失控状态的进程。不过,由于这种方式是强制终止,可能会导致数据丢失或系统资源未正确释放等问题。例如,kill -9 <PID>命令会发送SIGKILL信号来强行终止指定的进程。
  • SIGSTOP(19)和SIGCONT(18)
    • SIGSTOP信号用于暂停一个进程的执行,进程在收到这个信号后会停止运行,并且不会自动恢复,直到收到SIGCONT信号。这两个信号通常用于进程调试或者作业控制。例如,在调试一个多进程程序时,可以使用kill -19 <PID>暂停某个进程,然后进行检查,检查完毕后使用kill -18 <PID>恢复进程的执行。
  • SIGINT(2)
    • 这个信号通常在用户通过键盘输入Ctrl + C组合键时发送。它用于中断一个正在运行的前台进程,进程收到SIGINT信号后可以选择终止或者忽略该信号并继续运行。在很多命令行工具中,收到SIGINT信号后会停止当前操作并返回提示符状态。例如,当你在运行一个长时间的脚本,按Ctrl + C就会向脚本进程发送SIGINT信号。

2、终止进程

案例:终止PID为2443的进程

因为我使用远程工具,而2443就是它的进程,终止后远程终止了

重新连接后PID会重新定义

(二)killall 选项 参数

       使用kill我们会发现一个问题,就是kill只能一次终止一个进程,如果一个软件占大进程很多,我们需要多次操作。但killall可以终止全部进程。

killall的选项选项一般也是信号,参数为服务名称

案例:启动Nginx服务,查看,再关闭

要在root用户下操作

1、切换到软件的所在目录

2、启动服务,但是发现80端口被占用了

3、发现被httpd使用了

4、找到nginx.con的文件

4、把80端口修改为8080,保存退出

5、启动、查看服务,可以正常启动了

6、关闭进程,可以看到关闭后查不到如何进程了

三、前台任务与后台任务

前台任务

  • 定义:在 Linux 系统中,前台任务是指在当前终端会话中正在交互执行的任务。当一个程序在前台运行时,它会占据当前终端的输入和输出,直到该任务完成或被暂停、终止。—— 需要和用户交互,优先级高

想象你在舞台上表演节目,这个舞台就是你的终端。当你在舞台上表演(执行任务)时,台下的观众(你自己)都只能看着你表演,不能做别的事情,这就是前台任务。

比如你在终端打开一个文本编辑器来编辑文件,在你关闭这个文本编辑器之前,你不能在这个终端做其他操作了,这个文本编辑器的操作就是前台任务。

后台任务

  • 定义:后台任务是指在系统中运行,但不占据当前终端的输入和输出的任务。后台任务允许用户在启动任务后继续在终端进行其他操作。

还是用舞台来比喻,后台任务就像是在舞台后面有一群人在帮忙准备道具、布置场景。他们在工作的时候,舞台上的表演(你的终端操作)不受影响,你还可以继续在舞台上做其他事情。

例如,你让电脑在后台下载一个很大的文件。你在终端发出下载命令后,不用一直盯着下载进度,你可以在这个终端继续输入其他命令,做其他工作,下载这个操作就是后台任务。

(一)jobs 选项 参数

   jobs命令用于查看当前终端会话中正在运行的后台作业(任务)。当你将一个程序放到后台运行时,jobs命令可以帮助你了解这些后台任务的状态。

选项

  1. -l:列出作业的状态(运行、停止等)以及作业的命令行。这是默认行为,通常不需要显式指定。

  2. -p:只显示作业的进程ID(PID),不包括作业号或命令行。

  3. -r:只显示正在运行的作业。如果作业已停止,则不会显示。

  4. -s:只显示已停止的作业。如果作业正在运行,则不会显示。

案例:没有任何任务

案例:后台执行top命令

(二)bg 参数

bg命令用于将已停止的后台作业恢复到后台继续运行。

将前台任务调到后台

在后台执行top命令

(三)fg命令

将后台任务调到前台任务

进入hello后随便写点内容,然后ctrl+z快捷键停止任务

调到后台

调到前台,直接进行文件

四、服务管理

        服务进程又称守护进程

CentOS 7版本之前使用service、chkconfig命令,但是CentOS 9使用systemctl代替了service、chkconfig。

(一)systemctl 功能命令 服务进程

功能命令

  • 启动服务
    • 命令systemctl start <service - name>
    • 功能:用于启动指定的服务。例如,要启动httpd服务(假设系统中安装了httpd),可以使用systemctl start httpd。这会使httpd服务开始运行,开始监听相应的端口并处理请求(如果是网络服务的话)。
  • 停止服务
    • 命令systemctl stop <service - name>
    • 功能:用于停止正在运行的服务。例如,systemctl stop httpd会停止httpd服务,使其不再处理新的请求,关闭相关的监听端口。
  • 重启服务
    • 命令systemctl restart <service - name>
    • 功能:用于重启指定的服务。这相当于先执行stop命令再执行start命令。例如,systemctl restart httpd会先停止httpd服务,然后再重新启动它,这在对服务的配置文件进行修改后需要重新加载配置时很有用。
  • 查看服务状态
    • 命令systemctl status <service - name>
    • 功能:用于查看指定服务的当前状态。例如,systemctl status httpd会显示httpd服务是否正在运行、最近的启动或停止时间、是否有错误等信息。输出内容包括服务的活跃状态(activeinactive)、进程 ID(如果正在运行)、日志信息等。
  • 使服务开机自启
    • 命令systemctl enable <service - name>
    • 功能:用于设置指定的服务在系统开机时自动启动。例如,systemctl enable httpd会将httpd服务配置为开机自启,这样在系统下次重新启动时,httpd会自动开始运行。
  • 取消服务开机自启
    • 命令systemctl disable <service - name>
    • 功能:用于取消指定服务的开机自启设置。例如,systemctl disable httpd会将httpd服务从开机自启列表中移除,系统下次重启时不会自动启动httpd
  • 查看所有服务列表
    • 命令systemctl list - units --type=service
    • 功能:用于列出系统中所有的服务。这个命令会显示服务的名称、状态(loadedactive等)、描述等信息,帮助用户全面了解系统中安装和运行的服务情况。
  • 重新加载服务配置
    • 命令systemctl reload <service - name>
    • 功能:用于重新加载指定服务的配置文件。这与restart不同,reload通常不会中断服务的运行,只是重新读取配置文件使其生效。例如,对于一些配置文件修改频繁的服务(如nginx等),使用systemctl reload nginx可以在不中断服务的情况下使新配置生效。
  • 查看服务是否开机自启
    • 命令systemctl is - enabled <service - name>
    • 功能:用于检查指定服务是否设置为开机自启。如果是,会返回enabled;如果不是,返回disabled。例如,systemctl is - enabled httpd可以判断httpd服务是否会在开机时自动启动。

案例:以http为例子,使用systemctl的用法

1、安装http服务,该服务的守护进程为httpd

2、查看http服务运行状态——关闭状态

3、开启http服务

4、终止http服务

5、设置http服务开机自启动

五、计划任务

(一)at 选项 参数

选项

        -l:查看计划任务。

        -f:从文件中读取任务

        -d:删除计划任务,参数为任务编号。

1、案例:制定计划任务,18:00重启http服务

输入完systemctl restart httpd 回车2次即可

查看计划

(二)crontab 选项 参数

选项

        -e:编辑crontab文件

        -l:查看当前的计划任务

        -r:删除计划任务

        -u:编辑其他用户的计划任务,通常root使用该选项

* * * * * command_to_execute
- - - - -
| | | | |
| | | | +---- 星期几 (0 - 7) (星期天=0或7)
| | | +------ 月份 (1 - 12)
| | +-------- 一个月中的第几天 (1 - 31)
| +---------- 小时 (0 - 23)
+------------ 分钟 (0 - 59)

案例:每周末凌晨3点进入系统维护状态,30分钟后重启系统

1、编辑cronjob文件,把定时任务写入

2、加载命令,确认执行

3、查看计划

这个定时任务的含义如下:

  • 时间设置
    • 分钟0,表示在 0 分钟时。
    • 小时3,表示在 3 点。
    • 日期*,表示任意日期。
    • 月份*,表示任意月份。
    • 星期几6,表示星期六。
  • 执行的命令/usr/sbin/shutdown -r -t 1800
    • 这是一个系统关机命令。-r选项表示重启系统,-t 1800表示在执行关机操作前等待 1800 秒(30 分钟)。

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

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

相关文章

Linux脚本语言学习--下

4.Bash的变量 4.1.用户自定义变量 4.1.1.什么是变量 变量是计算机内存的单元&#xff0c;其中存放的值可以改变。当Shell脚本需要保存一些信息的时候&#xff0c;如一个文件名或是一个数字&#xff0c;就把他存放在一个变量中。每个变量有一个名字&#xff0c;所以很容易引用…

武汉市电子信息与通信工程职称公示了

2024年武汉市电子信息与通信工程专业职称公示了&#xff0c;本次公示通过人员有109人。 基本这已经是今年武汉市工程相关职称最后公示了&#xff0c;等待出证即可。 为什么有人好奇&#xff0c;一样的资料&#xff0c;都是业绩、论文等&#xff0c;有的人可以过&#xff0c;有的…

ModelScope-Agent(3):docker启动

目录 前两篇并没有使用到docker,但我看项目中是有docker配置的&#xff0c;不过没有在教程中写出来。学习了ragflow的docker配置流程之后&#xff0c;试一下modelscope-agent的配置。 先创建model-scope的cuda环境 conda create --name modelscope-agent python3.10 conda acti…

如何高效获取Twitter数据:Apify平台上的推特数据采集解决方案

引言 在数据分析和市场研究领域&#xff0c;Twitter&#xff08;现在的X&#xff09;数据一直是重要的信息来源。但是&#xff0c;自从Twitter更改API定价策略后&#xff0c;获取数据的成本大幅提升。本文将介绍一个经济实惠的替代方案。 为什么需要Twitter数据&#xff1f; …

MySql 中的解决某列中多个字段查询是否存在指定某个值, FIND_IN_SET 用法。

简言&#xff1a;今天公司数据库里面有个列是多个数据拼接而成的比如&#xff1a;**“,131113,749932833,749932825,749932826,749932827,749932828,749932829,”**想要通过sql 查找749932833值的列&#xff0c;很多同学第一想到的就是like 模糊匹配&#xff0c;模糊匹配不能保…

go引用包生成不了vendor的问题

比如我要引入github.com/jinzhu/gorm这个包. 1. 首先获取包 go get github.com/jinzhu/gorm 这时go.mod文件中也有这个包依赖信息了. 2. 然后构建vendor go mod vendor 结果发现vendor目录下没有生成对应的包, 而且modules.txt也注释掉这个包了. 原因是没有其进行引用, go…

基于 SSM 框架 Vue 电脑测评系统:引领电脑评测新方向

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

知识分享第三十天-力扣343.(整数拆分)

343 整数拆分 给定一个正整数 n&#xff0c;将其拆分为至少两个正整数的和&#xff0c;并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2 输出: 1 解释: 2 1 1, 1 1 1。 示例 2: 输入: 10 输出: 36 解释: 10 3 3 4, 3 3 4 36。 说明: 你可…

Nginx常用配置详解(1)

Nginx常用配置详解 一、全局块&#xff08;main&#xff09;配置 在Nginx的配置文件中&#xff0c;最外层的部分是全局块。这部分配置通常会影响Nginx服务器整体的运行参数。 worker_processes 作用&#xff1a;这个配置指令用于指定Nginx工作进程的数量。工作进程是Nginx处理…

力扣2300.咒语和药水的成功对数(二分法)

根据 灵茶山艾府 题解所写 题目描述&#xff1a; 给你两个正整数数组 spells 和 potions &#xff0c;长度分别为 n 和 m &#xff0c;其中 spells[i] 表示第 i 个咒语的能量强度&#xff0c;potions[j] 表示第 j 瓶药水的能量强度。 同时给你一个整数 success 。一个咒语和药…

电商大数据的几种获取渠道分享!

在当今数字化时代&#xff0c;电商大数据已成为企业决策和运营的重要基础。如何高效地获取、分析和利用这些数据&#xff0c;对于提升电商企业的竞争力至关重要。本文将详细介绍几种电商大数据的获取渠道&#xff0c;帮助电商从业者更好地掌握数据资源&#xff0c;提升业务洞察…

CQRS Design Pattern in Microservices - CQRS模式

原文链接 CQRS Design Pattern in Microservices - GeeksforGeeks 【文章看起来像是AI写的。。。 &#x1f602;&#x1f602;&#x1f602;】 简介 实现步骤 1&#xff0c;识别有界上下文&#xff1a;&#xff08;Identify Bounded Contexts:&#xff09; 2&#xff0c;命…

c语言----选择结构

基本概念 选择结构是C语言中用于根据条件判断来执行不同代码块的结构。它允许程序在不同的条件下执行不同的操作&#xff0c;使程序具有决策能力。 if语句 单分支if语句 语法格式&#xff1a; if (条件表达式) { 执行语句块; } 功能&#xff1a; 当条件表达式的值为真&#…

RK3588 , mpp硬编码rgb, 保存MP4视频文件.

RK3588 , mpp硬编码yuv, 保存MP4视频文件. ⚡️ 传送 ➡️ RK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGBRk3588 FFmpeg 拉流 RTSP, 硬解码转RGBUbuntu x64 架构, 交叉编译aarch64 FFmpeg mppCode Init MppMPP_RET init_mpp

uniapp blob格式转换为video .mp4文件使用ffmpeg工具

前言 介绍一下这三种对象使用场景 您前端一旦涉及到文件或图片上传Q到服务器&#xff0c;就势必离不了 Blob/File /base64 三种主流的类型它们之间 互转 也成了常态 Blob - FileBlob -Base64Base64 - BlobFile-Base64Base64 _ File uniapp 上传文件 现在已获取到了blob格式的…

【Linux运维】配置ssh免密登录

1.场景描述 内网环境&#xff0c;需要同步17服务器的文件到10服务器进行备份。因为每次输入密码比较繁琐&#xff0c;如果实现免密登录后&#xff0c;即可简化脚本。 要求&#xff1a;需要2台服务器-免密登录 2.方案分析 &#xff08;1&#xff09;现状&#xff1a;登录需要输…

使用Python从阿里云物联网平台获取STM32温度数据

在物联网&#xff08;IoT&#xff09;应用中&#xff0c;设备数据的采集与监控至关重要。本文将详细介绍如何使用Python从阿里云物联网平台获取STM32设备的温度数据。我们将从已有的Java代码出发&#xff0c;逐步将其转换为Python&#xff0c;并处理在过程中遇到的问题&#xf…

职场上,如何做好自我保护?

今天我们讨论一个话题&#xff1a;在职场上&#xff0c;如何保护好自己&#xff1f;废话不多说&#xff0c;我们直接上干货。 &#xff08;一&#xff09; 1.时刻准备一点零食或代餐&#xff0c;如果遇到长时间的会议&#xff0c;就补充点能量。代餐最好选流体&#xff0c;这…

网络编程 02:IP 地址,IP 地址的作用、分类,通过 Java 实现 IP 地址的信息获取

一、概述 记录时间 [2024-12-18] 前置文章&#xff1a;网络编程 01&#xff1a;计算机网络概述&#xff0c;网络的作用&#xff0c;网络通信的要素&#xff0c;以及网络通信协议与分层模型 本文讲述网络编程相关知识——IP 地址&#xff0c;包括 IP 地址的作用、分类&#xff…

tryhackme-Pre Security-HTTP in Detail(HTTP的详细内容)

任务一&#xff1a;What is HTTP(S)?&#xff08;什么是http&#xff08;s&#xff09;&#xff09; 1.What is HTTP? (HyperText Transfer Protocol)&#xff08;什么是 HTTP&#xff1f;&#xff08;超文本传输协议&#xff09;&#xff09; http是你查看网站的时候遵循的…