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

web动态网站开发的书籍重庆关键词快速排名

web动态网站开发的书籍,重庆关键词快速排名,python如何制作网页,中国科技成就按时间顺序Question 使用 iOS 的网络库 (比如 AFNetwoking, URLSession, Alamofire) 进行请求时, 域名具体是怎样被解析为 IP 地址的 ? Answer 一次常见的 URLSession / AFNetworking / Alamofire 请求,域名 → IP 的解析全过程 拆成自顶向下 6 个环节, 如下 1 ► 应用层&…

Question

使用 iOS 的网络库 (比如 AFNetwoking, URLSession, Alamofire) 进行请求时, 域名具体是怎样被解析为 IP 地址的 ?

Answer

一次常见的 URLSession / AFNetworking / Alamofire 请求,域名 → IP 的解析全过程 拆成自顶向下 6 个环节, 如下


1 ► 应用层:你写的网络库只是“填表”

AF.request("https://api.example.com/v1/user")
  • AFNetworking / Alamofire 最终都调用 URLSession
  • 这一层只负责把 URL 拆成 host = “api.example.com”,然后把任务交给 Apple URL Loading System
    解析域名不是这些库的职责,它们也不会做任何 DNS 缓存或重写。

2 ► Foundation → Network.framework:准备建立连接

  • 从 iOS 13 开始,URLSession 内部会为每个任务创建一个 NWConnection
    你只要给它 host + port,它就会“自行解析主机名并决定用 IPv6 还是 IPv4”。
  • 在更老的系统里,同样的动作由 CFNetwork 下的 CFHost/SCNetworkReachability 触发,但逻辑基本一致。

3 ► POSIX API:异步 getaddrinfo()

  • NWConnection 调用 getaddrinfo()(或苹果的异步封装)去拿 A / AAAA 结果列表
    getaddrinfo() 的接口说明里就写明了“返回主机名对应的一组 IP 地址”。
  • 这一调用并不直接碰网络,而是把查询通过 libsystem_dnssd 发给系统解析器。

4 ► 系统解析器:mDNSResponder 的工作

  1. 进程间通信
    getaddrinfo() 会通过 UNIX domain socket /var/run/mDNSResponder 或 XPC 服务
    com.apple.dnssd.service 把请求送到守护进程 **mDNSResponder
  2. 本地快速路径
    • 先查进程自己的 DNS 缓存(Happy Eyeballs 里曾用过的地址)。
    • 查全局缓存、DNS64 映射、搜索域规则。
    • iOS 正式版 默认忽略 /etc/hosts(只有内部签名版本才会读取)。
  3. 远程查询
    • 选取当前网络接口配置的 DNS 服务器(蜂窝、Wi-Fi、VPN、DNS Proxy、加密 DNS 等)。
    • 按需发出 UDP/TCP / DoT / DoH 查询。
    • 支持 0-RTT 缓存失效重查、CNAME 链、EDNS0、DNSSEC(仅验证)。
  4. 回包与缓存
    收到应答后写入本地 LRU 缓存,同时把完整的 IP 列表返回给原调用者。

5 ► 连接阶段:挑选并握手

  • NWConnection 拿到一组 IP 后,会按 Happy Eyeballs v2 (RFC 8305) 同时或错峰打洞,
    谁先 TCP SYN/QUIC CH 成功就用谁,另一组流量会被放弃。
  • 若你开启了 HTTP/3 (QUIC),这里还会对 443/UDP 做一次同样的竞争。

6 ► 后续:证书校验 & ATS 策略

  • TLS / QUIC 完成后才会进入真正的 HTTP 层。
  • App Transport Security 要求 TLS 1.2+、证书钉扎或自签根证书,这些都发生在 DNS 已完成之后

你能控制 / 优化的点

场景建议
自定义 DNS(广告屏蔽、内网解析)NetworkExtension → DNS Proxy / DNS Settings,或把 VPN 配置里的 DNS 指向自建服务器;不要试图直接修改 /etc/hosts
调试 DNS在 macOS/iOS 上用 log stream --info --predicate 'process == "mDNSResponder"' 可看到解析全过程(需要专用 profile 才能取消隐私脱敏)。
降低首包延时在服务端同时提供 AAAA & A,并优化 v6 路径;或者在客户端用 NWParameters.preferNoProhibitInterface 关闭 Happy-Eyeballs 的部分等待。
防 DNS 劫持- 使用 DOH/DOT 解析器;- 对关键接口启用 TLS ALPN + 证书钉扎;- 在应用层对解析结果做 二次校验(IP 白名单、SPKI 哈希)。

一句话总结

AFNetworking/URLSession/Alamofire 并不自己做 DNS。
iOS 里真正把域名变成 IP 的,是 getaddrinfo() → libsystem_dnssd → mDNSResponder → 外部 DNS 服务器 这一条全局链路;
只有理解这条链路,才能在安全、性能或可观测性上做针对性的优化。

http://www.cadmedia.cn/news/1722.html

相关文章:

  • 苏州全网网站建设企业网站建设规划
  • 网站建设哪里比较好semir是什么意思
  • 吉安高端网站建设公司建站平台哪个好
  • 网页特效精灵seo免费培训视频
  • 自己在线制作logo免费设计软件seo是什么学校
  • 山东省建设厅举报网站软文推广服务
  • 学生做网站的软件他达拉非的副作用和危害
  • 小型网站设计及建设毕业论文外贸网络营销
  • 南昌房地产网站建设搜索引擎优化是做什么的
  • 网站建设 福步 2018seo搜索引擎优化价格
  • 嘉里建设网站天津做网站的公司
  • 保定建站模板运营推广计划
  • 产业协会建设网站方案sku电商是什么意思
  • 阿旗建设局举报网站韩国网站
  • 网站搭建好有什么内容可以修改百度seo点击
  • wordpress入门视频教程seo排名谁教的好
  • 郑州模板建站系统百度网讯科技有限公司官网
  • 动漫制作专业调研目的seo关键词优化指南
  • 网站建设流程及费用怎么让网站排名上去
  • 网站建设保障方案域名批量查询系统
  • 甘肃路桥建设集团公司网站培训机构管理系统
  • 网站开发使用哪种工具好中囯联通腾迅
  • 网站建设案例精英网络营销推广策划的步骤是什么
  • 望城区政府门户网站城市建设网站服务费一年多少钱
  • 物流网站建设评析品牌营销
  • 深圳网站设计兴田德润优惠吗成都专业的整站优化
  • 任经理++徐州网站建设个人如何做网络推广
  • 做网站开发用什么APP好长沙网站优化指导
  • 嘉鱼网站建设哪家好软文拟发布的平台与板块
  • 鸟人 网站建设手机网站搜索优化