news 2026/9/24 18:55:45

HTTP与HTTPS区别详解:加密原理、证书信任与实战排障

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HTTP与HTTPS区别详解:加密原理、证书信任与实战排障

刚入行的朋友最常问我的一个问题,多半是“HTTP 和 HTTPS 到底有什么区别?”要是放到两三年前,我可能会甩一句“HTTPS 就是加密版的 HTTP”,然后让对方自己去看文档。但现在在网络安全这个行当里混久了,我越发现这个“加密版”三个字背后,藏着整套协议设计逻辑、密码学原理、证书信任体系,以及一堆平时不踩不知道的坑。不管是做开发调试、接口联调、抓包分析,还是做安全评估、渗透测试、以及写自动化脚本,如果连 HTTP 和 HTTPS 的底层差异都没搞透,你连一个 502 报错都未必能定位准确,更别说判断证书链、回话劫持这类问题了。

这篇内容我不打算写成教科书式的协议长文,而是按我实际工作里反复用到、反复踩坑的经验来拆。目标很明确:搞清楚 HTTP 与 HTTPS 的本质区别,知道 HTTPS 到底加密了哪些内容、没加密哪些内容,在实际开发、调试、安全测试中怎么判断、怎么选型、怎么排查。你如果在做网络开发、接口调试、安全测试相关的工作,或者正在补网络安全的基础内容,这篇应该能帮你省不少踩坑的时间。

1. HTTP 与 HTTPS 的底层差异:不只是加了一把锁

很多人对 HTTP 和 HTTPS 的理解,停留在“地址栏有没有那把锁”“端口是 80 还是 443”这个层面。这两点确实是最直观的区别,但如果你只记住这两个表象,后面遇到“为什么 HTTPS 抓包看不到明文”“为什么证书报错还能继续访问”“为什么同样一个接口 HTTP 能通 HTTPS 就超时”这些问题时,一样会懵。所以我先从协议本身的层次讲起。

1.1 从一次抓包说起:明文协议到底暴露了什么

HTTP 的全称是 HyperText Transfer Protocol,超文本传输协议。它的核心特点是:客户端和服务器之间传输的数据,不经过任何加密处理,所有内容都以明文形式在网络中传递。这里说的“明文”,不只是你 POST 提交的表单内容,而是指完整的请求报文和响应报文,包括请求行、请求头、请求体、状态行、响应头、响应体。

我印象特别深的一次经历,是帮同事排查一个内部系统的登录问题。他坚持说密码不可能泄漏,因为系统只在公司内网跑。我直接用 Wireshark 抓了一个登录过程的包,展开 HTTP 报文里 POST 的数据,用户名、密码、甚至 Cookie 里的 SessionID 全部清清楚楚躺在那里,连 base64 都没做过一次。他当场就愣住了。这就是 HTTP 的原始形态:它假设网络环境是可信的,所有中间设备——路由器、交换机、WiFi 热点、运营商设备——都能看到并记录你的完整通信内容。

那这些暴露的内容具体会被谁看到?如果你在公网访问一个 HTTP 网站,你的请求会经过本地路由器、运营商接入层、骨干网络、目标服务器的层层转发。只要这些路径上有任何一个节点被监听,或者你连接的是一个恶意 WiFi 热点,你的账号密码、身份凭证、业务数据就全部暴露了。更麻烦的是,明文协议不只是“被动泄露”,它还给了中间人“主动篡改”的机会。中间人完全可以拦截你的请求,把收款账号替换成他自己的,再把数据原样转发给服务器。整个过程服务器端毫无感知。

很多人会觉得“我访问的都是正规大站,没人会专门攻击我”。现实情况恰恰相反,网络侧的流量监听是规模化、自动化进行的,不是针对你个人,而是批量扫描所有明文流量里的密码、Cookie、Token。所以 HTTP 在今天这个环境下,已经不适合承载任何真实业务数据,只适合那些不敏感、不涉及身份认证的场景,比如下载公开文档、访问公开信息。

1.2 TLS 在 HTTP 与 TCP 之间做了什么事

HTTPS 的全称是 HyperText Transfer Protocol Secure,翻译过来是“安全的超文本传输协议”。它并不是一个全新的应用层协议,本质上是“HTTP over TLS”。TLS 的全称是 Transport Layer Security,传输层安全协议,它的前身是 SSL。TLS 在 HTTP 和 TCP 之间插入了一个安全层,专门负责两件事:加密传输内容和验证通信双方身份。

