androidにおけるリクエストの再送信について


スマートフォン向けのウェブサービスにおいて、AndroidからのアクセスでGETが連続で来る場合があります。 特徴として、

  * 2回目のリクエストはリファラーがない 
  * 2回目のリクエストは1回目の数秒後ぐらいに来る
  * 2回目のリクエストはユーザーエージェントがDalvik 
  * いくつかの端末で出ている

この問題により、いくつかの機能で不具合のような動作が出ています。  
どのように対策すれば良いでしょうか。

javascriptを読み込ませてこれを送信しないようにする等の方法があれば、ありがたいです。
無ければサーバ側で監視するのでしょうか。サーバ側の環境はphp+Zendです。




Android端末（特定機種）側の不具合と考えられます。  
WebブラウザまたはAndroid OSが独自の判断で再送しているようです。

手元で現象を確認していないので検討できていませんが、JavaScript側で制御は難しいでしょう。  
サーバー側で監視,無視など例外対応が必要です。

Android側の挙動については次の通りです（サーバー側の対応方法は、わかりません）。2回目のリクエストのUserAgentは次のようなものでしたか？

[code]

    "Dalvik/1.6.0 (Linux; U; Android 4.2.2; C2004 Build/15.2.A.2.5)"
    
[/code]

これはAndroidのHttpURLConnectionのUserAgentで、WebブラウザのUAとは異なります。  
Androidアプリでの確認方法は次のとおりです。

[code]

    System.getProperty("http.agent");
    
[/code]

同様の症状がStackOverflowの[Browser sending “Dalvik” as user
agent](https://stackoverflow.com/questions/23804278/browser-sending-dalvik-as-
user-agent)に報告されていました。

初回のリクエストがAndroidのブラウザから行われ、  
何らかの事情でAndroid
OSの[HttpURLConnection](http://developer.android.com/reference/java/net/HttpURLConnection.html)を使ったリクエストが再送されているようです。

UserAgentについてはWebブラウザ（WebView）、HttpURLConnection、HttpClientそれぞれで異なります。通常、ブラウザを利用している場合は、ブラウザのUAが入ります。しかし、Androidは機種ごとにカスタマイズして実装されているため、幾つかの機種固有の問題として、異常系/例外処理？に入ったケースで質問の挙動が起きているのだと推測します

