当前位置: 首页 > news >正文

计算机网络-----详解HTTP协议

✏️1. 什么是HTTP

HTTP (全称为 “超⽂本传输协议”) 是⼀种应⽤⾮常⼴泛的应⽤层协议(所谓 “超⽂本” 的含义, 就是传输的内容不仅仅是⽂本(⽐如 html, css 这个就是⽂本), 还可以是⼀些其他的资源, ⽐如图⽚, 视频, ⾳频等⼆进制的数据)。

在这里插入图片描述

HTTP 诞⽣与1991年,⽬前已经发展为最主流使⽤的⼀种应⽤层协议。最新的 HTTP 3 版本也正在完善,属于实验室版本,HTTP 往往是基于传输层的 TCP 协议实现的(HTTP1.0, HTTP1.1, HTTP2.0 均为TCP, HTTP3 基于
UDP 实现),目前我们主要使⽤的还是 HTTP1.1 和 HTTP2.0。

我们平时打开⼀个⽹站,就是通过 HTTP 协议来传输数据的。当我们在浏览器中输⼊⼀个 搜狗搜索的 “⽹址”(URL) 时,浏览器就给搜狗的服务器发送了⼀个 HTTP请求,搜狗的服务器返回了⼀个 HTTP 响应。这个响应结果被浏览器解析之后,就展⽰成我们看到的⻚⾯内容。(这个过程中浏览器可能会给服务器发送多个 HTTP 请求,服务器会对应返回多个响应,这些响应⾥就包含了⻚⾯ HTML,CSS,JavaScript,图⽚,字体等信息)。

在这里插入图片描述
🌈 理解 HTTP 协议的⼯作过程

当我们在浏览器中输⼊⼀个 “⽹址”, 此时浏览器就会给对应的服务器发送⼀个 HTTP 请求. 对⽅服务器收到这个请求之后, 经过计算处理, 就会返回⼀个 HTTP 响应
在这里插入图片描述
事实上, 当我们访问⼀个⽹站的时候, 可能涉及不⽌⼀次的 HTTP 请求/响应 的交互过程,我们可以通过抓包工具来观察到所有的请求,macOS系统推荐使用proxy man抓包软件

✏️2. HTTP协议格式

以下是⼀个 HTTP请求/响应 的抓包结果

🌈HTTP请求
在这里插入图片描述

  1. ⾸⾏: [⽅法] + [url] + [版本]
  2. Header: 请求的属性, 冒号分割的键值对;每组属性之间使⽤\n分隔;遇到空⾏表⽰Header部分结束
  3. Body: 空⾏后⾯的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有⼀个
    Content-Length属性来标识Body的⻓度

🌈HTTP响应
在这里插入图片描述

  1. ⾸⾏: [版本号] + [状态码] + [状态码解释]
  2. Header: 请求的属性, 冒号分割的键值对;每组属性之间使⽤\n分隔;遇到空⾏表⽰Header部分结束
  3. Body: 空⾏后⾯的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有⼀个Content-Length属性来标识Body的⻓度; 如果服务器返回了⼀个html⻚⾯, 那么html⻚⾯内容就是在body中

在这里插入图片描述
为什么 HTTP 报⽂中要存在 “空⾏”?

因为 HTTP 协议并没有规定报头部分的键值对有多少个. 空⾏就相当于是 “报头的结束标记”, 或者是"报头和正⽂之间的分隔符".HTTP 在传输层依赖 TCP 协议, TCP 是⾯向字节流的. 如果没有这个空⾏, 就会出现 “粘包问题”

✏️3. 认识URL

平时我们俗称的 “⽹址” 其实就是说的 URL (Uniform Resource Locator 统⼀资源定位符)

互联网上的每个⽂件都有⼀个唯⼀的URL,它包含的信息指出⽂件的位置以及浏览器应该怎么处理它.

URL 的详细规则由 因特⽹标准RFC1738 进⾏了约定

在这里插入图片描述

