移动端Portal页面
转自:https://blog.csdn.net/u011650048/article/details/50469768
当用户使用iOS终端设备(iPhone、iPad、iMAC)接入WLAN时,iOS设备自身的CNA(Captive Network Assistant)工具固定对http://captive.apple.com进行探测,如果网络畅通,那么iOS设备会收到内容为Success的回应;反之,iOS设备调用浏览器再次进行探测,实现自动弹出页面的功能。具体流程如下:
- 终端关联到SSID后,终端发送一个HTTP 1.0请求到http://captive.apple.com,报文中的User-Agent是CaptiveNetworkSupport wisper。
- 如果收到的不是期望的Success页面,即http://www.apple.com/library/test/success.html,那么终端认为连接网络失败,就会调用浏览器再次发出HTTP 1.1请求到http://captive.apple.com,报文中的User-Agent是Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13G34(不同iOS终端或版本之间稍有差异)。
- 此时,终端自动弹出了Portal的认证页面,用户输入账号密码后即可连接无线网络。
上述即iOS终端的CNA(Captive Network Assistant)原理,能够自动推出Portal认证页面的关键在于第2步中通过浏览器来再次发出HTTP请求,如果不调用或是间隔较长时间调用浏览器,那么认证页面就会无法推出或是推出时间较长。整个过程如图1所示。


实际抓包可以看到:对于ios系统;ac 开启cna后第三个探测的响应是Success 报文;
如果AC没有开启cna,第三个http hostpot-detect探测的响应依旧会是302到认证页面

开发移动端Portal页面
微信连Wi-Fi流程
模块时序图

http代理服务器(3-4-7层代理)-网络事件库公共组件、内核kernel驱动 摄像头驱动 tcpip网络协议栈、netfilter、bridge 好像看过!!!!
但行好事 莫问前程
--身高体重180的胖子

浙公网安备 33010602011771号