如果你用协议分层的视角去看,传统 HTTP 的数据流向是:应用层构造 HTTP 报文,直接交给 TCP 传输。而 HTTPS 的数据流向是:应用层构造 HTTP 报文,先交给 TLS 层做加密、加 MAC 校验,再交给 TCP。TLS 层处理完之后,输出的是一串看起来没有任何规律、也没有明显结构特征的密文。这也是为什么你在 Wireshark 里抓 HTTPS 的包,永远看不到原始的请求行和请求头,只能看到 TLS 记录层的头部,以及一大段加密后的 Application Data。

这个“加一层”的设计,带来的安全收益是巨大的。具体来说有三点。第一,机密性:所有请求和响应内容都经过对称加密,中间人截获到密文后无法还原原文。第二,完整性:TLS 记录协议会对每一条数据做消息认证码校验,只要数据在传输中被改动一个比特,接收方就能检测出来并断开会话。第三,身份验证:客户端通过数字证书验证服务器的真实身份,防止访问到仿冒站点。

但这里必须说清楚一个容易误解的点:HTTPS 加密的是“传输过程中的数据”,不是“服务器上存的数据”,也不是“浏览器渲染之后页面里的数据”。很多人以为上了 HTTPS 就万事大吉,结果数据库被拖库、日志里明文记录密码、前端代码里硬编码密钥,这些安全问题 HTTPS 一概管不了。这也是我面试新人时必问的一个问题:HTTPS 保护的是链路,不是终端。

2. HTTPS 的连接建立与加密流程:握手过程中发生了什么

光知道 HTTPS 是 HTTP 加了个加密层还不够,你得知道这个加密层是怎么工作的。不然你没法理解为什么第一次访问一个 HTTPS 站点会比 HTTP 慢一些,也没法理解为什么自签名证书会报错,更没法理解为什么抓包工具能“解密”HTTPS 流量。这一节我把 TLS 握手的关键环节拆开讲。

2.1 TLS 握手核心环节与加密套件选择

TLS 握手的目标,是在客户端和服务器之间安全地协商出一把“会话密钥”,之后所有应用数据都用这把密钥配合对称加密算法来加密。为什么要用对称加密而不是全程用非对称加密?原因很简单:非对称加密慢,而且对数据长度有较大限制。公钥加密适合用来加密一小段密钥材料,不适合直接加密整个 HTTP 报文。所以 TLS 的通用做法是“混合加密”:握手阶段用非对称加密(或密钥交换算法)协商密钥,通信阶段用对称加密处理海量业务数据。

拿目前主流配置举例,客户端发出 ClientHello,携带它支持的 TLS 版本、加密套件列表和一个随机数。服务器收到后回应 ServerHello,选定加密套件,附上自己的随机数和数字证书。客户端验证证书有效之后,根据加密套件的类型,生成一个预主密钥(Pre-Master Secret),用服务器的公钥加密后发给服务器。到这里,客户端和服务器双方都拿到了两个随机数加一个预主密钥,分别计算出相同的会话密钥。随后双方互发 Finished 消息,握手完成,之后进入加密通信阶段。

这里有个细节值得展开。常见的密钥交换方式有两种:RSA 密钥交换和 ECDHE 密钥交换。RSA 时代的方式是客户端生成预主密钥,直接拿服务器公钥加密传过去,如果服务器私钥泄漏,历史流量全部能被解密,这叫“前向保密”缺失。ECDHE 方式是双方各自生成临时私钥,通过椭圆曲线 Diffie-Hellman 算法协商出相同的预主密钥,即使服务器长期私钥泄漏,过去的会话也无法被还原,因为临时私钥是一次性的、协商过程不传输预主密钥本身。现在主流配置基本都是 TLS 1.3 强制要求的 ECDHE,但你在老系统上、或者做安全评估的时候,仍然会看到 RSA 密钥交换的加密套件,这时候要能识别出来并给出加固建议。

2.2 数字证书校验这条链路为什么不能跳过

数字证书在 HTTPS 里的作用,是解决“你正在跟谁说话”这个信任问题。没有证书体系的话,不断可以有人冒充服务器。你输入 bank.example.com,如果域名解析被污染,你连上的可能是一台攻击者控制的服务器,它会自己生成一个“证书”并发给你。如果没有证书校验机制,客户端就会傻傻地开始加密通信,所有敏感数据直接交给了攻击者。