一个具体的URL
//https://v.bitedu.vip/personInf/student?userId=10000&classId=100https : 协议⽅案名. 常⻅的有 http 和 https, 也有其他的类型. (例如访问 mysql 时⽤的jdbc:mysql)user:pass : 登陆信息. 现在的⽹站进⾏⾝份认证⼀般不再通过 URL 进⾏了. ⼀般都会省略v.bitedu.vip : 服务器地址. 此处是⼀个 "域名", 域名会通过 DNS 系统解析成⼀个具体的 IP 地址. (通过 ping 命令可以看到, v.bitedu.vip 的真实 IP 地址为 118.24.113.28)端⼝号: 上⾯的 URL 中端⼝号被省略了. 当端⼝号省略的时候, 浏览器会根据协议类型⾃动决定使⽤·哪个端⼝. 例如 http 协议默认使⽤ 80 端⼝, https 协议默认使⽤ 443 端⼝/personInf/student : 带层次的⽂件路径.userId=10000&classId=100 : 查询字符串(query string). 本质是⼀个键值对结构. 键值对之间使⽤ & 分隔. 键和值之间使⽤ = 分隔片段标识: 此 URL 中省略了⽚段标识. ⽚段标识主要⽤于⻚⾯内跳转

关于 query string

query string 中的内容是键值对结构. 其中的 key 和 value 的取值和个数, 完全都是程序猿⾃⼰约定的. 我们可以通过这样的⽅式来⾃定制传输我们需要的信息给服务器.

URL中可以省略的部分

	协议名: 可以省略, 省略后默认为 http://ip 地址 / 域名: 在 HTML 中可以省略(⽐如 img, link, script, a 标签的 src 或者 href 属性). 省略后表⽰服务器的 ip / 域名与当前 HTML 所属的 ip / 域名⼀致端⼝号: 可以省略. 省略后如果是 http 协议, 端⼝号⾃动设为 80; 如果是 https 协议, 端⼝号⾃动设为443.带层次的⽂件路径: 可以省略. 省略后相当于 / . 有些服务器会在发现 / 路径的时候⾃动访问/index.html查询字符串: 可以省略⽚段标识: 可以省略

关于URL encode

像/ ? : 等这样的字符,已经被url当做特殊意义理解了。因此这些字符不能随意出现。某个参数中需要带有这些特殊字符,就必须先对特殊字符进⾏转义。(⼀个中⽂字符由 UTF-8 或者 GBK 这样的编码⽅式构成, 虽然在 URL 中没有特殊含义, 但是仍然需要进⾏转义. 否则浏览器可能把 UTF-8/GBK 编码中的某个字节当做 URL 中的特殊号)

转义的规则如下: 将需要转码的字符转为16进制,然后从右到左,取4位(不⾜4位直接处理),每2位做⼀位,前⾯加上%,编码成%XY格式

在这里插入图片描述

“+” 被转义成了 “%2B”
URL encode工具

✏️4. 认识方法(method)

在这里插入图片描述

  1. 🌈GET方法

GET 是最常⽤的 HTTP ⽅法. 常⽤于获取服务器上的某个资源,在浏览器中直接输⼊ URL, 此时浏览器就会发送出⼀个 GET 请求,另外, HTML 中的 link, img, script 等标签, 也会触发 GET 请求。

GET 请求的特点

  1. ⾸⾏的第⼀部分为 GET
  2. URL 的 query string 可以为空, 也可以不为空
  3. header 部分有若⼲个键值对结构
  4. body 部分为空

关于 GET 请求的 URL ⻓度问题

网上有些资料上描述: get请求⻓度最多1024kb 这样的说法是错误的,实际上对URL的长度没有限制,URL 的⻓度取决于浏览器的实现和 HTTP 服务器端的实现. 在浏览器端, 不同的浏览器最⼤⻓度是不同的, 但是现代浏览器⽀持的⻓度⼀般都很⻓; 在服务器端, ⼀般这个⻓度是可以配置的。

  1. 🌈POST方法

