「Android 9以降でHTTPを利用する」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) |
||
| (同じ利用者による、間の2版が非表示) | |||
| 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"」で全許可となる。 | ||
| 45行目: | 58行目: | ||
<!-- ドメイン毎の設定 --> | <!-- ドメイン毎の設定 --> | ||
<domain-config cleartextTrafficPermitted="true"> | <domain-config cleartextTrafficPermitted="true"> | ||
<!-- | <!-- domainタグでHTTP通信を許可するドメインやIPアドレスを列挙する --> | ||
<domain includeSubdomains="true"> | <domain includeSubdomains="true">yahoo.co.jp</domain> | ||
<domain includeSubdomains="true">google.co.jp</domain> | |||
<domain includeSubdomains="true">monobook.org</domain> | |||
</domain-config> | </domain-config> | ||