【问题标题】:How to avoid infinite loop when trying to load a 404-Not-Found favicon in Chrome?尝试在 Chrome 中加载 404-Not-Found favicon 时如何避免无限循环?
【发布时间】:2013-07-14 09:44:52
【问题描述】:

我读到 Chrome 在它访问的每个页面 (link) 中不断询问网站图标,如果找不到(404 未找到),则 Chrome 进入无限循环。

恐怕我的应用程序会发生这种情况,尽管它在 Firefox 或 Safari 上运行良好。在浏览了所有我能找到的论坛后,我还没有找到防止这种情况发生的方法。

有问题的请求之前的http头是:

GET /url?file_id=0B0orkZUr6JxAdmViVmNuTG5XbFU HTTP/1.1
Host: glinksapp.appspot.com:443
Accept: image/webp,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: SID=DQAAAHABAACKf5HqkBRzvi3HwJrZJ1nW31wx9PEvsqASLQKFZts0Ux1pWFwk...[cut]
Referer: https://www.google.es/
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36
X-Chrome-UMA-Enabled: 1
X-Chrome-Variations: COS1yQEIl7bJAQiptskBCMG2yQEIm4TKAQj4hMoBCLeFygEIwoXKAQjRhcoB
X-Purpose: Instant

HTTP/1.1 302 Found
content-length: 0
content-type: text/html
date: Sun, 14 Jul 2013 08:59:56 GMT
location: https://drive.google.com/#folders/0B0orkZUr6JxAVk9xT3QxcXBpdWs
server: Google Frontend
status: 302 Found
version: HTTP/1.1

这就是 Chrome 中的无限循环:

GET /favicon.ico HTTP/1.1
Host: drive.google.com:443
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: NID=67=fwmd6KsM_Y0xNrRMQlSSpVVmsKTgAi8v4AlG9A...[cut]
PREF=ID=ad9194453b59885b:FF=0:LD=en:TM=1373791886:LM=1373792185...[cut]
SID=DQAAAHABAACKf5HqkBRzvi3HwJrZJ1nWZBxbrbYxeGjE4p130PeYTaQhalIhrt6T-...[cut]
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36
X-Chrome-UMA-Enabled: 1
X-Chrome-Variations: COS1yQEIl7bJAQiptskBCMG2yQEIm4TKAQj4hMoBCLeFygEIwoXKAQjRhcoB

HTTP/1.1 404 Not Found
cache-control: no-cache, no-store, max-age=0, must-revalidate
content-encoding: gzip
content-length: 117
content-type: text/html; charset=UTF-8
date: Sun, 14 Jul 2013 08:59:56 GMT
expires: Fri, 01 Jan 1990 00:00:00 GMT
pragma: no-cache
server: GSE
status: 404 Not Found
version: HTTP/1.1
x-chromium-appcache-fallback-override: disallow-fallback
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block

如果你刷新页面,应用就会退出循环。

我的 Java 应用程序的网址是 http://glinksapp.appspot.com,并托管在 Google App Engine 中。它是一个驱动器应用程序,可以直接在 Google Drive 中打开链接文件(webloc、url...)(默认情况下 Google 不提供)。

问题是:当应用尝试访问“drive.google.com/favicon.ico”时,如何避免进入 404“未找到”循环?

提前谢谢。

【问题讨论】:

    标签: google-app-engine google-chrome google-drive-api infinite-loop favicon


    【解决方案1】:

    Chrome 和其他浏览器会自动请求网站图标,但它们在收到 404 时不会进入无限循环(这在很多网站上都会发生,所以这将是一个巨大的问题)。您发布的链接表明 Android 上的 Chrome 也可能会请求 apple-touch-icon 文件,但这没关系。

    您粘贴到问题中的 HTTP 404 响应看起来完全正常。您的 302 重定向看起来也不错。所以我怀疑您遇到的问题是其他问题,与网站图标无关。

    【讨论】:

    • 谢谢杰米。我会继续调查。
    猜你喜欢
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多