iOS Network
文章平均质量分 87
依旧风轻
葵花成海,你在不在
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
鲜为人知的 Happy Eyeballs
Happy Eyeballs是一种优化双栈网络(IPv6/IPv4)连接速度的算法,旨在减少首包延迟并提升用户体验。其核心思想包括:1)并行获取IPv6和IPv4地址;2)交错排序地址;3)渐进式并发拨号(推荐250ms间隔);4)采用首个成功的连接并取消其他尝试。该算法解决了IPv6连接失败时传统顺序尝试导致的长时间等待问题。苹果系统(如NSURLSession)已原生支持Happy Eyeballs v2,开发者使用标准网络库即可自动受益。对于自定义实现,需注意地址排序、并发控制和连接取消等关键点。该技原创 2025-06-14 18:37:44 · 1227 阅读 · 0 评论 -
在 iOS 开发中单独解析域名为 IP
驱动,iOS 15 起官方建议迁移到 Network.framework。—— 标准、安全、跨平台;若真要用 CFHost 必须接受弃用风险。:2025 年想在 iOS 上「开箱即用地拿到 IP」,首选依旧是。优缺点:自动回调、省去线程管理;但 API 已过时且。」不会把解析结果暴露出来,因此需要主动解析一步。原创 2025-06-14 00:31:24 · 572 阅读 · 0 评论 -
服务器信任质询 (Challenge) - 你到底信不信任这台服务器?
看似只是“系统多问一句,你到底信不信任这台服务器?”,但背后承载的是PKITLS乃至你 App 用户的数据安全。真正的安全措施都在“默认正确”与“最小权限”默认让系统校验一切,只有当你非常确定要改时才介入,并且介入后要保证比系统更严格而不是更松。掌握这些基础,你就能轻松向自签环境、抓包调试甚至 SSL Pinning 过渡,也能对任何“为什么连接被取消?”作出快速诊断。愿你写出的每一行网络代码都能经得起安全审计与真实攻击的考验。原创 2025-06-06 23:58:00 · 1266 阅读 · 0 评论 -
理解了 SecTrust 你就算是入门了 ServerTrustAuthenticationChallenge
本文介绍了服务器信任认证的Swift实现方法。通过URLSessionDelegate处理服务器信任质询,详细解析了SecTrust的核心功能结构,包括证书链验证、公钥提取、策略定制和错误诊断。关键点在于SecTrust作为证书链、策略和评估状态的聚合体,需调用SecTrustEvaluateWithError进行验证。开发者可以利用这些API实现证书固定、自定义根证书等安全功能,同时避免过度信任带来的安全隐患。文章提供了实用的代码示例和结构清晰的模块分析,帮助开发者深入理解并正确实施服务器信任认证机制。原创 2025-06-08 21:10:54 · 759 阅读 · 0 评论 -
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust只是iOS网络认证体系中众多认证方式之一。文章系统介绍了6种常见认证方法:ServerTrust用于服务器证书校验,HTTPBasic用于明文认证,ClientCertificate用于双向TLS,NTLM/Negotiate用于企业单点登录。开发者必须完整处理所有可能的authenticationMethod,否则可能导致网络故障或安全隐患。示例代码展示了如何通过switch语句正确处理不同认证场景。文章强调,健壮的网络栈实现需要考虑原创 2025-06-08 20:35:09 · 656 阅读 · 0 评论 -
关于网络请求成功率, 你心中一定要有一把尺
只要你在这些区间内并持续监控、快速复原,就可以称得上一款“网络请求成功率优秀”的 iOS 应用了。同时采集「服务端成功率」+「客户端失败率」两条曲线,中间差值往往揭示了纯粹的网络问题。因此优秀应用更实际的目标是。原创 2025-05-29 23:56:17 · 415 阅读 · 0 评论 -
深入理解为什么在劫持环境下, Metrics IP 为空
借助这两个字段,你可以快速回答诸如“究竟走 Wi-Fi 还是蜂窝?”、“TCP 打到哪台机器?”之类的疑问——前提是连接已经成功完成且未被额外的隐私层隐藏。Apple Developer Forums 的示例日志和本文讨论的现象一模一样:当域名错误或握手失败时,地址字段为。只要握手失败得足够早,哪怕 443 端口是通的,Metrics 里仍然没有地址。(开始时间、握手耗时、IP 地址等)打包成一个对象,供开发者诊断网络性能。把一次 TCP/TLS 事务的各个。英, 美 ['metrɪks]原创 2025-05-29 15:05:33 · 1020 阅读 · 0 评论 -
为什么根 CA 公钥固定几乎“白做”?
根证书固定仅限于限制受信任的根证书集,但操作系统通常已信任根证书,因此根证书固定只是重复操作系统默认的信任链。在 iOS 中,根证书是信任的锚点,验证根证书相当于复制默认信任,无法有效防止恶意攻击。攻击者若通过 DigiCert 获得伪造的证书,它还是会链到同一个根证书,从而绕过固定机制,因此根证书固定无法有效防范中间人攻击。根证书固定的风险在于,它无法有效防止中间人攻击(MITM),攻击者仍能伪造同一根证书下的合法子证书。更安全的方案是使用专用的中间证书 CA,减少根证书暴露的威胁。原创 2025-05-06 16:23:55 · 932 阅读 · 0 评论 -
什么是 CA?什么是 CA 证书?——一篇彻底搞懂 TLS 信任链
在 HTTPS/TLS 体系中,我们常听到CA根证书中间证书等概念。它们既相关又容易混淆。CA(Certificate Authority)= 实体/机构CA 证书(CA Certificate)= 证明该机构身份 & 公钥的数字证书术语自签名CA = TRUE预装系统主要职责根 CA 证书✓✓✓信任锚中间 CA 证书✗✓✗日常签发服务器证书✗✗✗证明网站身份一句话记忆CA 是人,CA 证书是人的身份证;原创 2025-05-05 22:53:49 · 2591 阅读 · 0 评论 -
初识 iOS 开发中的证书固定
本文从“为什么要做证书固定”到“核心验证流程”,再到三种主流网络框架(原生、Alamofire、AFNetworking)的实战示例,帮助初学者系统掌握 iOS 证书固定的落地方案。做好 Certificate Pinning,为你的应用网络通信再添一道牢不可破的安全防线。扩展阅读苹果官方文档:Networking and Security → Secure Connections。原创 2025-05-04 20:23:54 · 819 阅读 · 0 评论 -
使用 DoH 查询域名 —— 以 core.tantanapp.com 为例的实战分析
在现代 iOS 应用中,为了确保 DNS 查询的隐私和完整性,我们可以使用来查询域名信息。本文将以type=A的含义响应中TTL的作用结果如何理解代码+注释逐行讲解插图帮助理解域名解析跳转流程type=A每条记录里都有一个TTL字段,比如67秒 或247秒。表示这条 DNS 记录在缓存中可以保存多久(单位:秒)。过期后客户端必须重新查询 DNS,获取最新的 IP 地址。📌 举例:如果TTL = 67,表示 67 秒内你都可以直接使用缓存 IP,不用再次请求 DNS 服务器。原创 2025-04-28 00:25:33 · 843 阅读 · 0 评论 -
深入理解 CNAME:iOS 开发者不能忽视的域名魔术
CNAME,全称 Canonical Name Record,标准中文叫做“规范名称记录”。把一个域名,指向另一个域名。而不是直接解析成 IP 地址。✅ 这样,当目标域名变化时,只需要修改被指向的域名,无需修改所有引用它的地方。很多 SaaS 平台(如 Firebase、AWS、Cloudflare CDN)都支持 CNAME 绑定。接入图片、音视频 CDN 加速使用 Push 推送服务(如 APNs Provider API)接入 WebSocket 通讯平台。原创 2025-04-27 17:50:36 · 1373 阅读 · 0 评论 -
什么是 SNI?iOS 开发者必懂的安全连接细节
SNI是的缩写,是 TLS 协议(HTTPS 加密层)的一项扩展。在 TLS 握手阶段,客户端主动告诉服务器:“我想访问的域名是 example.com”。这样,服务器就可以根据域名返回正确的证书,完成安全连接。在 iOS 网络开发中,只要连接目标是 IP 地址而非域名,你就必须手动设置 SNI,否则 TLS 握手会失败。SNI 是确保安全连接的重要一环,正确理解和使用它,是高级 iOS 网络开发者必须掌握的能力。自定义网络栈安全防护(防 DNS 劫持)iOS App 与服务器的高可用连接优化。原创 2025-04-27 02:03:46 · 1114 阅读 · 0 评论 -
Network.framework 的引入,不是为了取代 URLSession
Network.framework 是为底层“连接、传输”设计的,不是直接用于发 HTTP 请求的,所以不会取代 URLSession。URLSession还是专门用来发送 HTTP/HTTPS 请求、管理 Cookie、处理 Redirect、自动缓存响应等。怎么建 TCP 连接,怎么做 UDP 传输,怎么监听端口,怎么管理 TLS 细节。自己实现自定义协议(比如 WebSocket)自己管理 IP 层的连接自己实现 DNS 解析 + TCP 握手 + TLS 验证。原创 2025-04-26 22:57:56 · 688 阅读 · 0 评论 -
详解 Network.framework:iOS 网络开发的新基石
是 Apple 提供的一套面向连接级别(Connection Level)编程的现代化 API。创建和管理 TCP / UDP 连接加密连接(TLS)多路径传输(Multipath TCP)网络状态实时监控(如 Wi-Fi/蜂窝网络切换)更安全的连接(默认支持 TLS 验证)✅ 更安全(默认启用 TLS)✅ 更高效(异步、低功耗优化)✅ 支持多路径(Multipath TCP)✅ 易用的 Swift 风格 API✅ 适配未来(如 QUIC、HTTP/3)原创 2025-04-26 22:09:53 · 1902 阅读 · 0 评论 -
什么是 DoH(DNS over HTTPS)?一文读懂 iOS 开发者眼中的安全 DNS 解析
在 iOS 网络开发中,我们常常依赖URLSession等库来发起网络请求,而这些请求背后第一步就是域名解析(DNS Resolution)。传统的 DNS 查询是明文的,这意味着它很容易被监听、篡改甚至劫持。而随着网络安全需求的提升,正式登上舞台,逐步成为更安全、更可靠的域名解析方式。本文将从 iOS 开发的视角,深入解析 DoH 的原理、优点、使用方式,以及在 App 中应用 DoH 的实践思路。原创 2025-04-25 01:27:06 · 3243 阅读 · 0 评论 -
域名 → IP 的解析全过程
AFNetworking/URLSession/Alamofire 并不自己做 DNS。iOS 里真正把域名变成 IP 的,是 getaddrinfo()→ libsystem_dnssd → mDNSResponder → 外部 DNS 服务器这一条全局链路;只有理解这条链路,才能在安全、性能或可观测性上做针对性的优化。原创 2025-04-23 18:39:34 · 1406 阅读 · 0 评论 -
应该怎样理解“被劫持“
一句话:任何「未经应用或服务器授权,第三方改变了客户端—服务器之间解析结果、传输路径或数据内容」的情形,都视为网络被劫持。具体可拆成六大类类别典型表现触发信号1. TLS /MITM 劫持恶意中间人使用伪造证书重新加密流量证书/公钥与预埋值不符;TLS 版本被降级2. DNS 劫持域名解析被篡改,指向攻击者控制的 IP系统 DNS 与可信 DoH/DoT 解析结果不一致3. 代理注入网络设备静默加入显式/透明 HTTP(S) 代理;系统 Proxy 设置被修改4. 传输路径劫持。原创 2025-04-23 14:55:34 · 271 阅读 · 0 评论
分享