HTTP协议与web服务器
HTTP协议与web服务器
目录
一、浏览器与服务器通信过程
1.1 域名解析与连接建立
1.2 数据交互
1.3 连接管理
二、HTTP请求报头
2.1 请求行
2.2 请求报头
2.3 空行
2.4 请求体
三、HTTP应答报头
3.1 http应答报文头部信息
1. 状态行
2. 服务器名称
3. 数据长度
4. 内容类型
5. 分隔符
3.2 应答状态
1. 信息性状态码(100-199)
2. 成功状态码(200-299)
3. 重定向状态码(300-399)
4. 客户端错误状态码(400-499)
5. 服务器错误状态码(500-599)
四、web服务器的C语言实现
一、浏览器与服务器通信过程
浏览器与web服务器在应用层通信使用的是HTTP协议80号端口(超文本传输协议)(https443端口),HTTP协议在传输层使用的是TCP协议,那么浏览器需要和web服务器三次握手建立连接后,才可以发送HTTP请求报文,服务器收到请求报文后,向浏览器回复HTTP应答报文
IP 地址是由数字组成的,例如 192.168.1.1
,难以记忆。而域名如 baidu.com
更便于人们记忆和使用。用户在浏览器地址栏输入域名,就能访问对应的网站或服务器,无需记住复杂的 IP 地址。
1.1 域名解析与连接建立
浏览器要访问 `www.baidu.com`
域名解析:通过 DNS(域名系统)将域名解析为对应的 IP 地址。
连接请求:使用 `connect()` 函数,指定解析出的 IP 地址和 HTTP 协议默认端口 `80` (现在也常用 443 端口用于 HTTPS )来发起连接请求。
建立连接:浏览器与 HTTP 服务器通过三次握手建立 TCP 连接。三次握手过程为:客户端发送 SYN 报文段;服务器收到后,回复 SYN + ACK 报文段;客户端再发送 ACK 报文段,至此连接建立成功。
1.2 数据交互
浏览器发送请求报文:连接建立后,浏览器向 HTTP 服务器发送 HTTP 请求报文,请求报文中包含请求方法(如 GET、POST 等 )、请求资源路径、协议版本等信息。
服务器应答报文:服务器接收到请求报文后,进行处理并回复 HTTP 应答报文,应答报文中包含状态码(如 200 表示成功 )、响应头(包含内容类型、长度等信息 )和响应体(如网页内容 )。
1.3 连接管理
短连接:数据交互完成后,通过 `close` 关闭连接。这种方式适用于一次简单的请求 - 响应交互场景,每次请求都要重新建立和关闭连接,开销相对较大。
长连接:保持连接不关闭,后续浏览器可在该连接上继续向服务器发送请求,避免了重复建立连接的开销,适用于需要频繁交互的场景,如网页中包含多个资源需多次请求的情况。
二、HTTP请求报头
HTTP请求报头的主要作用是为服务器提供关于客户端请求的详细信息,以便服务器能够正确地处理请求并返回合适的响应。这些报头信息对于确保HTTP通信的有效性和安全性至关重要。一个完整的HTTP请求由请求行、请求报头、空行和请求体(对于某些请求方法如POST)组成。
2.1 请求行
请求行包括三个部分:HTTP方法、请求的资源路径(URI)和HTTP协议版本。它们之间用空格分隔。
GET /index.html HTTP/1.0\r\n
-
GET:这是一个HTTP方法,表示请求获取资源。其他常用的HTTP方法还包括POST(提交数据)、PUT(更新资源)、DELETE(删除资源)等。
-
/index.html:这是请求的资源路径,表示客户端希望从服务器获取
/index.html
这个文件。 -
HTTP/1.0:这是HTTP协议的版本,表示客户端使用的是HTTP 1.0版本。HTTP协议已经发展到1.1和2版本,每个版本都有一些改进和新特性。
-
\r\n:这是回车换行符,用于分隔HTTP请求的各个部分。在HTTP协议中,回车换行符(CRLF)是一个重要的分隔符。
2.2 请求报头
请求报头由多个字段组成,每个字段都包含一个名称和一个值,名称和值之间用冒号(:)分隔,字段之间用换行符(CRLF,即\r\n
)分隔。请求报头提供了客户端环境、请求体信息、缓存控制等数据。
-
User-Agent:这个头部字段告诉服务器,发起请求的客户端应用程序是什么。在这个例子中,
Wget/1.12
表示这是一个使用Wget工具(一个命令行下载工具)发起的请求,版本是1.12。 -
Host:这个头部字段指定了请求的目标主机。在这个例子中,
192.168.141.128
是目标服务器的IP地址。这个字段在服务器使用虚拟主机时特别重要,因为它帮助服务器确定请求应该路由到哪个网站。 -
Connection:这个头部字段指定了连接的管理方式。在这个例子中,
close
表示请求完成后,服务器应该关闭连接。另一个常用的值是keep-alive
,表示服务器应该保持连接打开,以便可以复用这个连接来发送更多的请求。
2.3 空行
请求报头之后是一个空行,用于分隔请求报头和请求体(如果有的话)。这个空行不包含任何内容,仅由CRLF组成。
-
格式:
\r\n
2.4 请求体
请求体包含客户端向服务器发送的数据。请求体通常用于POST、PUT等方法,GET请求通常不包含请求体。
-
GET:
-
用于请求指定资源的数据。
-
不应包含请求体(请求体在GET请求中被忽略)。
-
可被缓存、收藏为书签和保留历史记录。
-
-
POST:
-
用于向指定资源提交数据,请求服务器进行处理(例如提交表单或上传文件)。
-
可以包含请求体,其中包含要提交给服务器的数据。
-
不可被缓存,也不会保存到历史记录中。
-
-
PUT:
-
上传某个资源
-
可以包含请求体,其中包含要更新的资源数据。
-
有幂等性,多次执行相同操作结果相同。
-
-
DELETE:
-
删除指定的资源。
-
可以包含请求体,尽管通常不包含。
-
有幂等性。
-
-
HEAD:
-
类似于GET请求,但不返回响应体。
-
用于获取资源的元数据,如响应头。
-
不应包含请求体。
-
-
OPTIONS:
-
用于描述目标资源的通信选项。
-
可以包含请求体。
-
-
PATCH:
-
用于对已知资源进行部分修改。
-
可以包含请求体,其中包含要应用的部分修改。
-
不像PUT那样要求幂等性。
-
-
CONNECT:
-
用于将连接改为管道方式的代理服务器。
-
通常用于SSL加密服务器的连接(通过HTTP隧道技术)。
-
可以包含请求体。
-
三、HTTP应答报头
3.1 http应答报文头部信息
1. 状态行
HTTP/1.0 200 OK\r\n
-
HTTP/1.0:指定了HTTP协议的版本,这里是1.0版本。
-
200:状态码,表示请求已成功处理。
-
OK:状态码的描述,进一步说明了状态码的含义。在这里,它表明请求成功并且服务器返回了请求的资源。
-
\r\n:回车换行符,用于分隔状态行和后续的响应报头。
2. 服务器名称
Server: MYWEB/1.0\r\n
-
Server:这是一个通用报头字段,用于指定处理请求的服务器软件的信息。
-
MYWEB/1.0:服务器软件的名称和版本。在这个例子中,服务器软件名为MYWEB,版本为1.0。
3. 数据长度
Content-Length: 8024\r\n
-
Content-Length:这是一个实体报头字段,用于指定实体主体(即响应体)的长度,单位是字节。
-
8024:响应体的长度为8024字节。
4. 内容类型
Content-Type: text/html;charset=utf-8\r\n
-
Content-Type:这是一个实体报头字段,用于指定实体主体的媒体类型。
-
text/html:指定响应体的媒体类型为HTML文档。
-
charset=utf-8:指定字符编码为UTF-8,这意味着响应体中的文本数据使用UTF-8编码。
5. 分隔符
\r\n
-
这个回车换行符(CRLF)用于分隔HTTP响应报头和响应体。它标志着响应报头的结束和响应体的开始。
这个HTTP响应报文头部提供了关于响应的基本信息,包括协议版本、状态码、服务器软件信息、响应体长度和内容类型。这些信息对于客户端(如浏览器)正确解析和处理响应内容至关重要
3.2 应答状态
HTTP应答状态码是服务器对客户端请求的响应结果的数字代码。这些状态码帮助客户端理解请求是否成功,以及如果失败,失败的原因是什么。
HTTP状态码分为五类,每类状态码都表示不同的结果类型:
1. 信息性状态码(100-199)
这些状态码表示临时的响应,请求正在处理中,并且客户端可能需要执行一些操作才能继续。
-
100 Continue:服务器已收到请求的初始部分,客户端可以继续发送请求的剩余部分。
-
101 Switching Protocols:服务器同意客户端的请求,将交换协议,例如切换到WebSocket协议。
-
102 Processing:服务器已收到并正在处理请求,但没有响应可用。
2. 成功状态码(200-299)
这些状态码表示请求已成功处理。
-
200 OK:请求成功,服务器返回请求的资源。
-
201 Created:请求成功,服务器创建了新的资源。
-
202 Accepted:请求已接受,但尚未处理完成。
-
204 No Content:服务器成功处理了请求,但没有返回任何内容。
-
206 Partial Content:服务器成功处理了部分内容请求。
3. 重定向状态码(300-399)
这些状态码表示请求的资源已被移动到新的URL,客户端需要使用新的URL重新发起请求。
-
300 Multiple Choices:请求的资源有多个响应可供选择。
-
301 Moved Permanently:请求的资源已被永久移动到新的URL。
-
302 Found:请求的资源临时移动到新的URL。
-
304 Not Modified:自从上次请求后,资源没有被修改,客户端可以使用缓存的版本。
-
307 Temporary Redirect:请求的资源临时移动到新的URL,但应使用原始请求方法发起新请求。
4. 客户端错误状态码(400-499)
这些状态码表示客户端请求有错误,服务器无法处理。
-
400 Bad Request:服务器无法理解客户端的请求。
-
401 Unauthorized:请求需要用户的身份验证。
-
403 Forbidden:服务器理解请求,但拒绝执行。
-
404 Not Found:服务器找不到请求的资源。
-
405 Method Not Allowed:请求方法(如POST、GET等)不被允许。
5. 服务器错误状态码(500-599)
这些状态码表示服务器在处理请求时遇到错误,无法完成请求。
-
500 Internal Server Error:服务器遇到意外情况,无法完成请求。
-
503 Service Unavailable:服务器暂时过载或维护,无法处理请求。
四、web服务器的C语言实现
相关文章:
HTTP协议与web服务器
HTTP协议与web服务器 目录 一、浏览器与服务器通信过程 1.1 域名解析与连接建立 1.2 数据交互 1.3 连接管理 二、HTTP请求报头 2.1 请求行 2.2 请求报头 2.3 空行 2.4 请求体 三、HTTP应答报头 3.1 http应答报文头部信息 1. 状态行 2. 服务器名称 3. 数据长度 4…...
ECharts散点图-散点图7,附视频讲解与代码下载
引言: ECharts散点图是一种常见的数据可视化图表类型,它通过在二维坐标系或其它坐标系中绘制散乱的点来展示数据之间的关系。本文将详细介绍如何使用ECharts库实现一个散点图,包括图表效果预览、视频讲解及代码下载,让你轻松掌握…...
蓝桥杯之二分法(二)
存在某条件使得一边均满足,一边均不满足: 如果问题满足某种条件,使得在某个点之前的所有值都满足条件,而之后的所有值都不满足条件(或反之),那么可以使用二分法来找到这个边界。 1.问题的解具有…...
当 AI 有了 “万能插头” 和 “通用语言”:MCP 与 A2A 如何重构智能体生态
目录 一、MCP:让 AI 拥有 “万能工具插头” 1.1 从 “手工对接” 到 “即插即用” 1.2 架构解密:AI 如何 “指挥” 工具干活 1.3 安全优势:数据不出门,操作可追溯 二、A2A:让智能体学会 “跨语言协作” 2.1 从 “…...
从零开始 保姆级教程 Ubuntu20.04系统安装MySQL8、服务器配置MySQL主从复制、本地navicat远程连接服务器数据库
从零开始:Ubuntu 20.04 系统安装 MySQL 8、服务器配置 MySQL 主从复制、本地 Navicat 远程连接服务器数据库 初始化服务器1. 更新本地软件包列表2. 安装 MySQL 服务器3. 查看 MySQL 安装版本4. 登录 MySQL 管理终端5. 设置 root 用户密码(推荐使用 nativ…...
PHP序列化/反序列化漏洞原理
PHP反序列化原理详解 引言 PHP反序列化是PHP中一个重要的概念,它允许将序列化后的数据重新转换为原始的数据结构。在PHP中,可以使用serialize()函数将数据序列化为字符串,然后使用unserialize()函数将序列化后的字符串反序列化为原来的数据结…...
并查集(力扣2316)
这种涉及不同连通分量的,看上去就可以用并查集。并查集的模板请参见上一篇内容。并查集(力扣1971)-CSDN博客 现在我们要求的是无法互相到达的点对。根据观察易得,我们只需要求出每个并查集的元素数量,然后遍历每个点&…...
【web服务_负载均衡Nginx】一、Nginx 基础与核心概念解析
一、Nginx 概述:从起源到行业地位 Nginx(发音为 “engine x”)是一款高性能的开源 Web 服务器、反向代理服务器,同时具备负载均衡、内容缓存、TCP/UDP 代理及邮件代理等功能。它由俄罗斯工程师伊戈尔・赛索耶夫(Igo…...
【Python入门】文件读取全攻略:5种常用格式(csv/excel/word/ppt/pdf)一键搞定 | 附完整代码示例
大家好,我是唐叔!今天给大家带来一篇Python文件读取的终极指南。无论是数据分析、办公自动化还是爬虫开发,文件读取都是Python程序员必须掌握的核心技能。本文将详细介绍Python处理5大常用文件格式的方法,包含完整可运行的代码示例…...
考研系列-计算机网络冲刺考点汇总(下)
写在前面 本文将总结王道408考研课程的计算机网络冲刺考点的第四章到第六章内容(网络层、传输层、应用层)。 第四章、网络层 1.SDN SDN的基本概念 注意对应关系:数据平面-转发;控制平面-路由选择 2.路由选择算法 (1)RIP协议-基于…...
GitLab-CI集成FTP自动发布
简介 在某些场景下,代码是以 FTP 的方式部署到服务器上,那么我们可以使用 GitLab-CI 来实现自动发布。 配置参考 .sftp-deploy: &sftp-deploy |-files$(git log -10 --prettyformat: --name-only | grep -v ^$ | sort -u)include_patterns$(echo …...
Ubuntu 安装cuda踩坑记录
Ubuntu 安装cuda踩坑记录: 运行run文件时出错: sh cuda_12.4.0_550.54.14_linux.run 报错: ./cuda-installer: error while loading shared libraries: libxml2.so.2: cannot open shared object file: No such file or directory 解决&am…...
用GitHub Actions实现CI/CD
目录 简介GitHub Actions基础工作流配置文件实战案例 Node.js应用Python应用Docker容器构建与部署 最佳实践常见问题与解决方案总结 简介 持续集成/持续部署(CI/CD)已成为现代软件开发不可或缺的一部分。它通过自动化构建、测试和部署过程,帮助开发团队更快、更可…...
使用AI工具打造专业级PPT的完整方案,结合 DeepSeek构思、Kimi生成内容、Napkin优化设计 等工具,分阶段详细说明流程及工具使用
以下是使用AI工具打造专业级PPT的完整方案,结合 DeepSeek构思、Kimi生成内容、Napkin优化设计 等工具,分阶段详细说明流程及工具使用: 一、全流程阶段划分 阶段目标核心工具1. 构思阶段明确主题、结构、核心信息,生成大纲与逻辑…...
【数据结构】线性表( List)和 顺序表(ArrayList)
【数据结构】线性表( List)和 顺序表(ArrayList) 一、线性表 List二、List 接口的常用方法三、ArrayList与顺序表3.1 引入顺序表的原因?3.2 ArrayList 的使用3.2.1 ArrayList 的创建3.2.2 添加元素:list.ad…...
嵌入式开发--STM32软件和硬件CRC的使用--续篇
本文是《嵌入式开发–STM32软件和硬件CRC的使用》的续篇,又踩到一个坑,发出来让大家避一下坑。 按照G0系列的设置,得出错误的结果 前文对应的是STM32G0系列,今天在用STM32G4系列时,按照前文的设置,用硬件…...
探索鸡养殖虚拟仿真实验:科技赋能养殖新体验
在科技飞速发展的今天,虚拟仿真技术逐渐渗透到各个领域,就连传统的养殖业也迎来了数字化的变革。最近,我参与了一场别开生面的鸡养殖虚拟仿真实验,不仅学到了专业的养殖知识,还收获了前所未有的沉浸式体验。现在&#…...
知识图谱中医知识问答系统|养生医案综合可视化系|推荐算法|vue+flask+neo4j+mysql
文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处! ✅编号 :F040 pro ✅技术架构: vueflaskmysqlneo4jltpac ✅实现功能:实现基于中医药材和药方的知识图谱可视化,在…...
【AI】——结合Ollama、Open WebUI和Docker本地部署可视化AI大语言模型
🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大三学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL࿰…...
AI 模型高效化:推理加速与训练优化的技术原理与理论解析
AI 模型高效化:推理加速与训练优化的技术原理与理论解析 文章目录 AI 模型高效化:推理加速与训练优化的技术原理与理论解析一、推理加速:让模型跑得更快的“程序员魔法”(一)动态结构自适应推理:像人类一样…...
python学习—详解word邮件合并
系列文章目录 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停,游戏抽签抽奖 python学习—循环语句-控制流 python学习—合并多个Excel工作簿表格文件 pytho…...
vscode与vim+cscope+tags热键冲突
[ctrl w] s 对于vim时水平分割窗口热键 对vscode, [ctrl w]时关闭当前窗口热键 在vscode中如下配置可以发送热键到shell, 跳过vscode:...
直播系统源码开发:解锁幸运礼物功能的商业魔力与运营策略
在当今如火如荼的直播经济中,幸运礼物功能已成为平台提升用户黏性、刺激消费的"黄金按钮"。山东布谷科技将深入剖析幸运礼物功能的技术逻辑与商业价值,并为运营者提供一套完整的策略框架,帮助您在激烈的直播赛道中脱颖而出。 一、…...
毕业设计效率提升工具与避坑指南
本文为毕业设计后的经验记录,包含写作过程中的一些实用工具和注意事项。 一、📌实验及写作实用技巧二、🚀 效率提升工具三、📊论文完成后的格式检查 本文为毕业设计后的经验记录,包含写作过程中的一些实用工具和注意事…...
Python网络爬虫设计(二)
目录 六、BeautifulSoup库 1、常见的提取分析网页内容的三种方式 (1)正则表达式 (2)BeautifulSoup库 (3)pyppeteer库中的元素查找函数 2、HTML中的tag 3、BeautifulSoup库的安装和导入 4、Beautiful…...
滑动窗口209. 长度最小的子数组
1.题目 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1: 输入&…...
如何避免被目标网站识别为爬虫?
文章目录 前言1. 合理设置请求头2. 控制请求频率3. 模拟真实用户行为4. 使用代理 IP5. 处理验证码6. 会话管理 前言 为避免被目标网站识别为爬虫,可从请求头设置、请求频率控制、模拟用户行为、使用代理、处理验证码和会话管理等多个方面采取措施,以下是…...
Dell戴尔服务器 PowerEdge R750xs + window server2012r2 || 2016
因要求需要给新服务器装个 win server2012或者2016系统 XXX使用U盘制作PE系统U盘安装系统不行,适合普通win8,win10,win11U盘制作PE系统U盘安装win10系统教程U盘制作PE系统U盘安装win10系统教程https://mp.weixin.qq.com/s/t0W8aNJaHPAU8T78nh…...
如何通过数据分析提升软件开发项目的成功率?
引言 在软件开发中,项目延期、超预算、需求反复变更等问题屡见不鲜。数据分析作为项目管理的重要工具,正在被越来越多的企业用于提升项目成功率。通过科学利用项目数据,团队可以做出更准确的决策,避免重复踩坑,从而大幅…...
模型的RAG
RAG 什么是RAG 当岳不群相当武林的盟主时候,你的给他一个葵花宝典(秘籍RAG) RAG的原理 建立索引: 首先要清洗和提取原始数据,将 PDF、Docx等不同格式的文件解析为纯文本数据 然后将文本数据分割成更小的片段(chunk)…...
基于多模态双路TCN-SE-YOLO的小目标检测
首先声明:该思路在小目标检测领域尚未有成果发表,感兴趣的小伙伴可以借鉴! 一、引言 1.1 研究背景 小目标检测在交通监控(车牌识别)、工业检测(PCB缺陷)及农业(病虫害斑点)等领域具有重要应用价值传统单模态检测方法在复杂场景下的漏检率高达40%以上(VisDrone 2021…...
idea maven 命令后控制台乱码
首先在idea中查看maven的编码方式 执行mvn -v命令 查看编码语言是GBK C:\Users\13488>mvn -v Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: D:\maven\apache-maven-3.6.3\bin\.. Java version: 1.8.0_202, vendor: Oracle Corporation, runt…...
在Vmware15(虚拟机免费) 中安装纯净win10详细过程
一、软件备选 1. VMware15.5.1 网盘下载地址 链接: https://pan.baidu.com/s/1y6GLJ2MG-1tomWblt3otsg?pwdim8e 提取码: im8e 2. windows镜像下载 去官网下载ios包 链接:https://www.microsoft.com/zh-cn/software-download/windows10 二、在VMware15.5.1下安装w…...
RISC-V 与 OpenHarmony 的结合意义与应用建议
RISC-V 与 OpenHarmony 的结合意义与应用建议 一、结合的意义 (一)硬件与软件的协同创新 RISC-V 作为硬件层的开源指令集架构,为 OpenHarmony 提供了强大的硬件支持。这种支持不仅体现在硬件性能的提升上,还为 OpenHarmony 的分…...
让SQL飞起来:搭建企业AI应用的SQL性能优化实战
我上一篇文章已经讲解过了如何使用公开的AI模型来优化SQL.但这个优化方法存在一定的局限性.因为公开的AI模型并不了解你的数据表结构是什么从而导致提供的优化建议不太准确.而sql表结构又是至关重要的安全问题,是不能泄露出去的.所以在此背景下我决定搭建一个自己的AI应用在内网…...
驱动开发硬核特训 · Day 14:深入理解 Power 管理驱动架构与实战应用
在嵌入式系统中,Power(电源)管理驱动既关乎系统稳定性,又直接影响功耗与续航,是系统设计中绕不开的核心模块。今天我们通过理论实战的形式,一次性讲清楚: Linux 中电源管理驱动的核心框架Regul…...
备份思科路由器设备文件实例
实例需求: (1)备份路由器的配置文件startup-config和映像文件 (2)备份交换机的配置文件startup-config和映像文件 注:PC3为TFTP服务器 结构示意图: 实例配置一: 备份路由器的配置文件startup-config和映像文件 步骤: 在PC3上打开tftp服务。确保PC3可以ping通11.1.1.…...
游戏引擎学习第231天
设定当天的主题 我们现在到了一个很少出现在直播中的阶段,但今天是那种需要解释计算机科学基础概念的日子。因此,今天我们将讨论这个内容,今天的重点是“大O表示法”(Order Notation),我将用黑板来解释这些…...
PclSharp ——pcl的c#nuget包
简介: NuGet Gallery | PclSharp 1.8.1.20180820-beta07 下载.NET Framework 4.5.2 Developer Pack: 下载 .NET Framework 4.5.2 Developer Pack Offline Installer 离线安装nupkg: nupkg是visual studio 的NuGet Package的一个包文件 安…...
Java性能剖析工具箱
1. 基础知识 1.1 Java性能调优概述 1.1.1 性能调优的重要性 性能调优是提升系统效率、降低成本和增强用户体验的关键步骤。通过优化,可以减少响应时间、降低资源消耗并提高系统的稳定性和可扩展性。 1.1.2 性能问题的常见表现 高CPU使用率:可能由热点方法或线程阻塞引起。…...
信息学奥赛一本通 1622:Goldbach’s Conjecture | 洛谷 UVA543 Goldbach‘s Conjecture
【题目链接】 ybt 1622:Goldbach’s Conjecture 洛谷 UVA543 Goldbach’s Conjecture 【题目考点】 1. 筛法求质数表 埃筛线性筛(欧拉筛) 知识点讲解见信息学奥赛一本通 2040:【例5.7】筛选法找质数 【解题思路】 首先使用埃…...
408数据结构绪论刷题001
答案:D 解析: • A选项:数据元素是组成数据对象的基本单位 ,它只是数据的基本个体,不能完整定义数据结构,所以A选项错误。 • B选项:数据对象是性质相同的数据元素的集合,仅仅描述…...
RNN - 语言模型
语言模型 给定文本序列 x 1 , … , x T x_1, \ldots, x_T x1,…,xT,语言模型的目标是估计联合概率 p ( x 1 , … , x T ) p(x_1, \ldots, x_T) p(x1,…,xT)它的应用包括 做预训练模型(eg BERT,GPT-3)生成本文ÿ…...
前端面试题---GET跟POST的区别(Ajax)
GET 和 POST 是两种 HTTP 请求方式,它们在传输数据的方式和所需空间上有一些重要区别: ✅ 一句话概括: GET 数据放在 URL 中,受限较多;POST 数据放在请求体中,空间更大更安全。 📦 1. 所需空间…...
【MCP】第一篇:MCP协议深度解析——大模型时代的“神经连接层“架构揭秘
【MCP】第一篇:MCP协议深度解析——大模型时代的"神经连接层"架构揭秘 一、什么是MCP?二、为什么需要MCP?三、MCP的架构四、MCP与AI交互的原理4.1 ReAct(Reasoning Acting)模式4.2 Function Calling 模式 五…...
新生宿舍管理系统
收藏关注不迷路!! 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题),项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多…...
@Autowird 注解与存在多个相同类型对象的解方案
现有一个 Student 类,里面有两个属性,分别为 name 和 id;有一个 StuService 类,里面有两个方法,返回值均为类型为 Student 的对象;还有一个 StuController 类,里面有一个 Student 类型的属性&am…...
MQTT客户端核心架构解析:clients.h源码深度解读
MQTT客户端核心架构解析:clients.h源码深度解读 一、头文件概览与设计哲学 clients.h作为MQTT客户端核心数据结构定义文件,体现了以下设计原则: 分层架构:网络层/协议层/业务层解耦状态管理:通过状态机实现复杂协议…...
音视频学习 - ffmpeg 编译与调试
编译 环境 macOS Ventrua 13.4 ffmpeg 7.7.1 Visual Studio Code Version: 1.99.0 (Universal) 操作 FFmpeg 下载源码 $ cd ffmpeg-x.y.z $ ./configure nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.If you think configure made a mistake…...
解读《人工智能指数报告 2025》:洞察 AI 发展新态势
美国斯坦福大学 “以人为本人工智能研究院”(HAI)近日发布的第八版《人工智能指数报告》(AI Index Report 2025)备受全球瞩目。自 2017 年首次发布以来,该报告一直为政策制定者、研究人员、企业高管和公众提供准确、严…...