Http 为什么LiveId Web Auth需要使用IMAGE/GIF响应确认cookie删除?

Http 为什么LiveId Web Auth需要使用IMAGE/GIF响应确认cookie删除?,http,openid,authorization,liveid,Http,Openid,Authorization,Liveid,在LiveId Web身份验证场景中,当客户端应用程序收到“clearcookie”请求时,它负责清除授权Cookie,并应通过http返回任何GIF图像来确认成功。在asp.net-mvc中使用liveid web auth的参考实现如下所示: if (Request["action"]=="clearcookie") { string contentType; byte[] content; wll.GetClearCookieResponse(out

在LiveId Web身份验证场景中,当客户端应用程序收到“clearcookie”请求时,它负责清除授权Cookie,并应通过http返回任何GIF图像来确认成功。在asp.net-mvc中使用liveid web auth的参考实现如下所示:

 if (Request["action"]=="clearcookie")
 {
      string contentType;
      byte[] content;
      wll.GetClearCookieResponse(out contentType, out content);
      return this.File(content, contentType);
 }
其中wll.getClearCookiierResponse实现为:

    public void GetClearCookieResponse(out string type, out byte[] content)
    {
        const string gif = 
          "R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAEALAAAAAABAAEAAAIBTAA7";
        type = "image/gif";
        content = Convert.FromBase64String(gif);
    }
因此getClearCookiierResponse方法创建包含微小硬编码GIF的字节[]数组

是否有任何特定的原因要求使用GIF进行响应?为什么不仅仅是纯文本(“OK”)或JSON

是否有其他(LiveId除外)协议使用返回的GIF作为响应?我这样问是因为我想知道,在需要类似通信场景的项目中,是否有任何理由采用这种解决方案

当用户退出Windows Live或Windows Live应用程序时,将尽最大努力从用户可能登录到的所有其他Windows Live应用程序中注销用户。这是通过在查询字符串中将“action”参数设置为“clearcookie”来调用每个应用程序的处理程序页面来完成的。然后,应用程序处理程序负责清除与登录相关的任何cookie或数据。成功注销用户后,处理程序应将GIF(任意GIF)作为响应返回给action=clearcookie查询

此函数返回适当的内容类型和主体响应,应用程序处理程序可以返回该响应,以表示成功从应用程序注销

您的代码应该只返回指定的图像(.gif),而不返回其他内容。额外的字节将触发错误(图像格式错误)


我想可能是任何类型的预期响应,并怀疑他们选择了GIF,因为这会导致浏览器在收到GIF时立即挂断连接。

加载GIF后,浏览器是否更有可能在加载Json后断开连接?