数字证书的本质是一个绑定了公钥和身份信息的文件,由一个受信任的第三方机构(CA)签名。浏览器和操作系统内置了一批根证书,这些根证书对应的 CA 就是“信任锚”。校验过程是这样的:服务器下发证书链,从服务器证书到中间证书再到根证书;客户端从服务器证书开始,用上一级证书的公钥去验证下一级证书的签名,一路验证到根证书;根证书存在本地信任库里,链条是完整的,就认为服务器身份可信。同时还会检查证书域名和当前访问域名是否匹配、证书是否在有效期内、是否被吊销。

我在教学员的时候常用一个类比:根证书就像公安系统的“身份信息库”,CA 签发的证书就像身份证,服务器就是持证的人。你之所以相信眼前这个人就是对方,不是因为他的身份证长得像,而是因为你能在系统里验证这张身份证是真的。HTTPS 把整个验证过程交给系统自动完成,一旦验证不通过,浏览器就会给出警告页。在这个环节最容易犯的错有三个:自签名证书直接禁用校验、忽略域名不匹配警告、把证书有效期忽略掉。这些做法在测试环境可以理解,但如果带着这几个习惯上生产,那 HTTPS 基本等于没上。

3. 判断与选择:什么场景必须上 HTTPS,什么可以走 HTTP

讲完原理,落到实际工作。面对一个系统、一个接口、一个部署方案,到底该不该上 HTTPS?哪些场景上 HTTPS 是必须的,哪些场景用 HTTP 问题不大?这一节我从安全评估和开发调试两个角度分别说。

3.1 从安全评估角度看 HTTPS 真正保护的东西

做安全评估的时候,我遇到最多的一个诉求就是“只扫出了 HTTP 明文传输,其他没发现”。在我眼里,这已经算是一个中危问题了。因为 HTTP 明文传输,直接把 Cookie 明文暴露在网络链路上,攻击者只要能旁路监听网络流量,就能直接提取 SessionID,完成会话劫持。不需要高超的技术,不需要 0day,只需要一段抓包脚本就能做到。而且很多人在内网系统里开关了 HTTPS,原因无非是“内网安全”“证书麻烦”,这种侥幸心态在实战里被打脸的案例太多了。

不过话说回来,也有场景确实不用强上 HTTPS。比如纯静态的公开资源,没有登录态、没有用户数据、没有敏感信息,用 HTTP 加载虽然不体面,但风险确实可控。又比如局域网内的设备管理接口,设备只在自己私有网段内提供服务,外部访问不进来,这时候很多厂商就默认用 HTTP。再有就是某些高性能内部服务,对延迟极其敏感,且网络链路完全可控,用 HTTP 减少 TLS 握手开销也是合理的工程取舍。判断标准很简单:只要流量里出现过一次 Cookie、Token、密码、手机号、身份证号中的任意一种,就必须上 HTTPS,没有例外。

从渗透测试的视角看,HTTPS 影响的是“能否在网络上截获和篡改数据”,但注意它并不能挡住所有攻击。很多攻击发生在应用层:SQL 注入、越权访问、逻辑漏洞,这些漏洞跟 HTTP、HTTPS 没有直接关系。HTTPS 加密之后,攻击者照样可以发起请求,只不过无法窃听和篡改链路内容。你如果抓包发现目标站点是 HTTPS,第一反应不应该是“没有明文数据可看”,而应该是“我要不要配置抓包工具的 TLS 解密,或者直接去看客户端和服务器的日志、以及流量侧能观测到的 TLS 元数据”。

3.2 开发调试环境的常见取舍

开发调试阶段,最常见的操作就是本地启动一个 HTTP 服务,然后浏览器访问 localhost。这时候用 HTTP 是没问题的,因为回环地址不经过物理链路,流量不会出本机,而且浏览器对 localhost 有特殊信任策略,允许在 HTTPS 页面里请求 HTTP 的本地接口。但本地能跑,不代表联调环境也能跑。一旦你的前端页面部署在 HTTPS 域名下,而后端接口还是 HTTP,就会出现“混合内容”问题,浏览器默认会拦截所有不安全的请求,控制台报错非常明确:was loaded over an insecure connection,this file should be served over HTTP。

