1. 程式人生 > >Chrome瀏覽器在使用者訪問一個不存在的網址時,會重新發起一個請求?

Chrome瀏覽器在使用者訪問一個不存在的網址時,會重新發起一個請求?

今天偶然間發現Google Chrome瀏覽器在使用者訪問一個不存在的網址時,會重新發起一個請求:
socket = serverSocket.accept();
input = socket.getInputStream();
output = socket.getOutputStream();
Request request = new Request(input);
request.parse();
Response response = new Response(output);
response.setRequest(request);
response.sendStaticResource();

socket.close();


其中request.parse();方法如下:
StringBuffer request = new StringBuffer();
int i;
byte[] buffer = new byte[2048];

try {
i = input.read(buffer);
} catch (IOException e) {
    e.printStackTrace();
    i = -1;
}
for(int j = 0; j < i; j++){
    request.append((char)buffer[j]);
}
System.out.println(request.toString());


請求URL為:http://127.0.0.1:8080/index.jsp
打印出HTTP請求資訊如下:
GET /index.jsp HTTP/1.1
Host: 127.0.0.1:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3


GET /favicon.ico HTTP/1.1
Host: 127.0.0.1:8080
Connection: keep-alive
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3

我只傳送了一個請求,怎麼會出現兩次請求呢,而且第二次請求的URI是 /favicon.ico,網上查了一下,Google的幫助文件是這樣說的:
“如果您瀏覽到一個不存在的網址,Chrome 瀏覽器可能會將該網址傳送給 Google,以便我們幫您查詢所需網址。我們還會以彙總的方式使用此資訊,以便為其他網路使用者提供相應幫助(例如,告知他們該網站可能出現了問題)。瞭解關於停用針對導航錯誤的建議的詳情。”

就算是Chrome瀏覽器會將該網址傳送給 Google,但是請求的URI怎麼會是 /favicon.ico。這個URI是一張圖片,難道是如果請求的資源不存在時,Chrome瀏覽器會自動顯示一張圖片,但是我的瀏覽器中也沒有顯示相應的圖片啊?這是神馬情況?

相關推薦

Chrome瀏覽器在使用者訪問一個存在的網址重新發起一個請求

今天偶然間發現Google Chrome瀏覽器在使用者訪問一個不存在的網址時,會重新發起一個請求:socket = serverSocket.accept(); input = socket.getInputStream(); output = socket.getOutp

當您導航到網址發生什麽?

構造 發生 -s 解決方案 簡單的 生成 實現 指定 windows 作為軟件開發人員,您肯定會看到網絡應用程序如何工作以及涉及哪些技術的高級畫面:瀏覽器,HTTP,HTML,Web服務器,請求處理程序等。 在本文中,我們將深入了解訪問URL時發生的事件順序。 1.在瀏覽器

關於Eclipse建立Android專案多出一個appcompat_v7的問題

轉自:http://blog.csdn.net/crazykbc/article/details/21553699 問題描述: 使用eclipse建立一個Android專案時,發現project列表中會多創建出一個appcompat_v7專案,再建立一個Android專案時,又會再多出一個appcompat

使用chrome瀏覽器無法訪問github提示是私密連線且無繼續前往選項

在hosts檔案中新增如下內容: 192.30.253.112 github.com192.30.253.119 gist.github.com151.101.100.133 assets-cdn.github.com151.101.100.133 raw.githubusercontent.com151.

Chrome瀏覽器V43版本號支持silverlight 5.0的解決的方法

ati java、 正常 備註 操作系統 fire 說了 article 版本 場景: 瀏覽器:chrome V43 插件:silverlight 5.0 操作系統:xp 問題: 自己開發silverlight站點在IE7和firefox中能正常打

Ubuntu16.04安裝Chrome瀏覽器及解決root能打開的問題

nod install 打開 all context nbsp file exec serve 1. 安裝桌面(emmm,不知道是否只執行第二個命令就行) # apt-get install gonme# apt-get install ubuntu-desktop2.

瀏覽器訪問網址請求頭(request header)是根據什麼生成的

http request header是如何生成的?我們能不能修改?主要有三種情況: 瀏覽器自動生成的請求。絕大部分正常使用者訪問都是這類情況,只要是使用者主動輸入網址訪問時傳送的http請求,那這些頭部欄位都是瀏覽器自動生成的,比如host,cookie,user-agent, Accept-Encod

Chrome瀏覽器 adobe flash player是最新版本解決辦法

輸入網址http://www.adobe.com/support/flashplayer/debug_downloads.html ,選擇PPAPI版本的,現在谷歌瀏覽器已經停止支援NPAPI版本的外掛了。 特別提醒

