因为今天一个用户遇到选择公司WiFi后,无法弹出网页认证登陆界面的问题,随即上网搜索相关信息,因为公司内没有VPN,无法翻墙,只能用bing来搜索一下相关信息了。
Captive Portal听起来好像非常的陌生,但是一般公共场所的WiFi或者企业内的访客网络都会采用captive portal的方式让用户连接WiFi,就是当你连接到一个WiFi网络内,会自动弹出一个网页,让你输入手机号,然后发送给你登陆密码,相似,企业内可能就让你输入你的用户名和密码,然后就可以免费开始用WiFi了。
经过网络搜索得知这个服务的工作流程: (仅限iOS设备)
- 发送一个HTTP/1.0的请求到 http://www.apple.com/library/test/success.html
- 接收一个回应,如果回应跟它预计的结果一致,那么认为网络是通的,就不会自动弹出页面。同时,状态栏的WIFI图标出现。流程结束。否则,进入下一步。
- 如果收到的回应不是它想要的那个,它就认为有CWP存在。
- 如果有CWP存在,iOS就会自动打开一个页面,在这个页面中再请求一次 http://www.apple.com/library/test/success.html ,这一次使用的是HTTP/1.1。
- 然后就可以打开Login页面了。
- 登陆成功后,右上角出现“完成”字样,点击后,WiFi连接图标出现在屏幕顶部,连接成功。
更多技术细节,我需要更多时间来阅读相关文档。后面慢慢更新