另外一个高频场景是接口测试工具录制 HTTPS 脚本。以 JMeter 为例,很多第一次用它录制 HTTPS 脚本的人都会卡在一个问题上:录不到 HTTPS 的请求,或者录到了但参数是乱码。原因很简单,JMeter 要截获 HTTPS 流量,就必须在本地充当一个中间人,把自己伪装成目标服务器的证书,这就要求先在浏览器里信任 JMeter 自己生成的 CA 证书。操作步骤是:启动 JMeter 的 HTTP(S) Test Script Recorder,设置代理端口,打开浏览器配置代理指向该端口,导出并导入 JMeter 的 CA 证书到系统信任库,然后才能正常录制 HTTPS 脚本。好多人漏了导入证书这一步,结果浏览器所有 HTTPS 请求全部报错。这也是“HTTPS 证书校验链路”在实际开发里的一个典型应用:任何中间人拦截都需要客户端显式信任它的根证书,否则连接就会被拒绝。

还有一类本地常见的 HTTPS 方案是自签名证书。用 OpenSSL 生成一个自签名证书,让 Nginx 配置 443 端口监听,浏览器访问的时候会提示“您的连接不是私密连接”。很多人在这里的做法是点“继续前往”,这个体验非常差,而且会练坏“证书报错等于不安全”的条件反射。我建议本地开发用一个更稳的方案:用 mkcert 生成一个本地 CA 证书,然后把这个 CA 安装到系统信任库,mkcert 签发的 localhost 证书就能被浏览器完全信任。这样既能模拟真实的 HTTPS 环境,又不会持续无视证书告警。这种做法背后的逻辑很值得理解:你不是在“绕过”证书校验,而是在“建立”一个属于你自己的受信任 CA 环境,和真实服务器环境的信任机制完全一致。

4. 实战中的坑与排查实录

理论讲完,来看真刀真枪的排障环节。写这篇时我把最近半年碰到过的、跟 HTTPS 直接相关的线上问题整理了一遍,挑了几个有代表性的写成速查表,方便你以后遇到类似报错的时候快速对照。

4.1 混合内容、证书过期带来的访问异常

浏览器端最常见的 HTTPS 相关问题是混合内容。就是页面本身通过 HTTPS 加载,但页面里引用的图片、脚本、样式、接口地址却是 HTTP。现代浏览器对这个非常敏感,因为一旦允许 HTTPS 页面加载 HTTP 子资源,中间人就能篡改 JS 或者 HTML,之前所有加密保护全部白费。解决方法是全局搜索代码里的 http:// 引用,改成 https:// 或改用协议相对地址。排查的时候建议直接打开开发者工具的 Console 面板,浏览器会明确告诉你是哪个资源被拦截了,按图索骥就行。

证书过期是另一个高频问题。很多团队习惯于让证书自动续期,但有些内网系统是离线部署的,没有外网连接受不了 ACME 自动续期,证书到期之后服务照常运行,但客户端全部报错。这类问题的特点是:不是服务挂了,而是“从某个时间点开始突然访问不了”。排查时首先看一下客户端报错里的时间提示,比如证书有效期是从哪年到哪年,确认是不是过期;再检查服务器上证书文件的实际有效期,命令是 openssl x509 -in 证书路径 -noout -dates,能直接读出证书的开始和结束时间。服务器时间被改错也是一个常见诱因,证书校验本来就依赖本机时间判断有效期,如果服务器时间超前或滞后太多,也会产生“证书无效”的假报错。

4.2 502、握手超时等常见报错的排查思路

“502 Bad Gateway”是我遇到的最高频的报错之一。这个状态码本身的意思是:网关或代理服务器收到了上游服务器的无效响应。它跟 HTTPS 的关系很复杂。如果客户端访问的是一个 HTTPS 站点,502 实际发生在代理服务器和后端服务器之间。代理服务器能正常完成和客户端的 TLS 握手,但转发给上游时,上游没有给出合法响应,或者上游本身连接失败。常见的底层原因包括:后端服务崩溃、连接池耗尽、后端响应超时、代理转发配置错误、证书不匹配导致代理到上游的 TLS 握手失败。

有一次线上排查,前端报 502,后端服务看起来还活着,日志没有异常。我翻代理层配置才发现,Nginx 里配置的反向代理上游地址是 http://后端服务:端口,但后端服务本身已经切换到了 HTTPS,Nginx 还按 HTTP 去转发,结果就是 502。把上游协议改成 https,并配上正确的证书配置后,立即恢复。这类问题提醒我一个关键点:502 只是表象,真正的问题往往藏在你以为配置已经很熟悉的那一层。排查 502 的时候不要只看应用日志,一定要从客户端到代理层,再到上游服务,把整条链路捋一遍,每一段的连接状态、TLS 握手状态、请求转发改没改协议,逐个确认。