父類指針指向子類內為什麽當父類的成員函數加virtual訪問的還是父類的成員函數是子類同名的成員函數

https 執行 子類 對象 類名 tail detail com 成員函數 我認為是這樣,類的成員函數都在代碼區,不同的類的成員函數在代碼區有自己的類名稱空間限制,類的虛函數在虛函數表中,程序執行的時候,是先在虛函數表中找該成員函數,如果沒有找到,就去該類在代碼區的成員函

一個知道體諒難處一個說話傷人自尊矛盾的種子已悄悄埋下

兵臨城下 準備 民間 bsp 不知道 內心 離開 str 穩定 860年9月,英法聯軍兵臨城下,鹹豐帝下令順天府征集數百輛馬車,對外宣稱要率軍親政,實則是準備外逃。當時的上諭這樣寫道:“即將巡幸之預備,作為親征之舉。”熟料,消息一出,各位王公大臣紛紛

關於vue後退刷新並緩原有狀態前進刷新並請求新數據

體驗 ips nbsp 導致 方式 dea 數據請求 關於 推薦 在實現 頁面前進刷新,後退頁面不刷新的vue方法 在app.vue 裏的: 在router 路由裏定義如下: 在路由裏定義一個meta的值,設置一個值,來判斷是否要緩存該組件 當然我們可以在

SetProcessWorkingSetSize() 方法使內降低了很多(把內存放到交換區其實降低性能)——打開後長時間使用軟件有很長時間的加載過程原來是這個!

相關 opera UNC 情況下 縮小 ole careful however guarantee 在項目中對程序性能優化時,發現用SetProcessWorkingSetSize() 方法使內存降低了很多,於是查閱了相關的資料如下: 我的程序為什麽能夠將占用的內存

controller中的路徑明明書寫正確瀏覽器訪問的url也拼接正確但報404

bsp 為我 使用 所有 們的 處理方法 瀏覽器中 沒有 由於 Bug:controller中的路徑明明書寫正確,瀏覽器中訪問的url也拼接正確,但報404 原因一:由於路由地址對應的處理方法存在同名而造成的,此時應該檢查controller的方法們,看看有沒有同名

NodeJs中的http-server的使用--解決chrome瀏覽器執行html和js檔案的時候無法呼叫本地的檔案

  一、環境:已經安裝了nodeJS。 二、安裝http-server:    開啟cmd --》 輸入  npm install http-server -g  注意:需要-g ,否則會出現錯誤,並且點選執行start.bat的時候

IE、FireFox、Chrome瀏覽器中關於URL傳參中文亂碼解決相容性問題!

前臺用url傳值中文,後臺用request.getParameter接收引數。在Firefox,Chrome等瀏覽器中沒有問題。但用IE瀏覽器就又會出現引數中文亂碼現象。         IE、 Firefox、Chrome瀏覽器對URL的處理各不相同,瀏覽器在傳輸URl時

區塊鏈能改變世界但這是一個良好的開端

  我看到它的方式,區塊鏈已被完全誇大了。這是一項了不起的技術,值得用於一些重要的應用,但它根本沒有改變世界的潛力,也不能在各個行業普遍使用。   私鑰的問題   區塊鏈技術的最大賣點之一是它能夠保持私密性和安全性。使用者依靠私鑰來提交交換並驗證其身份,這使得這些身份

遇到一個合格的實習生怎麼辦?

這兩天真的太忙了,一直在寫程式碼。昨天連續寫了八個多小時,晚上到家,差點吐了。今天有意起身休息,但下班的時候,還是感覺頭暈,估計是用腦過度。 記得前幾年,幾次通宵加班,第二天下午去上班,接著幹通宵。而現在,我已經到了保溫杯泡枸杞的年紀了,不服老不行。 回到正題

Visual Studio 找一個或多個元件重新安裝該應用程式

開啟 Visual Studio 的時候,彈出如下的對話方塊: 出現上述問題的原因是少了某些元件,原因可能是安裝目目錄下的檔案被誤刪或是被防毒軟體隔離了,如果是誤刪的話,重新找到該檔案將其恢復至原來位置即可。如果是被防毒軟體隔離了,就需要找到病毒查殺模組下的“恢復區”找到被隔離檔案並恢復即可。

一個類有兩個方法其中一個是同步的一個是非同步的; 現在又兩個執行緒A和B請問:當執行緒A訪問此類的同步方法執行緒B是否能訪問此類的非同步方法?

一個類有兩個方法,其中一個是同步的,另一個是非同步的;現在又兩個執行緒A和B,請問:當執行緒A訪問此類的同步方法時,執行緒B是否能訪問此類的非同步方法? 答案:可以 驗證 package com.my.test2; public class ClassA { public syn