テストのために HTTP サーバーを実行する
一部のシナリオでは、テスト目的でローカルの HTTP サーバーを実行する必要がある場合があります。 たとえば、Facebook と HTML5、Google と HTML5、または Twitch と HTML5 を使用した PlayFab 認証の設定に向けたチュートリアルに従っていて、ドメインのあるリモート サーバーがない場合、このチュートリアルが役立ちます。
前提条件
- Node.JS をインストールしていること
NPM を使用して HTTP サーバーをインストールする
システムでコマンド ライン/ターミナルを実行します (現在どちらを使用しているかは関係ありません)。
npm install -g http-server
を実行します。 NPM が完了したら、小規模な HTTP サーバーがインストールされています。 これだけです。
ファイルを保存する
システムに新しいフォルダーを作成し、そこから静的ファイルを提供します。 Windows 上のパスに特定の制限はありません。
macOS では、フォルダーでアクセスを確認する方法もあります。 新しく作成したフォルダー内に、「index.html」という名前のファイルを作成します。
以下に示すコンテンツをファイルに入れます。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>My Page</title>
</head>
<body>
<p>Hello world!</p>
</body>
</html>
index.html ファイルが入ったフォルダーにコマンド ライン/ターミナルと cd を実行し、次に
- http-server を実行します。
- HTTP-server は、現在のディレクトリからファイルの提供を開始します。
- また、サーバーがリッスンしているすべての IP エンドポイントが印刷されます。
- これらのいずれかを使用して、ブラウザーを介して Web サーバーに接続します。
- ページの読み込みを観察します。
必要に応じて、サーバーを実行するポートを指定できます。
-
例:
http-server -p 80
を実行して、ポート 80でサーバーを実行します。 ポートが占有されている場合は、どのアプリケーションがこのポートを使用しているかを確認し、HTTP サーバーを再度実行する前にシャット ダウンする必要があります。
カスタム ドメイン名を持つファイルを提供する
Google または Facebook などの異なる SDK をテストする際に、一部のサービスは特定の有効なドメイン名でのみ構成できることに気が付くはずです。
たとえば、普通の IP アドレスとポートの組み合わせは許容されません。 特定のサービスでは、このような構成を使用して、保護された特定のドメインからブラウザーがコードを取得するようにします。
また、多くの場合はこの構成を使用してユーザーが正規のドメインからのみログインできるようにし、不正にユーザー データを盗むことができないようにします。
注意
これは重要かつ役立つセキュリティ制限ですが、ローカルでコードをテストする際は複雑となってしまう可能性があります。
サーバーをポート 80 で実行し、ユースケースがシンプルな場合は、オペレーティングシステムの HOSTS ファイルを使用して有効なドメイン名で HTTP サーバーにアクセスできます。
HOSTS ファイルは、Windows と macOS の両方で使用可能な特別なファイルです。 特定のドメイン名をカスタム エンドポイントで上書きすることができます。 図式化すれば、HOSTS ファイルは以下のようになります。
IP_ADDRESS_1 DOMAIN_NAME_1
IP_ADDRESS_2 DOMAIN_NAME_2
IP_ADDRESS_3 DOMAIN_NAME_3
# This is comment
# IP_ADDRESS_4 DOMAIN_NAME_4 <- this entry is commented out and is inactive
...
それぞれのラインが、正確に 1 つのエントリを表しています。
DOMAIN_NAME_1
に接続しようとすると、ブラウザーによってリクエストが IP_ADDRESS_1
に送信されます。
同じことが HOST ファイルの各エントリにも当てはまります。 前の例では、エントリ番号 4
は #
で始まります。 これはコメント用の構文です。
特定のエントリをコメント アウトすることによって、そのエントリを無効化できます。必ずしも HOSTS ファイルから削除する必要はありません。
playfab.example
は有効なドメイン名ですが、その名前ではブラウザーはどの Web サイトにも接続できません。 HOSTS ファイルに以下のエントリを追加することで、そのドメイン名でローカル HTTP サーバーに接続できます。
127.0.0.1 playfab.example
注意
80 以外のポートを使用している場合は、ローカル サーバーの起動時に作成されたポート (ポート 8080 など) を URL の末尾に追加する必要があります (<playfab.example:8080>
)
Windows OS では、通常 HOSTS ファイルは以下にあります。
C:\Windows\System32\drivers\etc\hosts
.
macOS では、通常 HOSTS ファイルは以下にあります。
/private/etc/hosts
.
Warning
ブラウザーのアドレス バーにドメイン名を入力する際は、必ず <http://playfab.example>
のスキーマを入力してください。