另外一类容易误判的是“HTTPS 握手超时”。这种问题在公网环境多一点,常见原因有:服务器 TLS 握手处理慢、防火墙或安全组丢包、中间设备对 TLS 流量做了深度检测导致延迟、客户端和服务器支持的 TLS 版本不兼容。排查时要分清是 TCP 层就连不上(端口不通),还是 TCP 通了但 TLS 层卡住(证书协商失败)。用命令行工具可以快速区分:curl -v https://域名 能看到每一步的耗时和状态,openssl s_client -connect 域名:443 能直接测试 TLS 握手是否正常。这两个命令是我排障工具箱里的常备工具,比一上来就开抓包效率高很多。

4.3 性能开销与优化建议

最后聊一下性能。很多人对 HTTPS 的最大顾虑,是加密解密带来的额外开销。这种担心在十年前有道理,但在今天,CPU 处理 AES 对称加密的速度非常快,绝大多数场景下 HTTPS 的加解密开销只占服务端资源的很小一部分。真正的性能开销主要开销在三个方面:TLS 握手增加的网络往返次数、加解密占用的 CPU、以及握手所需的证书与密钥运算。

TLS 1.2 的一次完整握手通常需要两次往返,再加上 TCP 握手的一次往返,首次连接比 HTTP 多两次往返延迟。这个在高延迟网络(比如跨地域公网)下体感明显。TLS 1.3 把握手压缩到一次往返,连接复用场景下甚至可以做到 0-RTT,这也是我建议生产环境尽量升级到 TLS 1.3 的原因。另外就是会话复用机制:TLS Session ID 和 Session Ticket 允许客户端在短时间内复用之前协商的会话密钥,避免每次新建连接都进行完整握手。做过负载均衡的朋友要特别注意,如果后端有多台服务器,必须把 Session Ticket 的密钥在所有节点上保持一致,否则客户端每次请求落到不同服务器上都得重新握手,会话复用就失效了。

服务端也可以减少一层“非对称加密运算”。在 ECDHE 密钥交换模式下,每次新建握手都会做椭圆曲线点乘计算,CPU 消耗集中在这里。普通的 Web 服务压测下来,TPS 损失一般不超过 10%,用现代 CPU 根本不用担心。但如果你用的是性能很弱的嵌入式设备,或者 MCU 级别的硬件,比如 STM32 这类芯片要做 HTTPS 通信,那就得算一笔成本账了,硬件加速单元、内存占用、握手时间都要提前评估,网上常搜到的“stm32 http库”通常默认不带 TLS,想要 HTTPS 就得单独引入 mbedTLS 这类库,并裁剪加密套件、证书存储方式,否则内存直接爆掉。

5. 随手可用的排障速查表

为了方便以后直接对照,我把上面提到的关键问题整理成一张表,建议收藏。

现象可能原因排查命令/工具解决思路
浏览器提示连接不是私密连接证书过期、域名不匹配、自签名证书不受信任、系统时间错误openssl x509 -in 证书路径 -noout -dates;检查系统时间更新证书、重新签发匹配域名的证书、安装正确的 CA 证书并调准时间
HTTPS 页面里图片/脚本加载失败混合内容被浏览器拦截浏览器控制台 Console 面板看具体报错把子资源从 HTTP 改成 HTTPS,批量替换代码里的 http://
接口返回 502 Bad Gateway代理转发协议错误、上游服务挂掉、上游响应超时curl -v 目标地址;检查 Nginx/网关的 upstream 协议配置确认上游协议是 HTTP 还是 HTTPS,检查后端服务存活状态
HTTPS 握手超时防火墙拦截、TLS 版本不兼容、中间设备检测导致延迟openssl s_client -connect 域名:443 -servername 域名 -tls1_2打通网络策略,统一 TLS 版本,必要时绕过中间检测设备测试
JMeter 录不到 HTTPS 请求缺少 JMeter CA 证书信任浏览器代理配置、证书导入状态导出 JMeter 的 CA 证书并安装到系统信任库
openssl/curl 命令报错证书校验失败使用了自签名证书访问线上域名openssl s_client -connect 域名:443 -servername 域名检查证书链是否完整、证书是否被信任,必要时加上 -k 临时测试但生产不要用

