最新资讯

  • 【在Linux世界中追寻伟大的One Piece】HTTP cookie

【在Linux世界中追寻伟大的One Piece】HTTP cookie

2025-04-29 18:01:03 0 阅读

目录

1 -> 引入HTTP cookie

1.1 -> 定义

1.2 -> 工作原理

1.3 -> 分类

1.4 -> 安全性

2 -> 认识cookie

2.1 -> 基本格式 

2.2 -> GMT vs UTC

3 -> cookie的生命周期

3.1 -> 安全性考虑

3.2 -> 安全测试cookie

3.2.1 -> 测试cookie写入浏览器 

3.2.2 -> 测试自动提交

3.2.3 -> 测试写入过期时间

3.2.4 -> 测试路径path

4 -> 单独使用Cookie会存在什么问题


1 -> 引入HTTP cookie

1.1 -> 定义

HTTP Cookie(也称为Web Cookie、浏览器Cookie或简称Cookie)是服务器发送到用户浏览器并保存在浏览器上的一小块数据,它会在浏览器之后向同一服务器再次发送请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态、记录用户偏好等。

1.2 -> 工作原理

  • 当用户第一次访问网站时,服务器会在响应的HTTP头中设置Set-Cookie字段,用于发送Cookie到用户的浏览器。
  • 浏览器在接收到Cookie后,会将其保存在本地(通常是按照域名进行存储)。
  • 在之后的请求中,浏览器会自动在HTTP请求头中携带Cookie字段,将之前保存的Cookie信息发送给服务器。

1.3 -> 分类

  • 会话Cookie(Session Cookie):在浏览器关闭时失效。
  • 持久Cookie(Persistent Cookie):带有明确的过期日期或持续时间,可以跨多个浏览器会话存在。
  • 如果cookie是一个持久性的cookie,那么它其实就是浏览器相关的,特定目录下的一个文件。但直接查看这些文件可能会看到乱码或无法读取的内容,因为cookie文件通常以二进制或sqlite格式存储。一般我们查看,直接在浏览器对应的选项中直接查看即可。

类似下面这种方式:

1.4 -> 安全性

由于Cookie是存储在客户端的,因此存在被篡改或窃取的风险。 

用途

  • 用户认证和会话管理(最重要)
  • 跟踪用户行为
  • 缓存用户偏好等
  • 比如在chrome浏览器下,可以直接访问:chrome://settings/cookies

2 -> 认识cookie

  • HTTP存在一个报头选项:Set-Cookie,可以用来进行给浏览器设置Cookie值。
  • 在HTTP响应头中添加,客户端(如浏览器)获取并自行设置并保存Cookie。

2.1 -> 基本格式 

Set - Cookie: < name >=
其中:
是Cookie的名称,是Cookie的值。

完整的Set - Cookie

Set - Cookie: username = zzl; expires = Thu, 5 Dec 2024 12:00:00
UTC; path = / ; domain = .example.com; secure; HttpOnly

时间格式必须遵守RFC 1123标准,具体格式样例:Tue, 01 Jan 2030 12:34:56 GMT或者UTC(推荐)。

关于时间解释

  • Tue:星期二(星期几的缩写)
  • ,:逗号分隔符
  • 01:日期(两位数表示)
  • Jan:一月(月份的缩写)
  • 2030:年份(四位数)
  • 12:34:56:时间(小时、分钟、秒)
  • GMT:格林威治标准时间(时区缩写)

2.2 -> GMT vs UTC

GMT(格林威治标准时间)和 UTC(协调世界时)是两个不同的时间标准,但它们在大多数情况下非常接近,常常被混淆。以下是两者的简单解释和区别:

1. GMT(格林威治标准时间):

  • GMT是格林威治标准时间的缩写,它是以英国伦敦的格林威治区为基准的世界时间标准。
  • GMT不受夏令时或其他因素的影响,通常用于航海、航空、科学、天文等领域。
  • GMT的计算方式是基于地球的自转和公转。

2. UTC(协调世界时):

  • UTC全称为“协调世界时”,是国际电信联盟(ITU)制定和维护的标准时间。
  • UTC的计算方式是基于原子钟,而不是地球的自转,因此它比GMT更准确。据称,世界上最精确的原子钟50亿年才会误差1秒。
  • UTC是现在用的时间标准,多数全球性的网络和软件系统将其作为标准时间。

GMT和UTC的英文全称以及相关信息如下:

1. GMT(格林威治标准时间)

  • 英文全称:Greenwich Mean Time
  • GMT是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义为通过那里的经线。理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时的时间。
  • 但值得注意的是,地球的自转是有些不规则的,且正在缓慢减速。因此,格林尼治时间已经不再被作为标准时间使用。

2. UTC(协调世界时)

英文全称:Coordinated Universal Time

  • UTC是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间。
  • UTC被广泛使用在计算机网络、航空航天等领域,因为它提供了非常准确和可靠的时间参考。

总结来说,GMT和UTC都曾是或现在是国际上重要的时间标准,但由于地球自转的不规则性和原子钟的精确性,UTC已经成为了全球性的标准时间,而GMT则更多被用作历史和地理上的参考。

区别:

  • 计算方式:GMT基于地球的自转和公转,而UTC基于原子钟。
  • 准确度:由于UTC基于原子钟,它比基于地球自转的GMT更加精确。

