DESIGN / CODE / INFRA / AI

解説

URLのhostとhostnameは同じ?ポート番号とoriginを分けて読もう

https://example.invalid:8443のようなURLを分解。hostname・host・originとパスの違い、既定ポートが省略される表示を作例で確認。

URLのhostとhostnameは同じ?ポート番号とoriginを分けて読もう
保存リストを見る →
この記事の道しるべ 5項目

URLの接続先を見ていたら、hostname、host、originという似た名前が出てきた。どれも同じ文字列だと思うと、ポート番号や通信方式を見落とすことがあるよ。

このページでは、Webページでよく使うhttpsのURLを小さく分解する。ブラウザがあれば準備完了。作例はURLを文字列として読むだけで、そのアドレスへ接続しないよ。

最初にURLの区切りを見る

https://example.invalid:8443/docs?q=1#intro

この例では、httpsが通信方式、example.invalidがホスト名、8443がポート番号、/docsがパス、?q=1が検索パラメーター、#introがページ内の目印に当たる。

ポート番号は、接続先でどのサービスへつなぐかを区別する番号だよ。毎回URLへ書くわけではなく、httpsなら既定の443が使われる場合は省略できる。

JavaScriptで三つを比べる

const url = new URL('https://example.invalid:8443/docs?q=1#intro');
console.log(url.hostname); // example.invalid
console.log(url.host);     // example.invalid:8443
console.log(url.origin);   // https://example.invalid:8443
項目 このhttpsの例に含まれるもの
hostname ホスト名
host ホスト名と、既定以外のポート番号
origin 通信方式、ホスト名、必要なポート番号

パスや検索パラメーターを変えても、この例のoriginは変わらない。逆にhttpsからhttpへ変えたり、既定以外のポートを変えたりするとoriginは変わるよ。

:443を付けても表示から消える?

const url = new URL('https://example.invalid:443/docs');
console.log(url.port);   // 空の文字列
console.log(url.host);   // example.invalid
console.log(url.origin); // https://example.invalid

URLの仕組みは、既定ポートを正規化して省略する。このため、入力した文字列の末尾を単純に切り出したものと、URLオブジェクトの各項目は必ずしも同じ見た目にならないんだ。

ページ内で入力を切り替える

作例には、8443付き・443付き・別のパスという三つの固定URLを用意した。選ぶと、hostname、host、port、origin、pathnameが並ぶ。「最初から試す」で8443付きへ戻せるよ。

同じホスト名でも8443と443の接続先は同じサービスとは限らない。一方、パスが違うだけの二つは、この例では同じoriginになることを見てみよう。

ホスト名だけで安全性を決めない

Webの同一オリジンの考え方では、通信方式・ホスト・ポートの組が基本になる。ホスト名だけを比べて、認証情報を渡してよい接続先だと決めつけないでね。アプリ側の許可条件や認証の確認は、別途必要だよ。

今回はhttp・httpsに話を絞っている。fileやdataなど、別の種類のURLには異なる扱いがあるので、この表をすべての形式へそのまま当てはめないようにしよう。

編集部では2026年10月29日にMDNを確認し、三つのURLの解析結果をNodeとブラウザで検証した。例の.invalidは説明用の名前で、通信は行っていないよ。URL・ドメイン・サーバー、末尾スラッシュとパスも合わせて確認しよう。

動かしてみよう:hostname / host / origin

設定を切り替え、実際の表示と結果を比べよう。「最初から試す」で初期状態へ戻せるよ。

参考・出典

公開と変更の記録
  • :初回公開

日時は日本時間です。記載のある変更は、確認できた編集記録に基づきます。更新日の違いだけから変更内容を推測して載せることはありません。

更新・訂正の方針 →

みんなのコメント 0

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。