我正在開發類似banatag的服務。在新功能developmnet期間,我發現無法解釋的Gmail行爲(如我所想)。Gmail如何製作它?
我會盡力解釋我的問題在圖片:
什麼要求該圖像(標籤)? 我看到兩種可能性:
頁使AJAX請求我的服務,這就是爲什麼我看到我的IP。但在這種情況下,爲什麼我無法在Developer Console的Network選項卡中看到此請求?
Google Image Proxy服務請求我的服務,但爲什麼在這種情況下我的IP有請求?
我的IP:
[UPD] 添加用於處理圖像(標籤)的請求類的一部分:
...
request.remoteAddress = str(self.request.remote_addr)# save remote address
request.put()
...
self.response.write(simpleImageData) #write to body binary data of 1x1 transparent image
self.response.headers[ 'Content-Type' ] = 'image/png'
self.response.headers[ 'Cache-Control' ] = 'no-cache, no-store, must-revalidate'
self.response.headers[ 'Pragma' ] = 'no-cache'
self.response.headers[ 'Expires' ] = '0'
[UPD 2]
我用wireshark找到了我的服務請求,但沒有任何。這就是爲什麼主要問題是Google用戶內容如何模擬我的IP地址?
我不明白這是如何與appengine(或針對該問題的編程)相關的,除了這是您託管頁面的事實。如果您想知道Google內容代理的工作原理,建議您向Google諮詢。 – konqi
是的,它與應用引擎直接無關,但我添加了這個標籤,因爲我認爲Google Image Proxy(GIP)和App Engine協同工作的可能性很小(在從GIP到App Engine的情況下)我看到它的副作用。關於編程,我認爲它在附近,因爲它可能是瀏覽器請求的特徵,或者在我的網絡通信知識中失敗。 – fryday
那麼有一堆瀏覽器功能可能會導致這種情況。一種是即使在您實際訪問網站之前緩存內容的Chrome的預加載。第二種是標準功能,瀏覽器向服務器發送OPTIONS請求以確定服務器的功能(但對於簡單的GET請求,這不應發生)。我認爲這是用戶內容代理,儘管...我不知道這是如何工作的。 – konqi