webdevqa.jp.net

サーバー名とドメイン名の違いは何ですか?

URLの形式は次のとおりです。

scheme://server:port/pathname      

ここでのサーバー名とドメイン名の違いは何ですか? //superuser.com/questions/askは(相対)URLです。

スキームは省略されています(http:)。サーバーはsuperuser.com。たぶんサーバーはドメイン名と同じですか?

2

サーバーは物理的なハードウェアです。このハードウェアには、複数のIPアドレスが関連付けられています。サーバーは、関連付けられているIPアドレスの1つを参照するか、そのIPアドレスを指すドメイン名によって参照されることがよくあります。

サーバーに複数のドメインを関連付けることができる(Webサイトの場合は通常そうです)ことは注目に値します。

技術的に言えば、HTTP URLで「server:port」を使用するのは正しくないと主張します。domain:portである必要がありますが、とにかくそうするのが一般的な方法です。一部のアドレス指定スキーム(FTPなど)では、サーバーをサーバーと呼ぶことは理にかなっています。サーバーが、サーバーに関連付けられた(任意の)ドメインまたはそのIPアドレスによって参照されているかどうかに違いがないためです。 [HTTPには追加のロジックがあるため、サーバーはどのドメインが参照されているかを判断できます]

2
davidgo

ドメイン名は、サーバーをホストするIPアドレスへのポインターです。番地「ExampleStreet42」(ドメイン名)とその住所の家(サーバー)の違いと考えてください。そのような例では、ドメイン名をserverまたはdomainと呼ぶ方が意味的に正しいかどうかについて永遠に議論することができます。 serverdomainは等しくありませんが、例の目的上、同等です。

//構文には特別な意味があります。これは、「必要に応じてhttp://またはhttps://を選択する」の省略形です。この構文の背景には、ブラウザーには、httpsページ(セキュア)からのhttpプロトコル(暗号化されていない)を介したリソースのロードに関するセキュリティ制限があります。 //構文は、サーバーがhttpとhttpの両方で同じコンテンツを提供できる場合に役立ちます。したがって、サーバーまたはクライアント側のスクリプトに、要求されたページのプロトコルに基づいて使用するプロトコルを決定させる代わりに、URLは常に//で始まるURLとして指定されるため、ブラウザーはこの複雑さを処理できます。

たとえば、この速記が発明される前は、httpまたはhttpsのいずれかを介して提供される可能性のあるページにGoogleAnalyticsをロードするための次のようなコードが表示される場合があります。

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.Push(['_setAccount', 'UA-xxxxx-y']);
_gaq.Push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); 
ga.type = 'text/javascript'; ga.async = true; 

ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') 
+'stats.g.doubleclick.net/dc.js';

var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>

これのより現代的なバージョンは次のようになります:

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.Push(['_setAccount', 'UA-xxxxx-y']);
_gaq.Push(['_trackPageview']);
</script>
<script type="text/javascript" src="//stats.g.doubleclick.net/dc.js"></script>

最近では、ブラウザがアドレスフィールドのURLのhttp部分を除外することも一般的です。おそらく、一般的なユーザーが実際にフィールドに入力する内容とより厳密に一致するためです。ただし、この場合でもhttpの部分が暗示されます。ブラウザによっては、この動作をオフにして、http部分が常に表示されるようにすることができます。また、一部のブラウザでは、アドレスフィールドにフォーカスすると、httpの部分が表示されます。

0
nitro2k01

おそらくHostauthorityの一部)を参照しています。

STD 66(URI標準) 定義

権限のホストサブコンポーネントは、角括弧で囲まれたIPリテラル、ドット付き10進形式のIPv4アドレス、または登録名によって識別されます。

[…]

Host = IP-literal / IPv4address / reg-name

(これらの部分は、リンクされたセクション「3.2.2。ホスト」で定義されています。)

したがって、HostはIPまたはドメイン名にすることができます。

質問に含めたURI形式(標準化された形式ではありません)では、serverの正確な意味が明確ではないことに注意してください。 authorityのコンポーネントは、 ユーザー情報(userinfo にすることもできます。例:ログイン用のユーザー名とパスワードを提供するため。

0
unor

与えられた例に違いはありません。

ある意味で、完全修飾ドメイン名(FQDN)はサーバー名です。しかし、それは(名前が言うように)完全修飾名前です。サーバーのnamesuperuserになりますが、サーバーはcomドメインに存在します。したがって、フルネームはsuperuser.com

0
Der Hochstapler