「Android 9以降でHTTPを利用する」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| 1行目: | 1行目: | ||
[[Android 9]]から「[[セキュリティ]]を強化する」という名目で[[アプリ]]内での通信は[[HTTPS]]が必須になり、[[HTTP]] | [[Android 9]]から「[[セキュリティ]]を強化する」という名目で[[アプリ]]内での通信は[[HTTPS]]が必須になり、[[HTTP]]で通信しようとすると以下のような例外を吐くようになりました。 | ||
Java.IO.IOException: Cleartext HTTP traffic to localhost not permitted | Java.IO.IOException: Cleartext HTTP traffic to localhost not permitted | ||
== HTTPSの問題点 == | |||
=== デバッグがめんどくさい === | |||
ただ[[デバッグ]]のときは[[HTTPS]]と[[オレオレ証明証]]だと色々とめんどくさいし捗らない。 | ただ[[デバッグ]]のときは[[HTTPS]]と[[オレオレ証明証]]だと色々とめんどくさいし捗らない。 | ||
=== 暗号化によるデータ増大 === | |||
HTTPSはHTTPと比較してデータ量が約10〜20倍に膨れ上がることがあります。 | |||
とくに小さいデータでは最低2〜3KBが追加され影響が大きくなります。 | |||
極端にいえば1バイトを送信したいのに鍵交換などだけで3000バイトくらいになります。 | |||
これは格安SIMの低速モードでは割と重大は問題になります。公称128Kbpsや64kbpsなどの携帯回線では実測値も公称値付近が出たとしてもTLS暗号化を噛ますことによるデータ量の増大で実質的には9600bps程度しか流せないこともザラにあります。 | |||
小さいデータの代表格であるゲームなんかだと割と影響が大きいです。 | |||
よって、どう考えても重要ではないデータはHTTPで通信した方がよい。 | |||
== すべてのドメインでHTTP通信を許可する == | == すべてのドメインでHTTP通信を許可する == | ||
applicationタグの属性「android:usesCleartextTraffic="true"」で全許可となる。 | applicationタグの属性「android:usesCleartextTraffic="true"」で全許可となる。 | ||