POST ⽅法也是⼀种常⻅的⽅法,多⽤于提交⽤⼾输⼊的数据给服务器(例如登陆⻚面)。

POST 请求的特点

  1. ⾸⾏的第⼀部分为 POST
  2. URL 的 query string ⼀般为空 (也可以不为空)
  3. header 部分有若⼲个键值对结构
  4. body 部分⼀般不为空. body 内的数据格式通过 header 中的 Content-Type 指定. body 的⻓度由 header 中的 Content-Length 指定.

经典⾯试题: 谈谈 GET 和 POST 的区别

  1. 语义不同: GET ⼀般⽤于获取数据, POST ⼀般⽤于提交数据

  2. GET 的 body ⼀般为空, 需要传递的数据通过 query string 传递, POST 的 query string ⼀般为空, 需要传递的数据通过 body 传递

  3. GET 请求⼀般是幂等的, POST 请求⼀般是不幂等的. (如果多次请求得到的结果⼀样, 就视为请求是
    幂等的)

  4. GET 可以被缓存, POST 不能被缓存. (这⼀点也是承接幂等性)

补充说明

  1. 关于语义: GET 完全可以⽤于提交数据, POST 也完全可以⽤于获取数据.
  2. 关于幂等性: 标准建议 GET 实现为幂等的. 实际开发中 GET 也不必完全遵守这个规则(主流⽹站都有"猜你喜欢" 功能, 会根据⽤⼾的历史⾏为实时更新现有的结果
  3. 关于安全性: 有些资料上说 “POST ⽐ GET 请安全”. 这样的说法是不科学的. 是否安全取决于前端在传输密码等敏感信息时是否进⾏加密, 和 GET POST ⽆关
  4. 关于传输数据量: 有的资料上说 “GET 传输的数据量⼩, POST 传输数据量⼤”. 这个也是不科学的, 标准没有规定 GET 的 URL 的⻓度, 也没有规定 POST 的 body 的⻓度. 传输数据量多少, 完全取决于不同浏览器和不同服务器之间的实现区别.
  5. 关于传输数据类型: 有的资料上说 “GET 只能传输⽂本数据, POST 可以传输⼆进制数据”. 这个也是不科学的. GET 的 query string 虽然⽆法直接传输⼆进制数据, 但是可以针对⼆进制数据进⾏ urlencode
  1. 🌈补充说明
  1. PUT 与 POST 相似,只是具有幂等特性,⼀般⽤于更新
  2. DELETE 删除服务器指定资源
  3. OPTIONS 返回服务器所⽀持的请求⽅法
  4. HEAD 类似于GET,只不过响应体不返回,只返回响应头
  5. TRACE 回显服务器端收到的请求,测试的时候会⽤到这个
  6. CONNECT 预留,暂⽆使⽤
✏️5. 认识请求报头

Header 的整体的格式也是 “键值对” 结构。每个键值对占⼀⾏,键和值之间使⽤“: ”分割。

  1. Host : 表示服务器主机的地址和端⼝
  2. Content-Length :表示 body 中的数据⻓度
  3. Content-Type : 表示请求的 body 中的数据格式
  4. User-Agent : 表示浏览器/操作系统的属性
  5. Referer : 表示这个⻚⾯是从哪个⻚⾯跳转过来的
✏️6. 认识状态码(status code)
  1. 200 OK : 这是⼀个最常⻅的状态码,表示访问成功(抓包抓到的⼤部分结果都是 200)
  2. 404 Not Found : 浏览器输⼊⼀个 URL, ⽬的就是为了访问对⽅服务器上的⼀个资源. 如果这个 URL 标识的资源不存在,那么就会出现 404
  3. 403 Forbidden : 表示访问被拒绝. 有的⻚⾯通常需要⽤⼾具有⼀定的权限才能访问(登陆后才能访问). 如果⽤⼾没有登陆直接访问, 就容易⻅到 403
  4. 405 Method Not Allowed : HTTP 中所⽀持的⽅法, 有 GET, POST, PUT, DELETE 等。但是对⽅的服务器不⼀定都⽀持所有的⽅法(或者不允许用户使⽤⼀些其他的⽅法)
  5. 500 Internal Server Error : 服务器出现内部错误. ⼀般是服务器的代码执⾏过程中遇到了⼀些特殊情况(服务器异常崩溃)会产⽣这个状态码
  6. 504 Gateway Timeout : 当服务器负载⽐较⼤的时候, 服务器处理单条请求的时候消耗的时间就会很⻓, 就可能会导致出现超时的情况
  7. 302 Move temporarily :临时重定向。在登陆⻚⾯中经常会⻅到 302. ⽤于实现登陆成功后⾃动跳转到主⻚,响应报⽂的 header 部分会包含⼀个 Location 字段, 表⽰要跳转到哪个⻚⾯.
  8. 301 Moved Permanently : 永久重定向. 当浏览器收到这种响应时, 后续的请求都会被⾃动改成新的地址.301 也是通过 Location 字段来表⽰要重定向到的新地址

在这里插入图片描述

相关文章:

计算机网络-----详解HTTP协议

✏️1. 什么是HTTP HTTP (全称为 “超⽂本传输协议”) 是⼀种应⽤⾮常⼴泛的应⽤层协议(所谓 “超⽂本” 的含义, 就是传输的内容不仅仅是⽂本(⽐如 html, css 这个就是⽂本), 还可以是⼀些其他的资源, ⽐如图⽚, 视频, ⾳频等⼆进制的数据)。 HTTP 诞⽣…...

解决npm安装依赖报错ERESOLVE unable to resolve dependency tree

在使用 npm 安装项目依赖时,有时会遇到错误信息 “npm ERR! code ERESOLVE”,该错误通常发生在依赖版本冲突或者依赖解析问题时。本文将详细介绍出现这个错误的原因,并提供解决方法,确保正确安装项目依赖并避免该错误的发生。 一…...

微信小程序安卓手机输入框文字飘出输入框

最近在开发微信小程序遇到一个问题,安卓手机输入框文字飘出输入框,但是ios系统的手机则正常。 使用情景:做了一个弹窗,弹窗内是表单,需要填写一些信息,但是在填写信息时光标不显示,输入的内容飘…...

python网络自动化-数据格式与数据建模语言

数据格式 在Python网络运维自动化最基本是JSON、YAML和XML这3种数据格式。除了这3种常用的数据格式,还有一种深受网络工程师喜爱且在网络运维自动化中常用的数据承载方式——表格 需要注意的是JSON的键必须用双引号包裹,JSON的对象数据键值对的值和数组…...

C++ 中的 atan2 函数:深入解析与应用

在 C 编程中,数学计算是许多应用场景的核心,例如几何问题、物理模拟和游戏开发等。atan2 函数作为数学库中的一个重要工具,提供了比普通反正切函数更强大的功能。本文将深入解析 atan2 函数的原理、使用方法以及实际应用场景,并通…...

云计算-Azure Functions :构建事件驱动的云原生应用报告

云计算导论 课程研究报告 Azure Functions :构建事件驱动的云原生应用 摘要: Azure Functions 是一种无服务器解决方案,是由微软 Azure 平台提供的,可以使用户专注于业务逻辑,减少代码的编写,减少需要维护…...

【笔记——李沐动手学深度学习】2.3 线性代数

2.3.1 标量 标量由只有一个元素的张量表示。 下面的代码将实例化两个标量,并执行一些熟悉的算术运算,即加法、减、乘法、除法和指数。 2.3.2 向量 人们通过一维张量表示向量。一般来说,张量可以具有任意长度,取决于机器的内存限…...

多个 Job 并发运行时共享配置文件导致上下文污染,固化 Jenkins Job 上下文

基于 context.py 固化 Jenkins Job 上下文的完整方案,适用于你当前的工作流(Python Jenkins Pipeline),解决: 多个 Job 并发运行时共享配置文件导致上下文污染;读取环境变量或 JSON 文件时被其他 Job 修改…...

github 上的php项目

github 上的php项目 项目的网址 (Loong1996/LikeGirlSite: 情侣网站、情侣网页、恋爱记录网站) # 修改 # admin/Config_DB.php//localhost 为数据库地址 一般使用默认的即可 或(127.0.0.1) $db_address "mysql_php";/…...

防火墙快速管理软件,66K超小巧

软件介绍 今天为大家推荐一款轻量级的Windows防火墙管理工具,这款工具能帮助用户快速开启或关闭系统防火墙功能,操作比系统原生设置更加便捷高效。 软件优势 相比通过系统设置层层点击的操作方式,这款仅66KB大小的微型工具只需单击按钮…...

入门级STM32F103C8T6无人机遥控(原理图)

一、STM32主控电路 一、STM32 主控电路 把 STM32 想象成 “机器人的大脑”,核心电路是 “大脑的基础保障”:让大脑有电、有心跳(时钟 )、能复活(复位 )。 1. 电源引脚(VDD、VDDA、VSS 等 &#…...

无人机灯光驱动模块技术解析

一、运行方式 1. 核心流程: 指令接收:灯光控制模块通过无线通信链路(如WiFi, 数传电台,或专用的表演控制链路)接收来自地面站或中央控制系统的灯光指令。指令包含:颜色(RGB/RGBW值&#xff0…...

React + Umi(Umijs/Max) 搭建项目及配置

文章标题 01 环境准备02 快速构建2.1 参数选项2.2 umix 还是 umijs/max2.3 使用 pnpm (推荐)2.4 使用 npm 和 yarn2.5 启动项目2.6 启用 Prettier(可选)2.7 打包部署发布 03 Tailwind CSS 插件(可选)3.1 安…...

React 第六十四节Router中HashRouter的使用详细介绍及案例分析

前言 HashRouter 是 React Router 提供的一种路由实现方案,它使用 URL 的 hash 部分(# 后面的内容)来实现客户端路由功能。 一、HashRouter 的核心用途 客户端路由:在不刷新页面的情况下管理应用导航兼容性:支持不支…...

Linux RDMA网络配置手册

一、配置前准备工作 在进行 RDMA 网络配置之前,请确保以下准备工作已完成: 硬件环境 确保服务器支持 RDMA 功能,例如支持 InfiniBand 或 RoCE(RDMA over Converged Ethernet)的网卡。确保网络交换设备支持 RDMA 协议…...

sentinel与seata组件在微服务中的基本作用

微服务基础内容: 在微服务中,首先学习了微服务的横向拆分与纵向拆分,纵向拆分指按照功能拆分模块,横向拆分指将高复用的模块单独拆分,使纵向拆分的模块去调用这部分内容。 学习了基本拆分后,需要知道微服…...

Springboot 集成多数据源pgSql+mysql,启动报错

一.错误信息: 2025-06-25 20:25:50.870 ERROR [ai-manage-center,,] --- [ruid-ConnectionPool-Create-1057240219] DruidDataSource : create connection SQLException, url: jdbc:postgresql://10.10.60.227:5432/ai_dify1?sslmodedisable&currentSchemapub…...

南宫28NG相信品牌力量/Vue 3 中的组合式 API(Composition API)进阶实战

南宫28NG相信品牌力量【罔丨止:MGTY.PW】 点击此处复制到浏览器打开 随着 Vue 3 的普及,Composition API 已成为现代 Vue 开发的主流。本节我们将深入掌握组合式 API 的进阶用法,涵盖响应式工具、生命周期钩子封装、自定义逻辑抽离等关键技术…...

实战使用 Docker Compose 搭建 Redis Cluster 集群

文章目录 前言技术积累Docker Compose简介Redis Cluster简介Redis Cluster 解决的问题 实战演示部署环境创建目录编写Redis配置文件编写Docker-Compose.yml执行yml文件,启动容器查看容器状态创建集群验证集群集群数据验证 总结 前言 随着互联网技术的发展&#xff…...

Tauri(2.5.1)+Leptos(0.8.2)开发自用桌面小程序--DeepSeek辅助编程(俄罗斯方块)

在之前工作基础上(Tauri(2.5.1)Leptos(0.8.2)开发自用桌面小程序-CSDN博客),继续进行自用桌面小程序的开发,这次完全使用DeepSeek辅助编程做一个俄罗斯方块游戏,大部分代码由DeepSeek自主完成,Bug扔给DeepS…...

flex布局实例:把色子放进盒子里

目录 一、flex布局实例:把色子放进盒子里 1、基础样式 二、justify-content 属性 三、flex-direction 属性 四、align-items 属性 五、flex-wrap 属性 二、flex布局应用到常见场景 非常详细的讲解flex布局,看一看,练一练! …...

【启发式算法】RRT*算法详细介绍(Python)

📢本篇文章是博主人工智能(AI)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅…...

基于R语言的亚组分析与森林图绘制1

亚组分析是临床研究中的重要分析方法,其核心是通过将研究对象按基线特征(如年龄、性别或吸烟状况等)划分为不同亚组,进而评估干预措施或暴露因素在各亚组中对结局影响的差异性。 在亚组分析中,交互作用(P for interaction)是关键指标,用于判断干预措施或暴露因素与亚组…...

idea, CreateProcess error=206, 文件名或扩展名太长

idea, CreateProcess error206, 文件名或扩展名太长 解决 “CreateProcess error206, 文件名或扩展名太长” 错误 CreateProcess error206 是 Windows 系统特有的错误,表示命令行参数超出了 Windows 的 32767 字符限制。这个问题在 Java 开发中尤其常见&#xff0c…...

aspose.word在IIS后端DLL中高并发运行,线程安全隔离

aspose.word在IIS后端DLL中运行,加载很慢,如何为全部用户加载,再每个用户访问时在各自线程中直接可以打开WORD文件处理 Aspose.Words 在 IIS 中优化加载性能方案 针对 Aspose.Words 在 IIS 后端 DLL 中加载缓慢的问题,我们可以通过单例模式预加载组件并结合线程安…...

day042-负载均衡与web集群搭建

文章目录 0. 老男孩思想-面试官问:你对加班的看法?1. 负载均衡2. 搭建负载均衡的WordPress集群2.1 负载均衡服务器2.2 配置web服务器2.3 测试 踩坑记录1. /var/cache/nginx权限问题 0. 老男孩思想-面试官问:你对加班的看法? 互联网公司没有不加班的&a…...

DuDuTalk | 武汉赛思云科技有限公司通过武汉市人工智能企业认定!

近日,2025年武汉市人工智能企业名单正式公布!武汉赛思云科技有限公司(以下简称赛思云科技)凭借卓越的技术实力与创新成果,成功入选武汉市人工智能企业。这是对公司长期深耕AI语音智能领域、推动数字化转型的高度认可&a…...

Tita CRM飞书协同版:解锁企业销售与交付管理新效能

数字化转型的破局之道 在数字经济加速发展的今天,传统管理模式正面临前所未有的挑战: • 销售过程缺乏可视化管控手段 • 项目执行存在严重的信息孤岛 • 跨部门协作效率持续低下 • 绩效考核缺乏客观数据支撑 Tita CRM作为专业的智能化管理平台&#x…...

web安全之h2注入系统学习

起初是在N1 Junior 2025 上面碰到一题,考点是h2的sql注入。由于之前没有见过,趁此机会系统学习一番 实验代码 public class H2Inject {public static void main(String[] args) throws Exception{JdbcDataSource dataSource new JdbcDataSource();dataS…...

LVS-DR负载均衡群集深度实践:高性能架构设计与排障指南

目录 一、核心原理与理论 二、背景与架构设计 三、全流程部署步骤 1. NFS共享存储配置(192.168.7.100) 2. Real Server节点配置(四台服务器) 3. Director服务器配置 四、常见问题解决方案 五、生产环境总结 拓扑示意图&am…...

Java如何导出word(根据模板生成),通过word转成pdf,放压缩包

<!-- 导出word文档所需依赖--><dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.10.0-beta</version></dependency><dependency><groupId>org.apache.poi</gr…...

.NET 7.0 EF Core:一、创建Web API 项目基础框架和用户表的增删改查

demo 地址: https://github.com/iotjin/Jh.Admin.NETCore 代码不定时更新&#xff0c;请前往github查看最新代码 .NET 7.0 EF Core&#xff1a;一、创建Web API项目 官方教程序一、项目目录结构各层职责说明1️⃣ Admin.NETCore.API&#xff08;接口层&#xff09;2️⃣ Admin.…...

一篇文章了解XML

一、什么是 XML&#xff1f; XML 是一种结构化数据的标记语言&#xff0c;用来存储、传输和描述数据。 它和 HTML 很像&#xff0c;但它的标签是自定义的&#xff0c;不限定格式和外观&#xff0c;而是强调数据的结构和含义。 XML不是用来展示数据的&#xff0c;HTML是用来展…...

Windows下安装zookeeper

有关Linux安装zk的文章可以参考下我之前写的&#xff1a; Zookeeper 3.8.4 安装和参数解析 Windows下的下载和Linux是一样的&#xff0c;都是同一个包&#xff0c;目前zk稳定版是 3.8.4 下载解压后 在根目录下创建 data 文件夹用来存放数据文件 在 conf 文件夹中&#xff0c;…...

计算机网络 网络层:控制平面

在本章中&#xff0c;包含网络层的控制平面组件。控制平面作为一种网络范围的逻辑&#xff0c;不仅控制沿着从源主机到目的主机的端到端路径间的路由器如何转发数据报&#xff0c;而且控制网络层组件和服务如何配置和管理。5.2节&#xff0c;传统的计算图中最低开销路径的路由选…...

探索阿里云智能媒体管理IMM:解锁媒体处理新境界

一、引言&#xff1a;开启智能媒体管理新时代 在数字化浪潮的席卷下&#xff0c;媒体行业正经历着前所未有的变革。从传统媒体到新媒体的转型&#xff0c;从内容生产到传播分发&#xff0c;每一个环节都在寻求更高效、更智能的解决方案。而云计算&#xff0c;作为推动这一变革…...

微信点餐小程序—美食物

本项目是基于WAMP Server 和PHP 动态网页技术构建的微信小程序点餐系统&#xff0c;该系统主要分为前端&#xff08;微信小程序&#xff09;和后端&#xff08;基于PHPMySQL服务器端&#xff09; 整体架构流程 1、前端部分 用户界面&#xff1a;展示菜品、处理用户点餐操作、…...

Python零基础入门到高手8.5节: 实现选择排序算法

目录 8.5.1 排序算法简介 8.5.2 选择排序算法 8.5.3 好好学习&#xff0c;天天向上 8.5.1 排序算法简介 所谓排序&#xff0c;是指将数据集合中的元素按从小到大的顺序进行排列&#xff0c;或按从大到小的顺序进行排列。前者称为升序排序&#xff0c;后者称为降序排序。在数…...

JavaEE初阶第四期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(二)

专栏&#xff1a;JavaEE初阶起飞计划 个人主页&#xff1a;手握风云 目录 一、Thread类及常用方法 2.1. Thread的常见构造方法 2.2. Thread的常见属性 2.3. 启动一个线程 2.4. 中断一个线程 2.5. 等待一个线程 2.6. 休眠当前线程 一、Thread类及常用方法 2.1. Thread的…...

Metasploit常用命令详解

一、Metasploit 概述 Metasploit是一款开源的渗透测试框架&#xff0c;由 H.D. Moore 于 2003 年首次发布&#xff0c;目前由 rapid7 公司维护。它整合了大量漏洞利用模块、后渗透工具和漏洞扫描功能&#xff0c;已成为网络安全工程师、红队 / 蓝队成员及安全研究人员的核心工…...

2025.6.24总结

今天发生了两件事&#xff0c;这每件事情都足以影响我的工作状态。 1.团队中有人要转岗 这算是最让我有些小震惊的事件了。我不明白&#xff0c;那个同事干得好好的&#xff0c;为啥会转岗&#xff0c;为啥会被调到其他团队。虽然团队有正编&#xff0c;有od,但我自始自终觉得…...

2023年全国青少年信息素养大赛Python 复赛真题——玩石头游戏

今日python每日练习题为——玩石头游戏&#xff0c;大家记得坚持刷题哦&#xff0c;闯入国赛~ 每轮可拿 1-3 块石头&#xff0c;双方均采取最优策略。若石头数 n 为 4 的倍数&#xff0c;无论先手取 k 块&#xff08;1≤k≤3&#xff09;&#xff0c;后手总能取 4-k 块&#xf…...

MySQL之SQL性能优化策略

MySQL之SQL性能优化策略 一、主键优化策略1.1 主键的核心作用1.2 主键设计原则1.3 主键优化实践 二、ORDER BY优化策略2.1 ORDER BY执行原理2.2 ORDER BY优化技巧2.3 处理大结果集排序 三、GROUP BY优化策略3.1 GROUP BY执行原理3.2 GROUP BY优化方法 四、LIMIT优化策略4.1 LIM…...

AI时代工具:AIGC导航——AI工具集合

大家好!AIGC导航是一个汇集多种AIGC工具的平台&#xff0c;提供了丰富的工具和资源。 工具功能​: 该平台整合了多样的AIGC工具&#xff0c;涵盖了绘画创作、写作辅助以及视频制作等多个领域。绘画工具能够生成高质量的图像作品&#xff1b;写作工具支持从构思到润色的全流程写…...

性能测试-jmeter实战4

课程&#xff1a;B站大学 记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师 性能测试-jmeter实战4 jmeter环境搭建1. 安装Java环境&#xff08;必需&#xff09; JMeter环境搭建完整指南1. 安装Java&#xff0…...

C++字符串的行输入

1、字符串的输入 下面用一个真实的示例来进行演示&#xff1a; #include<iostream> #include<string>int main() {using namespace std;const int ArSize 20;char name[ArSize];char dessert[ArSize];cout << "Enter your name:\n";cin >>…...

【Linux网络与网络编程】15.DNS与ICMP协议

1. DNS 1.1 DNS介绍 TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序&#xff0c;但是 IP 地址不方便记忆&#xff0c;于是人们发明了一种叫主机名的字符串&#xff0c;并使用 hosts 文件来描述主机名和 IP 地址的关系。最初, 通过互连网信息中心(SRI-NIC)来…...

Python训练营-Day40-训练和测试的规范写法

1.单通道图片训练 # import torch # import torch.nn as nn # import torch.optim as optim # from torchvision import datasets, transforms # from torch.utils.data import DataLoader # import matplotlib.pyplot as plt # import numpy as np# # 设置中文字体支持 # plt…...

【Python-Day 29】万物皆对象:详解 Python 类的定义、实例化与 `__init__` 方法

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

内存泄漏和内存溢出的区别

内存泄漏&#xff08;Memory Leak&#xff09;和内存溢出&#xff08;Memory Overflow / Out Of Memory, OOM&#xff09;是软件开发中两个密切相关但又本质不同的内存问题&#xff1a; 核心区别一句话概括&#xff1a; 内存泄漏&#xff1a; 有垃圾对象占用内存却无法被回收&…...