windows 瀏覽特定網頁正常顯示,手機瀏覽卻出 404 Error Page

遇到大麻煩,有誰可以給點想法的。

問題敘述:
是關於抓取行政院環保署開放資料的異常,先前寫的一個 app 陽光空氣水,想藉由 app 呈現在台灣的一些環境指標,自從前幾個禮拜環保署的資料出現負載過高的問題後,經過環保署的努力,據說服務已恢復,但是從此之後 app 就抓不到資料了,出現 404: Not found 的錯誤。

詭異的是在電腦的瀏覽器確實可以正常顯示,可是一換到手機,不過是手機瀏覽網頁或是 app 透過 HttpUrlConnection、Volley 都是 404。

網路上這討論很少,高度相關的就以下這兩個
下载图片404,但是浏览器可以正常打开显示
404 when accessing Tomcat with HttpUrlConnection, 200 from browser

但是都無解,試過多款手機仍是一樣的問題,目前暫定問題是在 Server side,也許行政院環保署開放資料平台真的是 Tomcat,也許真的是 Tomcat 的問題,很多的也許,但仍無法解決我的問題。

---------------------------------------------------------
2015/12/01 回覆

看來需要好好了解網頁開發怎麼玩了;經過多日的追查及驗證後,確認問題是開放資料庫的網頁問題,但是我非常不開心,因為開放資料庫將 android 的網頁存取權限封鎖了,意思是只要透過 android 到行政院環保署的網頁及子網頁,都會得到 404:Not found 的錯誤網頁。

有興趣的可以試試看,在手機上用 Chrome 瀏覽

紫外線即時監測資料


會出現 404 - 找不到檔案或目錄。
只要切換到電腦版網站就可以正常瀏覽。
這是透過 html request header User-Agent string,得知 request device 是什麼設備,藉此讓網頁做出客製化的對應。而行政院環保署開放平台將所有 android device 全部封鎖。

這樣的差別待遇讓我很不開心,站在行政院環保署的立場,我找不到理由說服自己,開放資料庫的立意不就是"開放",如今封鎖特定裝置是什麼意思?

所以接下來就是保存證據,問問行政院環保署理由是什麼,再來跟大家報告。

---------------------------------------------------------
2015/12/02 回覆

經過一連串的測試,透過修改 UA string 確實可行, app 也重新上架了,接下來就等行政院環保署回覆了。

---------------------------------------------------------
2015/1204 回覆

得到環保署的回信如下

回復日期:2015/12/04
處理情形:
1.
您好,感謝您關心環保事務,有關您提及鎖定特定android手機部分,係為因應日前系統流量暴增,為整體考量本署網路頻寬資源,暫不提供android裝置服務,目前已正常提供各種手機裝置
2.
您好,感謝您關心環保事務,有關您詢問格式資料錯誤部分,係為因應日前系統流量暴增,為整體考量本署資源,緊急調整系統架構由雲端資源服務,格式錯誤為因應轉址雲端限制,目前已克服此限制,正常提供轉址及服務

事前就大概猜到是伺服器負載過高而作出的應變,大致分析一下環保署在這次負載過高的調整如下
1. 同一 ip 短時間內多次請求封鎖
2. android request 封鎖
3. 霾害議題隨媒體散佈而造成的單一開放資料被關注,將空污指標轉到備援機器上專門服務

自從我發現 app 資料都沒有顯示以來,至今約一個多月吧。 現下經測試,確認已全部解禁,而且整體速度有提升,環保署這次的處理是值得讚賞的。

---------------------------------------------------------
順帶一提幾個工具
1. 如何知道目前瀏覽網頁的 User-Agent 呢?
打開 chrome 開發者工具打入 navigator.userAgent

2. 桌面電腦如何模擬各個平台的網頁瀏覽呢?
請安裝 Chrome 應用程式 User-Agent Switcher

留言

這個網誌中的熱門文章

[IIS] 自我簽署憑證來啟用SSL

相見恨晚的自動化測試開發工具 Sikuli

sqlplus 中文亂碼解決方案