質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

17234閲覧

localhost と 通常ドメインの違いについて

blossan

総合スコア154

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

1クリップ

投稿2016/11/01 04:12

御世話になります。
cakephp3であるサービスを開発しています。

そのサービス内で、あるアクションを実行しました。
アクションを実行するにあたり、その場所を指定する必要があります。

今回は以下のように、[http://]を含めた urlを指定をしています。

http://ドメイン名.com/controller/action

その後、EC2サーバーを使った開発環境での開発になりました。

この時、ポート番号を8000を指定してサーバーを立ち上げアクセスをしたいと考えました。

http://ドメイン:8000/controller/action

しかし、接続できませんでした。

その後、パソコンに詳しい先輩に相談した中で、

http://localhost:8000/controller/action

という記述ではどうですか?とご意見を頂き、無事接続が成功しました。

そこで疑問があります。

http://ドメイン:8000/controller/action

http://localhost:8000/controller/action

こちら二つは基本的に同じ意味だと思います。

ドメイン指定ができなかったのは、開発サーバーがそのドメインを知らなかったという先輩からのアドバイスを頂きました。

こちらの意味を詳しく教えて欲しいのに加え、そもそも「localhost」という記述と通常ドメインの記述の違いも教えてほしいです。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2016/11/01 05:09

例示用ドメインはご自身で所有されていない限りexample.comを利用してください。
guest

回答1

0

ベストアンサー

まず、質問欄にあるドメインやlocalhostというのは、人間が見やすいようにした文字列であって、
実際はIPアドレスに変換されます。

たとえばgoogleのIPアドレスである216.58.196.238ですが
216.58.196.238をブラウザのURL欄に入力すればgoogleが開くと思います。
しかし216.58.196.238なんて人間覚えにくいのでドメイン名があり、そのドメイン名とIPアドレスを変換
する辞書のような存在をネームサーバーと言います。(変換する事を名前解決といいます)

コンピュータはドメイン名を名前解決するためにネームサーバーに問い合わせをしてIPアドレスを得るのですが、
その前にローカル環境のhostsファイルの中身をみてそちらにドメインとIPアドレスの紐付けが記載されていればそちらを優先します。

linux mac なら/etc/hosts
windowsならc:¥windows¥system32¥drivers¥etcの中にあるはず

ここに
127.0.0.1 localhost
という紐付けがされているとおもいます。

ですのでlocalhostに関しては、ネームサーバーに問い合わせせず、localhost=127.0.0.1と即座に名前解決します。
このファイルはネームサーバーへの名前解決よりも優先されるため、極端な話
216.58.196.238 yahoo.co.jp
なんてかけばyahoo.co.jpでもgoogleに繋がったりするとおもいますが、おかしくなるのでやらないでください。

次に
127.0.0.1というアドレスですがループバックアドレスという特殊なIPアドレスで自身をさします。
ですのでlocalhostとブラウザに入力すると自身のローカル環境のapache等のサーバーを見に行きます。
(さきほどの216.58.196.238はグローバルIPアドレスという、またLAN内のアドレスをプライベートIPアドレスといいます)

http://localhost:8000とう表記ですが、:8000はポート番号を指しています。

これは自信のPCで稼働しているwebサーバーに8000ポートで接続するという事を意味しています。
通常HTTPは80ポートなので省略してhttp://localhostだけで良いですが、webサーバーの設定でlistenポートを故意に8000等に変えた場合は
指定しないと接続できません。

次に
http://ドメイン:8000/
の意味ですが、

ネームサーバーに(ドメイン)の名前解決を行いIPアドレスに変換し、そのIPアドレスの8000ポートへ接続するという意味になりますが、

接続できなかったという事はドメインの名前解決ができなかった、もしくは8000ポートでlistenされていない、もしくはファイヤーウォール、などなど様々な要因が考えられますが、ドメインやlocalhost等の意味あい的には上記のような感じです

こちらの意味を詳しく教えて欲しいのに加え、そもそも「localhost」という記述と通常ドメインの記述の違いも教えてほしいです。

記述に違いはなく単純に
localhostは127.0.0.1の事
普通ドメインをgoogle.comを例に挙げると
google.comは216.58.196.238の事

上記少しだけ正確には正しくない箇所があります。通常は
ドメイン名はネットワークをさし、その中の特定のサーバー等につなぐにはホスト名も必要
ドメイン名:hoge.com
ホスト名:www
でwww.hoge.comで接続する事になりますが、そのあたりはちょっとドメイン名=ホスト名+ドメイン名のような表現になっているように取れる書き方になってますがあまり大きな問題ではないと思います。

両方とも
ブラウザに127.0.0.1とうつか216.58.196.238とうつかという事で記述の違いというのは特にありません。
アドレスバーというくらいなので住所にたとえると
(ホスト名・ドメイン名):IPアドレス
国会:東京都千代田区永田町一丁目7番1号
都庁:東京都新宿区西新宿2丁目8−1
自宅:東京都新宿区西新宿X丁目Y−Z これがlocalhostみたいなもの
くらいの違いです。

###ホスト名とドメイン名に関しての追記

上記であまり大きな問題ではないといったもののちょっとおおざっぱすぎる説明を残したきりにしておくのも問題なので少しだけ追記します。

localhostに関して

hostsファイルに以下のような記載があるはず
127.0.0.1 localhost
もしくは
127.0.0.1 localhost.localdomain localhost

接続しようとしているサイトを
www.example.com(またはexample.com)

ネームサーバーにもこのhostsファイルに記載があるようなIPアドレスとhostへの紐付け保存されている

123.123.123.123 www.example.com (IPアドレスは適当です)
そしてwwwがなしでも123.123.123.123となるような設定をされているとします(実際そのような場合が多いです)

www.example.comと比較すると
wwwにあたるのがlocalhost ・・・・ ホスト名
example.comにあたるのがlocaldomain・・・ドメイン名

localhostは見方によってはlocaldomainが省略されているという見方ができなくもないですね。

投稿2016/11/01 04:38

編集2016/11/01 05:31
hiim

総合スコア1689

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

blossan

2016/11/01 05:26

大変参考になりました。ありがとうございます。
hiim

2016/11/01 05:32

ホスト名とドメイン名にかんして大雑把すぎたので最後にその部分だけ追記しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問