这里再补充一个容易忽略的点:客户端开发里常见的 Docker 拉取镜像报错(比如 error response from daemon: get “https://registry-1.docker.io/v2/”: net/http 这类),本质上也是 HTTPS 链路问题,通常是网络代理配置错误、证书不被 Docker 信任、或者连通性异常导致的。看到 network 报错先别急着重试,先确认本机到目标域名的 TCP 和 TLS 链路是否正常,再检查仓库镜像配置。

6. 结束之前的一些大实话

写到最后,我想多说两句。这两年我接触过不少刚开始学网络安全的年轻人,他们很容易陷入一种误区:觉得只要把工具玩得飞起、拿到 shell、提权成功就万事大吉。但实际上,网络安全的地基恰恰是 HTTP、HTTPS、TCP/IP 这些看似基础的内容。你把报文的生命周期理解透了,把 TLS 握手每一步做什么搞明白了,后面学安全工具、做漏洞分析、写自动化脚本都会顺畅得多。反过来,如果基础不牢,看到一个 HTTPS 站点就不知道怎么入手,抓包看到 TLS 密文就束手无策,那工具再多也只是纸上谈兵。

最后再分享一个我自己的习惯:遇到任何协议相关的报错,先把“客户端、代理、服务器”这条链路画出来,然后逐层确认 TCP 通不通、TLS 握手成不成、HTTP 业务数据对不对。90% 以上的网络问题都能靠这套三板斧定位到具体某一层。这篇如果对你有一点帮助,希望你能收藏起来,遇到 HTTPS 相关问题翻出来对照排查。也欢迎你带着实际遇到的报错来交流,说不定你踩到的坑,就是下一篇排障文章的主角。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 18:55:45

SpringBoot图形验证码从生成到校验的完整实战指南

做一个图形验证码,是每个 Web 开发者迟早都要面对的需求。登录、注册、发帖、秒杀、支付确认,几乎只要有用户输入和接口调用的地方,就能看到它的影子。SpringBoot 因为起步快、生态好,成了很多人实现这个功能的首选框架&#xff0…

作者头像 李华
网站建设 2026/9/24 18:55:43

Bun实测:一个运行时搞定全栈开发,内置打包测试SQLite与Redis

每年都会冒出一个号称"重新定义开发体验"的新工具,但大部分更新日志翻两页就乏了。直到这轮前端全栈工具链卷到 Bundler、测试框架、数据库驱动全部要重新选型的时候,Bun 的重磅发布确实让我停下手上的活,实打实跑了几个样例。这个…

作者头像 李华
网站建设 2026/9/24 18:55:02

手机CMOS传感器工程速查指南:从信号链到物理特性的深度解析

1. 这份CMOS天梯表不是“排行榜”,而是手机影像工程师的现场排查手册你手里的那台新旗舰,主摄标称“IMX989”,但实测夜景发灰、高光溢出严重;隔壁同事的旧款机型,参数表里写着“IMX766”,拍人像却意外地有胶…

作者头像 李华
网站建设 2026/9/24 18:53:39

设计工作流重构:从Figma到开源工具的工程化跃迁

1. 这不是“换工具”的选择题,而是设计工作流的重构起点你最近是不是也刷到过类似标题?“Figma已死”“开源设计工具崛起”“设计师该不该逃离Figma”……这类内容在设计社区里反复出现,像潮水一样涨落。但说实话,我过去三年深度参…

作者头像 李华
网站建设 2026/9/24 18:52:57

基于Java开发的小程序地图定位:从后端签名到前端选点完整链路

简介:这是一份面向Java后端开发者与小程序入门者的实战型项目源码,围绕「小程序地图定位」这一常见移动场景,演示如何用Java技术栈配合前端完成位置服务。资源共38个文件,以15张png界面截图与图标、6个js逻辑脚本、5个wxss样式、4…

作者头像 李华
网站建设 2026/9/24 18:52:53

OpenClaw实战:从零搭建本地AI Agent数据分析与可视化工作流

这个项目在我自己的AI Agent实践系列里排第16节,主题是OpenClaw数据分析与可视化。说白了,就是把过去需要手工打开Jupyter、写Python脚本、一个个改图表参数的活儿,交给一个本地部署的Agent来干:你说需求,它拆步骤&…

作者头像 李华