附录 B. 强制门户引发的问题 (Issues Raised by Captive Portals)
由于客户端无法区分门户的响应和它们打算与之通信的 HTTP 服务器的响应,因此会出现许多问题。511 状态码旨在帮助缓解其中一些问题。
一个例子是浏览器通常用来识别正在访问的站点的 "favicon.ico" [Favicon]。如果从强制门户而不是预期站点获取给定站点的 favicon (例如,因为用户未经身份验证),它通常会在浏览器的缓存中 "粘住" (大多数实现会积极地缓存 favicon),超出门户会话,因此看起来就像门户的 favicon "接管" 了合法站点。
另一个基于浏览器的问题出现在支持隐私偏好平台 [P3P] 时。根据其实现方式,浏览器可能会将门户对 p3p.xml 文件的响应解释为服务器的响应,导致门户公布的隐私政策 (或缺乏隐私政策) 被解释为适用于预期站点。其他基于 Web 的协议,如 WebFinger [WebFinger]、跨源资源共享 [CORS] 和开放授权 [OAuth2.0],也可能容易受到此类问题的影响。
尽管 HTTP 最广泛地用于 Web 浏览器,但越来越多的非浏览应用程序将其用作基础协议。例如,Web 分布式创作和版本控制 (WebDAV) [RFC4918] 和 WebDAV 的日历扩展 (CalDAV) [RFC4791] 都使用 HTTP 作为基础 (分别用于远程创作和日历)。从强制门户后面使用这些应用程序可能会导致向用户显示虚假错误,并且在极端情况下可能会导致内容损坏。
同样,其他使用 HTTP 的非浏览器应用程序也会受到影响,例如小部件 [WIDGETS]、软件更新以及其他专用软件,如 Twitter 客户端和 iTunes Music Store。
应该注意的是,有时人们认为使用 HTTP 重定向将流量定向到门户可以解决这些问题。但是,由于其中许多使用 "跟随" 重定向,这不是一个好的解决方案。