在实际使用中,GMT和UTC之间的差别通常很小,大多数情况下可以交换使用。但在需要高精度时间计量的场合,如科学研究、网络通信等,UTC是更为准确的选择。

关于其他可选属性的解释

  • expires=[要验证]:设置Cookie的过期时期/时间。如果未指定此属性,则Cookie默认为会话Cookie,即当浏览器关闭时过期。
  • path=[要验证]:限制Cookie发送到服务器的哪些路径。默认为设置它的路径。
  • domain=:指定哪些主机可以接受该Cookie。默认为设置它的主机。
  • secure:仅当使用HTTPS协议时才发送Cookie。这有助于防止Cookie在不安全的HTTP连接中被截获。
  • HttpOnly:标记Cookie为HttpOnly,意味着该Cookie不能被客户端脚本(如JavaScript)访问。这有助于防止跨站脚本攻击(XSS)。

以下是对Set-Cookie头部字段的简洁介绍

属性描述
usernamezzl这是Cookie的名称和值,标识用户名为“zzl”。
expiresThu,5 Dec 2024 12:00:00 UTC指定Cookie的过期时间。在这个例子中,Cookie将在2024年12月5日12:00:00 UTC后过期。
path/定义Cookie的作用范围。这里设置的根路径为/,意味着Cookie对.example.com域名下的所有路径都可以用。
domain.example.com指定哪些域名可以接收这个Cookie。点前缀(.)表示包括所有的子域名。
secure-指示Cookie只能通过HTTPS协议发送,不能通过HTTP协议发送,增加安全性。
HttpOnly-阻止客户端脚本(如JavaScript)访问此Cookie,有助于防止跨站脚本攻击(XSS)。

注意:

  • 每个Cookie属性都以分号(;)和空格( )分割。
  • 名称和值之间使用等号(=)分隔。
  • 如果Cookie的名称或值包含特殊字符(如空格、分号、逗号等),则需要进行URL编码。

3 -> cookie的生命周期

  • 如果设置了expires属性,则Cookie将在指定的日期/时间后过期。
  • 如果没有设置expires属性,则Cookie默认为会话Cookie,即当浏览器关闭时过期。

3.1 -> 安全性考虑

安全性考虑

  • 使用secure标志可以确保Cookie仅在HTTPS连接上发送,从而提高安全性。
  • 使用HttpOnly标志可以防止客户端脚本(如JavaScript)访问Cookie,从而防止XSS攻击。
  • 通过合理设置Set-Cookie的格式和属性,可以确保Cookie的安全性、有效性和可访问性,从而满足Web应用程序的需求。

3.2 -> 安全测试cookie

Comm.hpp HttpProtocol.hpp InetAddr.hpp LockGuard.hpp Log.hpp
Main.cc Makefile Socket.hpp TcpServer.hpp Thread.hpp
ThreadPool.hpp

3.2.1 -> 测试cookie写入浏览器 

3.2.2 -> 测试自动提交

  • 刷新浏览器,刚刚写入的cookie会自动被提交给服务器端。

3.2.3 -> 测试写入过期时间

  •  这里要自己形成UTC统一标准时间,以下是C++代码。

std::string GetMonthName(int month)
{
	std::vector months = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };

	return months[month];
}

std::string GetWeekDayName(int day)
{
	std::vector weekdays = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
	return weekdays[day];
}

std::string ExpireTimeUseRfc1123(int t) // 秒级别的未来 UTC 时间
{
	time_t timeout = time(nullptr) + t;

	// 这个地方有坑哦
	struct tm* tm = gmtime(&timeout); // 这里不能用 localtime,因为localtime是默认带了时区的.gmtime 获取的就是 UTC 统一时间
	char timebuffer[1024];

	//时间格式如: expires=Thu, 18 Dec 2024 12:00:00 UTC
	snprintf(timebuffer, sizeof(timebuffer),
		"%s, %02d %s %d %02d:%02d:%02d UTC",
		GetWeekDayName(tm->tm_wday).c_str(),
		tm->tm_mday,
		GetMonthName(tm->tm_mon).c_str(),
		tm->tm_year + 1900,
		tm->tm_hour,
		tm->tm_min,
		tm->tm_sec
	);

	return timebuffer;
}

3.2.4 -> 测试路径path

提交到非/a/b路径下

  • 比如:http://8.137.19.140:8888/a/x
  • 比如:http://8.137.19.140:8888/
  • 比如:http://8.137.19.140:8888/x/y

提交到/a/b路径下

核心代码:

class Http
{
private:
	std::string GetMonthName(int month)
	{
		std::vector months = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
		return months[month];
	}

	std::string GetWeekDayName(int day)
	{
		std::vector weekdays = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
		return weekdays[day];
	}

	std::string ExpireTimeUseRfc1123(int t) // 秒级别的未来UTC时间
	{
		time_t timeout = time(nullptr) + t;
		struct tm* tm = gmtime(&timeout); // 这里不能用localtime,因为localtime是默认带了时区的.gmtime 获取的就是 UTC 统一时间
			char timebuffer[1024];
		//时间格式如: expires=Thu, 18 Dec 2024 12:00:00 UTC
		snprintf(timebuffer, sizeof(timebuffer),
			"%s, %02d %s %d %02d:%02d:%02d UTC",
			GetWeekDayName(tm->tm_wday).c_str(),
			tm->tm_mday,
			GetMonthName(tm->tm_mon).c_str(),
			tm->tm_year + 1900,
			tm->tm_hour,
			tm->tm_min,
			tm->tm_sec
		);

		return timebuffer;
	}

public:
	Http(uint16_t port)
	{
		_tsvr = std::make_unique(port,
			std::bind(&Http::HandlerHttp, this, std::placeholders::_1));
		_tsvr->Init();
	}

	std::string ProveCookieWrite() // 证明 cookie 能被写入浏览器
	{
		return "Set-Cookie: username=zhangsan;";
	}

	std::string ProveCookieTimeOut()
	{
		return "Set-Cookie: username=zhangsan; expires=" +
			ExpireTimeUseRfc1123(60) + ";"; // 让 cookie 1min 后过期
	}

	std::string ProvePath()
	{
		return "Set-Cookie: username=zhangsan; path=/a/b;";
	}

	std::string HandlerHttp(std::string request)
	{
		HttpRequest req;
		req.Deserialize(request);
		req.DebugHttp();
		lg.LogMessage(Debug, "%s
",
			ExpireTimeUseRfc1123(60).c_str());
		HttpResponse resp;
		resp.SetCode(200);
		resp.SetDesc("OK");
		resp.AddHeader("Content-Type: text/html");

		//resp.AddHeader(ProveCookieWrite()); //测试 cookie 被写入与自动提交
		//resp.AddHeader(ProveCookieTimeOut()); //测试过期时间的写入
		resp.AddHeader(ProvePath()); // 测试路径
		resp.AddContent("

helloworld

"); return resp.Serialize(); } void Run() { _tsvr->Start(); } ~Http() {} private: std::unique_ptr _tsvr; };

4 -> 单独使用Cookie会存在什么问题

  1. 安全性问题:Cookie中的数据是以明文形式传输的,这意味着在网络传输过程中,数据可能会被截取或篡改。例如,在购物场景中,如果Cookie包含了应付款项等敏感信息,攻击者可以通过在Cookie传回到服务器之前将付款值改小的操作来达到非法目的。此外,存储于本地的密码等敏感信息也可能被钓鱼网站的服务器暴力获取。 
  2. 隐私问题:一些网站可能会利用Cookie来跟踪用户的浏览行为,这可能会涉及到用户的隐私问题。例如,某些网站可能会通过Cookie来记录用户的浏览历史,以便进行针对性的广告推送等操作。 
  3. 数据完整性问题:由于Cookie存储在客户端,用户可以通过浏览器的设置来修改或删除Cookie,这可能会导致数据的完整性受到影响。例如,如果用户修改了Cookie中的某些关键信息,可能会导致服务器无法正确识别用户的身份或状态。 
  4. 性能问题:Cookie会被附加在每个HTTP请求中,这无形中增加了网络流量,尤其是当Cookie数据量较大时,可能会对网络性能产生一定的影响。 
  5. 存储限制问题:Cookie的大小通常有限制(一般在4KB左右),对于一些复杂的存储需求来说可能不够用。例如,如果需要在客户端存储大量的用户数据或者复杂的应用状态信息,Cookie可能无法满足需求。

为了解决这些问题,通常会结合使用Cookie和Session等其他技术。Session将信息默认存储在服务端数据库的表中,而只给浏览器返回一把解锁Session的钥匙(即Session ID),这样可以在一定程度上提高数据的安全性和完整性,同时也能更好地管理用户的会话状态。 


感谢各位大佬支持!!!

互三啦!!!

本文地址:https://www.vps345.com/5717.html

搜索文章

Tags

PV计算 带宽计算 流量带宽 服务器带宽 上行带宽 上行速率 什么是上行带宽? CC攻击 攻击怎么办 流量攻击 DDOS攻击 服务器被攻击怎么办 源IP 服务器 linux 运维 游戏 云计算 javascript 前端 chrome edge 阿里云 网络 网络安全 网络协议 llama 算法 opencv 自然语言处理 神经网络 语言模型 ssh ubuntu deepseek Ollama 模型联网 API CherryStudio python MCP 进程 操作系统 进程控制 Ubuntu harmonyos 华为 开发语言 typescript 计算机网络 数据库 centos oracle 关系型 安全 分布式 numpy adb nginx 监控 自动化运维 智能路由器 外网访问 内网穿透 端口映射 django fastapi flask web3.py github 创意 社区 tcp/ip flutter Hyper-V WinRM TrustedHosts RTSP xop RTP RTSPServer 推流 视频 笔记 C 环境变量 进程地址空间 react.js 前端面试题 node.js 持续部署 ssl java ollama ai 人工智能 llm php android Dell R750XS 科技 个人开发 udp unity rust http 深度学习 YOLO 目标检测 计算机视觉 macos mcp mcp-proxy mcp-inspector fastapi-mcp agent sse pycharm ide pytorch dubbo .netcore Docker Compose docker compose docker-compose 运维开发 docker 容器 kamailio sip VoIP 面试 性能优化 jdk intellij-idea 架构 websocket .net 统信 国产操作系统 虚拟机安装 前端框架 openEuler unity3d golang 后端 gitlab mysql 低代码 jmeter 软件测试 HCIE 数通 大模型微调 c++ 多线程服务器 Linux网络编程 机器学习 android studio gateway Clion Nova ResharperC++引擎 Centos7 远程开发 向日葵 conda pillow live555 rtsp rtp json html5 firefox sqlserver visualstudio windows 大数据 大数据平台 WSL win11 无法解析服务器的名称或地址 开源 Cline web安全 Kali Linux 黑客 渗透测试 信息收集 tomcat vim YOLOv12 kubernetes 学习方法 经验分享 程序人生 交互 微信 微信分享 鸿蒙 Image wxopensdk vscode 代码调试 ipdb asm c# Qwen2.5-coder 离线部署 springsecurity6 oauth2 授权服务器 token sas DeepSeek-R1 API接口 mongodb Flask FastAPI Waitress Gunicorn uWSGI Uvicorn c语言 prometheus 自动化 kvm 无桌面 命令行 串口服务器 媒体 微信公众平台 3d YOLOv8 NPU Atlas800 A300I pro asi_bench 嵌入式 linux驱动开发 arm开发 嵌入式硬件 HarmonyOS Next DigitalOcean GPU服务器购买 GPU服务器哪里有 GPU服务器 apache matlab Deepseek mount挂载磁盘 wrong fs type LVM挂载磁盘 Centos7.9 av1 电视盒子 机顶盒ROM 魔百盒刷机 搜索引擎 数学建模 qt stm32项目 单片机 stm32 ollama下载加速 大模型 云原生 rabbitmq es jvm AI编程 dell服务器 go 代理模式 IIS .net core Hosting Bundle .NET Framework vs2022 html 蓝耘科技 元生代平台工作流 ComfyUI 集成学习 集成测试 软件工程 oceanbase rc.local 开机自启 systemd 麒麟 ecm bpm jenkins gitee spring boot chatgpt llama3 Chatglm 开源大模型 VMware安装Ubuntu Ubuntu安装k8s k8s mysql离线安装 ubuntu22.04 mysql8.0 kylin 深度优先 图论 并集查找 换根法 树上倍增 ddos elasticsearch 宝塔面板访问不了 宝塔面板网站访问不了 宝塔面板怎么配置网站能访问 宝塔面板配置ip访问 宝塔面板配置域名访问教程 宝塔面板配置教程 zotero WebDAV 同步失败 ansible playbook ffmpeg 音视频 java-ee 温湿度数据上传到服务器 Arduino HTTP AI 爬虫 数据集 vue.js audio vue音乐播放器 vue播放音频文件 Audio音频播放器自定义样式 播放暂停进度条音量调节快进快退 自定义audio覆盖默认样式 bash 银河麒麟服务器操作系统 系统激活 学习 sql KingBase 博客 uni-app 银河麒麟 kylin v10 麒麟 v10 物联网 ESP32 spring postman mock mock server 模拟服务器 mock服务器 Postman内置变量 Postman随机数据 LDAP filezilla 无法连接服务器 连接被服务器拒绝 vsftpd 331/530 maven intellij idea 系统开发 binder 车载系统 framework 源码环境 腾讯云 nuxt3 vue3 实时音视频 算力 gpu算力 dify 计算机 程序员 git 机器人 华为od npm 文件系统 路径解析 sqlite TCP服务器 qt项目 qt项目实战 qt教程 openssl 密码学 k8s资源监控 annotations自动化 自动化监控 监控service 监控jvm 业界资讯 模拟退火算法 服务器管理 宝塔面板 配置教程 服务器安装 网站管理 田俊楠 国标28181 视频监控 监控接入 语音广播 流程 SIP SDP Linux PID 系统安全 code-server MQTT mosquitto 消息队列 r语言 数据挖掘 数据可视化 数据分析 word图片自动上传 word一键转存 复制word图片 复制word图文 复制word公式 粘贴word图文 粘贴word公式 根服务器 clickhouse 客户端 outlook 1024程序员节 数据库系统 MacOS录屏软件 spring cloud kafka hibernate 课程设计 银河麒麟高级服务器 外接硬盘 Kylin 国产化 测试工具 openstack VMware Xen KVM 虚拟机 TRAE 框架搭建 kind jar 同步 备份 建站 AIGC nac 802.1 portal laravel AI大模型 大模型入门 大模型教程 webrtc remote-ssh 小智AI服务端 xiaozhi ASR TTS 直流充电桩 充电桩 RAGFLOW RAG 检索增强生成 文档解析 大模型垂直应用 远程工作 junit Linux ukui 麒麟kylinos openeuler redis rust腐蚀 W5500 OLED u8g2 微服务 chfs ubuntu 16.04 医疗APP开发 app开发 zabbix 豆瓣 追剧助手 迅雷 nas 内存 其他 微信小程序 小程序 网络穿透 云服务器 ruoyi springboot 火绒安全 VPS Nuxt.js 需求分析 规格说明书 bug 负载均衡 AD域 vSphere vCenter 软件定义数据中心 sddc RTMP 应用层 jupyter https 反向代理 致远OA OA服务器 服务器磁盘扩容 CPU 主板 电源 网卡 OD机试真题 华为OD机试真题 服务器能耗统计 excel ceph express okhttp CORS 跨域 雨云 NPS 远程 命令 执行 sshpass 操作 飞书 dns Agent 孤岛惊魂4 uniapp vue DeepSeek aws googlecloud 恒源云 ci/cd tcp echarts 传统数据库升级 银行 大语言模型 LLMs Dify 单一职责原则 microsoft 服务器数据恢复 数据恢复 存储数据恢复 北亚数据恢复 oracle数据恢复 缓存 深度求索 私域 知识库 IPMITOOL BMC 硬件管理 arm opcua opcda KEPServer安装 oneapi tcpdump open webui 电脑 rocketmq JAVA Java 计算机外设 XCC Lenovo asp.net大文件上传 asp.net大文件上传下载 asp.net大文件上传源码 ASP.NET断点续传 asp.net上传文件夹 asp.net上传大文件 .net core断点续传 华为认证 网络工程师 交换机 ui 移动云 MS Materials 可信计算技术 鲲鹏 FTP 服务器 Headless Linux 企业微信 Linux24.04 deepin frp 职场和发展 debian 部署 SSL 域名 华为机试 C++ Python skynet 安全架构 报错 硬件架构 目标跟踪 OpenVINO 推理应用 AISphereButler 自定义客户端 SAS shell embedding fpga开发 华为云 springcloud zookeeper flink 驱动开发 硬件工程 嵌入式实习 springboot远程调试 java项目远程debug docker远程debug java项目远程调试 springboot远程 游戏程序 图形化界面 回显服务器 UDP的API使用 armbian u-boot LORA NLP mac 软件需求 Trae IDE AI 原生集成开发环境 Trae AI EasyConnect RustDesk自建服务器 rustdesk服务器 docker rustdesk 黑客技术 流式接口 wsl2 wsl URL 本地部署 api ftp web pyqt 微信小程序域名配置 微信小程序服务器域名 微信小程序合法域名 小程序配置业务域名 微信小程序需要域名吗 微信小程序添加域名 Kylin-Server ux 多线程 vscode1.86 1.86版本 ssh远程连接 SSE open Euler dde 统信UOS LLM Web APP Streamlit hadoop ESXi big data opensearch helm 多进程 服务器主板 AI芯片 信息与通信 ssrf 失效的访问控制 HTML audio 控件组件 vue3 audio音乐播放器 Audio标签自定义样式默认 vue3播放音频文件音效音乐 自定义audio播放器样式 播放暂停调整声音大小下载文件 MI300x WebRTC gpt openwrt selete 高级IO sysctl.conf vm.nr_hugepages adobe elk 网络编程 聊天服务器 套接字 TCP Socket eureka devops svn 支付 微信支付 开放平台 xrdp 远程桌面 远程连接 string模拟实现 深拷贝 浅拷贝 经典的string类问题 三个swap firewalld 游戏服务器 TrinityCore 魔兽世界 minio 开发环境 SSL证书 tidb GLIBC pdf 群晖 文件分享 Cookie 中间件 iis VSCode postgresql 云服务 odoo 服务器动作 Server action 雨云服务器 视觉检测 环境迁移 threejs 3D 崖山数据库 YashanDB VMware创建虚拟机 视频编解码 pip 源码剖析 rtsp实现步骤 流媒体开发 编辑器 Ubuntu 24.04.1 轻量级服务器 NFS redhat 直播推流 服务器部署ai模型 Portainer搭建 Portainer使用 Portainer使用详解 Portainer详解 Portainer portainer rsyslog Anolis nginx安装 环境安装 linux插件下载 virtualenv cpu 实时 使用 高效日志打印 串口通信日志 服务器日志 系统状态监控日志 异常记录日志 ue4 着色器 ue5 虚幻 毕设 list 数据结构 raid5数据恢复 磁盘阵列数据恢复 MacMini Mac 迷你主机 mini Apple 宠物 毕业设计 免费学习 宠物领养 宠物平台 僵尸世界大战 游戏服务器搭建 远程控制 远程看看 远程协助 银河麒麟操作系统 rpc 远程过程调用 Windows环境 prompt easyui langchain saltstack mcu C语言 ipython 三级等保 服务器审计日志备份 FTP服务器 v10 镜像源 软件 yum源切换 更换国内yum源 risc-v bootstrap 系统架构 ecmascript nextjs react reactjs 软考 DNS css 架构与原理 unix 服务器繁忙 联想开天P90Z装win10 多个客户端访问 IO多路复用 TCP相关API VR手套 数据手套 动捕手套 动捕数据手套 网络结构图 Google pay Apple pay IDEA bonding 链路聚合 命名管道 客户端与服务端通信 压力测试 策略模式 单例模式 7z tailscale derp derper 中转 网工 输入法 压测 ECS 进程信号 camera Arduino 电子信息 宕机切换 服务器宕机 数据库架构 数据管理 数据治理 数据编织 数据虚拟化 idm cursor MCP server C/S LLM windows日志 vue-i18n 国际化多语言 vue2中英文切换详细教程 如何动态加载i18n语言包 把语言json放到服务器调用 前端调用api获取语言配置文件 DOIT 四博智联 Unity Dedicated Server Host Client 无头主机 iDRAC R720xd chrome devtools selenium chromedriver 自动化测试 性能测试 功能测试 PVE 能力提升 面试宝典 技术 IT信息化 agi thingsboard XFS xfs文件系统损坏 I_O error Linux awk awk函数 awk结构 awk内置变量 awk参数 awk脚本 awk详解 WebUI DeepSeek V3 磁盘监控 iot midjourney AI写作 前后端分离 权限 相差8小时 UTC 时间 Cursor ios netty Windsurf 服务器无法访问 ip地址无法访问 无法访问宝塔面板 宝塔面板打不开 FunASR 佛山戴尔服务器维修 佛山三水服务器维修 file server http server web server minicom 串口调试工具 语法 状态管理的 UDP 服务器 Arduino RTOS yum 服务器配置 生物信息学 gitea Wi-Fi 干货分享 黑客工具 密码爆破 Spring Security 技术共享 Invalid Host allowedHosts rdp 实验 系统 黑苹果 pygame 小游戏 五子棋 gradle 王者荣耀 硬件 设备 GPU PCI-Express 执法记录仪 智能安全帽 smarteye 矩阵 线性代数 电商平台 UOS 统信操作系统 SysBench 基准测试 alias unalias 别名 ip命令 新增网卡 新增IP 启动网卡 C++软件实战问题排查经验分享 0xfeeefeee 0xcdcdcdcd 动态库加载失败 程序启动失败 程序运行权限 标准用户权限与管理员权限 ISO镜像作为本地源 mybatis 云电竞 云电脑 todesk 交叉编译 僵尸进程 Erlang OTP gen_server 热代码交换 事务语义 Open WebUI MNN Qwen ip 备份SQL Server数据库 数据库备份 傲梅企业备份网络版 音乐服务器 Navidrome 音流 transformer ping++ GaN HEMT 氮化镓 单粒子烧毁 辐射损伤 辐照效应 Minecraft GCC Linux环境 xss centos-root /dev/mapper yum clean all df -h / du -sh Docker Hub docker pull daemon.json H3C Dell HPE 联想 浪潮 京东云 freebsd pppoe radius hive Hive环境搭建 hive3环境 Hive远程模式 gaussdb 测试用例 .net mvc断点续传 AI作画 next.js 部署next.js QQ 聊天室 flash-attention ocr protobuf 序列化和反序列化 安装 AI agent c 思科模拟器 思科 Cisco 强制清理 强制删除 mac废纸篓 剧本 muduo X11 Xming 安装教程 GPU环境配置 Ubuntu22 CUDA PyTorch Anaconda安装 智能手机 社交电子 工业4.0 EMQX 通信协议 mariadb Ubuntu Server Ubuntu 22.04.5 cnn GoogLeNet 弹性计算 虚拟化 计算虚拟化 弹性裸金属 xml windwos防火墙 defender防火墙 win防火墙白名单 防火墙白名单效果 防火墙只允许指定应用上网 防火墙允许指定上网其它禁止 飞牛NAS 飞牛OS MacBook Pro 漏洞 安全威胁分析 阻塞队列 生产者消费者模型 服务器崩坏原因 5G 3GPP 卫星通信 vscode 1.86 网站搭建 serv00 jetty undertow Linux无人智慧超市 LInux多线程服务器 QT项目 LInux项目 单片机项目 grafana WSL2 微信开放平台 微信公众号配置 IPMI 远程登录 telnet Reactor 设计模式 监控k8s集群 集群内prometheus vmware 卡死 裸金属服务器 弹性裸金属服务器 p2p 重启 排查 系统重启 日志 原因 VMware安装mocOS macOS系统安装 SSH Xterminal NAS Termux Samba 备选 网站 调用 示例 银河麒麟桌面操作系统 Kylin OS DeepSeek行业应用 Heroku 网站部署 游戏机 hugo Netty 即时通信 NIO SWAT 配置文件 服务管理 网络共享 技能大赛 HTTP 服务器控制 ESP32 DeepSeek wireshark 显示过滤器 ICMP Wireshark安装 vasp安装 边缘计算 智能硬件 linux环境变量 AutoDL IIS服务器 IIS性能 日志监控 半虚拟化 硬件虚拟化 Hypervisor gpt-3 文心一言 micropython esp32 mqtt 产品经理 eNSP 网络规划 VLAN 企业网络 Radius 网络用户购物行为分析可视化平台 大数据毕业设计 navicat pgpool 状态模式 无人机 ROS 自动驾驶 实战案例 EtherNet/IP串口网关 EIP转RS485 EIP转Modbus EtherNet/IP网关协议 EIP转RS485网关 EIP串口服务器 Docker引擎已经停止 Docker无法使用 WSL进度一直是0 镜像加速地址 perf SVN Server tortoise svn 本地部署AI大模型 LInux ruby react native 线程 etcd cfssl cd 目录切换 信号处理 TCP协议 UOS1070e 游戏引擎 抗锯齿 HAProxy mamba Vmamba can 线程池 ABAP docker搭建pg docker搭建pgsql pg授权 postgresql使用 postgresql搭建 visual studio code 物联网开发 less Logstash 日志采集 Playwright CH340 串口驱动 CH341 uart 485 P2P HDLC 做raid 装系统 Java Applet URL操作 服务器建立 Socket编程 网络文件读取 linux上传下载 QT 5.12.12 QT开发环境 Ubuntu18.04 健康医疗 互联网医院 双系统 GRUB引导 Linux技巧 rustdesk 程序 编程 性能分析 bcompare Beyond Compare RAID RAID技术 磁盘 存储 模拟器 教程 MVS 海康威视相机 图像处理 升级 CVE-2024-7347 内网服务器 内网代理 内网通信 蓝桥杯 VM搭建win2012 win2012应急响应靶机搭建 攻击者获取服务器权限 上传wakaung病毒 应急响应并溯源 挖矿病毒处置 应急响应综合性靶场 autodl 政务 分布式系统 监控运维 Prometheus Grafana yaml Ultralytics 可视化 HarmonyOS 实时互动 虚拟局域网 AI代码编辑器 上传视频至服务器代码 vue3批量上传多个视频并预览 如何实现将本地视频上传到网页 element plu视频上传 ant design vue vue3本地上传视频及预览移除 wps 安卓 显卡驱动 kali 共享文件夹 大模型应用 智能音箱 智能家居 OpenSSH DevEco Studio EMUI 回退 降级 linux安装配置 安防软件 金融 端口测试 seatunnel rclone AList webdav fnOS 腾讯云大模型知识引擎 wpf ArkUI 多端开发 智慧分发 应用生态 鸿蒙OS 繁忙 解决办法 替代网站 汇总推荐 AI推理 CDN 容器技术 序列化反序列化 jina IPv4 子网掩码 公网IP 私有IP apt 匿名管道 SSH 密钥生成 SSH 公钥 私钥 生成 主从复制 数据安全 RBAC spark HistoryServer Spark YARN jobhistory 中兴光猫 换光猫 网络桥接 自己换光猫 nfs 信息可视化 网页设计 灵办AI 链表 matplotlib Linux的基础指令 composer 单元测试 产测工具框架 IMX6ULL 管理框架 wsgiref Web 服务器网关接口 iperf3 带宽测试 鸿蒙系统 Jellyfin 元服务 应用上架 safari 大大通 第三代半导体 碳化硅 TrueLicense 换源 国内源 Debian 历史版本 下载 代码 对比 工具 meld DiffMerge 昇腾 npu Windows ai工具 java-rocketmq etl ldap 开发 ardunio BLE milvus webstorm docker搭建nacos详解 docker部署nacos docker安装nacos 腾讯云搭建nacos centos7搭建nacos GIS 遥感 WebGIS 超融合 h.264 nvidia lio-sam SLAM 项目部署到linux服务器 项目部署过程 uv glibc tensorflow trae crosstool-ng 多层架构 解耦 c/c++ 串口 ubuntu24.04.1 网卡的名称修改 eth0 ens33 deekseek ragflow IO模型 cpp-httplib HiCar CarLife+ CarPlay QT RK3588 yolov8 CLion Node-Red 编程工具 流编程 web3 AI Agent 字节智能运维 rnn 用户缓冲区 网络攻击模型 模拟实现 fast curl wget 端口 查看 ss n8n 工作流 workflow deployment daemonset statefulset cronjob IMM 分析解读 SRS 流媒体 直播 读写锁 fd 文件描述符 python3.11 dash 正则表达式 dba 信号 cocoapods xcode arcgis SenseVoice MQTT协议 消息服务器 cuda 版本 sqlite3 IMX317 MIPI H265 VCU pyautogui ShenTong 开机自启动 IM即时通讯 剪切板对通 HTML FORMAT rag ragflow 源码启动 小艺 Pura X 运维监控 知识图谱 阿里云ECS Linux find grep 钉钉 代理 飞牛nas fnos swoole cudnn anaconda bot Docker 内网环境 trea idea 程序员创富 OpenManus Ubuntu22.04 开发人员主页 mq triton 模型分析 大文件分片上传断点续传及进度条 如何批量上传超大文件并显示进度 axios大文件切片上传详细教 node服务器合并切片 vue3大文件上传报错提示错误 大文件秒传跨域报错cors miniapp 真机调试 调试 debug 断点 网络API请求调试方法 AI-native Docker Desktop 小番茄C盘清理 便捷易用C盘清理工具 小番茄C盘清理的优势尽显何处? 教你深度体验小番茄C盘清理 C盘变红?!不知所措? C盘瘦身后电脑会发生什么变化? aarch64 编译安装 HPC Deepseek-R1 私有化部署 推理模型 Kali 办公自动化 自动化生成 pdf教程 xpath定位元素 bat lua 键盘 keepalived 李心怡 sonoma 自动更新 防火墙 NAT转发 NAT Server Ubuntu DeepSeek DeepSeek Ubuntu DeepSeek 本地部署 DeepSeek 知识库 DeepSeek 私有化知识库 本地部署 DeepSeek DeepSeek 私有化部署 代理服务器 强化学习 域名服务 DHCP 符号链接 配置 linux 命令 sed 命令 db gcc g++ g++13 常用命令 文本命令 目录命令 树莓派 VNC ArcTS 登录 ArcUI GridItem 设置代理 实用教程 arkUI 服务网格 istio 软链接 硬链接 SSH 服务 SSH Server OpenSSH Server 相机 企业网络规划 华为eNSP css3 自动化任务管理 sentinel 合成模型 扩散模型 图像生成 wordpress 无法访问wordpess后台 打开网站页面错乱 linux宝塔面板 wordpress更换服务器 DenseNet log4j onlyoffice OpenHarmony sdkman sequoiaDB C# MQTTS 双向认证 emqx 我的世界 我的世界联机 数码 捆绑 链接 谷歌浏览器 youtube google gmail x64 SIGSEGV xmm0 Xinference RAGFlow UDP vr Typore 图形渲染 我的世界服务器搭建 加解密 Yakit yaklang eclipse docker命令大全 带外管理 查看显卡进程 fuser ubuntu24 vivado24 服务器时间 流量运营 KylinV10 麒麟操作系统 Vmware 免费域名 域名解析 prometheus数据采集 prometheus数据模型 prometheus特点 regedit 开机启动 Linux的权限 怎么卸载MySQL MySQL怎么卸载干净 MySQL卸载重新安装教程 MySQL5.7卸载 Linux卸载MySQL8.0 如何卸载MySQL教程 MySQL卸载与安装 perl 源码 EtherCAT转Modbus ECT转Modbus协议 EtherCAT转485网关 ECT转Modbus串口网关 EtherCAT转485协议 ECT转Modbus网关 k8s集群资源管理 云原生开发 混合开发 JDK iBMC UltraISO 在线预览 xlsx xls文件 在浏览器直接打开解析xls表格 前端实现vue3打开excel 文件地址url或接口文档流二进 考研 在线office Ubuntu 24 常用命令 Ubuntu 24 Ubuntu vi 异常处理 影刀 #影刀RPA# 基础入门 lsb_release /etc/issue /proc/version uname -r 查看ubuntu版本 RoboVLM 通用机器人策略 VLA设计哲学 vlm fot robot 视觉语言动作模型 具身智能 webgl Python基础 Python教程 Python技巧 llama.cpp dns是什么 如何设置电脑dns dns应该如何设置 音乐库 飞牛 su sudo 实习 Unity插件 iventoy VmWare OpenEuler chrome 浏览器下载 chrome 下载安装 谷歌浏览器下载 大模型面经 大模型学习 私有化 AnythingLLM AnythingLLM安装 基础环境 流水线 脚本式流水线 epoll efficientVIT YOLOv8替换主干网络 TOLOv8 个人博客 MySql CrewAI uni-file-picker 拍摄从相册选择 uni.uploadFile H5上传图片 微信小程序上传图片 figma rime qemu libvirt harmonyOS面试题 并查集 leetcode 邮件APP 免费软件 金仓数据库 2025 征文 数据库平替用金仓 Ark-TS语言 高效远程协作 TrustViewer体验 跨设备操作便利 智能远程控制 rtsp服务器 rtsp server android rtsp服务 安卓rtsp服务器 移动端rtsp服务 大牛直播SDK edge浏览器 移动魔百盒 AP配网 AK配网 小程序AP配网和AK配网教程 WIFI设备配网小程序UDP开 VS Code firewall USB转串口 ssh远程登录 显示管理器 lightdm gdm AD 域管理 问题解决 grub 版本升级 扩容 网络药理学 生信 gromacs 分子动力学模拟 MD 动力学模拟 虚拟显示器 cmos 游戏开发 USB网络共享 SEO hexo ros docker run 数据卷挂载 交互模式 磁盘镜像 服务器镜像 服务器实时复制 实时文件备份 自动化编程 deepseek r1 浏览器开发 AI浏览器 ssh漏洞 ssh9.9p2 CVE-2025-23419 粘包问题 ros2 moveit 机器人运动 迁移指南 毕昇JDK Ubuntu共享文件夹 共享目录 Linux共享文件夹 proxy模式 烟花代码 烟花 元旦 iphone minecraft 本地知识库部署 DeepSeek R1 模型 iftop 网络流量监控 win服务器架设 windows server make命令 makefile文件 镜像 查询数据库服务IP地址 SQL Server 分布式训练 语音识别 fstab 环境配置 Claude dity make DBeaver 数据仓库 kerberos ubuntu20.04 开机黑屏 searxng PPI String Cytoscape CytoHubba 人工智能生成内容 Attention 沙盒 word 拓扑图 多路转接 neo4j CentOS Stream CentOS 存储维护 NetApp存储 EMC存储 项目部署 visual studio dock 加速 ranger MySQL8.0 嵌入式Linux IPC gnu Redis Desktop seleium 软件卸载 系统清理 云桌面 微软 AD域控 证书服务器 软负载 top Linux top top命令详解 top命令重点 top常用参数 西门子PLC 通讯 PX4 风扇控制软件 搭建个人相关服务器 rpa 渗透 kernel 抓包工具 宝塔 DeepSeek r1 热榜 网络建设与运维 xshell termius iterm2 数据库开发 database 欧标 OCPP js docker部署翻译组件 docker部署deepl docker搭建deepl java对接deepl 翻译组件使用 离线部署dify docker部署Python MDK 嵌入式开发工具 论文笔记 sublime text 嵌入式系统开发 nlp 信创 信创终端 中科方德 鸿蒙开发 移动开发 conda配置 conda镜像源 网络爬虫 推荐算法 智能电视 vpn 远程服务 ArkTs MacOS 稳定性 看门狗 大模型部署 ArtTS DocFlow Mac内存不够用怎么办 论文阅读 WLAN deep learning 监控k8s 监控kubernetes 服务器正确解析请求体 本地化部署 IO 玩机技巧 软件分享 软件图标 yum换源 WebVM mm-wiki搭建 linux搭建mm-wiki mm-wiki搭建与使用 mm-wiki使用 mm-wiki详解 Qwen2.5-VL vllm 增强现实 沉浸式体验 应用场景 技术实现 案例分析 AR hosts 虚幻引擎 聚类 大模型推理 HarmonyOS NEXT 原生鸿蒙 性能调优 安全代理 ai小智 语音助手 ai小智配网 ai小智教程 esp32语音助手 diy语音助手 网络搭建 神州数码 神州数码云平台 云平台 磁盘清理 powerpoint