こちらのサイトを見ていて疑問に思ったのですが
このサイトで8080とゆうポート番号(?)が出てきます
http://qiita.com/hosomichi/items/66b309a6c3c20d910218
これをローカルホストではない状況でサーバーから複数作る場合、ランダムな値をぶっこんでいいのでしょうか?(生成の際に現状存在するほかのIDと被っていないかのifを挟みます)
また、このポート番号によって生成されるネットアドレスはどのようなサイトでも実装可能なのですか?
つまり、独自のドメインを取得していれば、https://ドメイン名.com/hoge のhoge部分は実質無限に制作可能とゆうことなのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答7件
0
質問履歴を見たところ、Unityやネイティブ関係には明るいものの、
Web系にはあまり明るくないのかな?…という印象でしたので根っこから解説していきます。
このポート番号によって生成されるネットアドレスはどのようなサイトでも実装可能なのですか?
前後の文章からはなんとなく推測できますが、
この一文だけ切り出すと、かなり意味不明です。
認識を統一する為にURLの各部品の正式な名称を覚えるようにお願いします。
まずはWikipediaのURLを読み込んでください。
URLは下記のような表記となっています
<scheme>://<user>:<password>@<host>:<port>/<url-path>
- scheme:
通信規約を指します。
Webサーバーで利用するのはhttp
とhttps
のほぼ二択です。
- user、password: (省略可能)
ベーシック認証を行う時のみ追加します。
必要なければ末尾の@まで省略します
- host:
質問文のドメイン名.com
に当たる部分ですね
これでインターネット上にあるサーバーマシンを特定します。
- port: (省略可能)
ポート番号です。
普通は省略され80
が利用されます。
- url-path: (省略可能)
マシン内から払い出される資源のパスです。
設計者が好き勝手に名付ける事が出来るので、実質無限に用意することが可能です。
省略した場合、勝手に/
というパスが補われます。/
とはルートパスのことです。
※ Apacheというサーバー上の特定フォルダ配下と、url-pathを同期させるアプリを利用した場合、
ファイルの実体の数だけur-pathが生成されてアクセス可能となります。
以下質問に素直に答えます。
これをローカルホストではない状況でサーバーから複数作る場合、ランダムな値をぶっこんでいいのでしょうか?
一部のルールがありますが、それに準拠しさえすれば概ね問題ありません。
ただし、Webサーバとして待ち受けるべきポート番号はデフォルトでは80
番であり、
それ以外の値を利用する場合、Webサーバの利用者側がランダムにぶっこんだポート番号を知っている必要があります。
ルールに関しては下記の記事を参照してください。
ついでにポート番号がどういう役割を担うのかも図入りで記載されています。
Webサーバは80番ポート以外使ってはいけないの? - ASCII.jp x Tech
範囲 | 名称 | 用途 |
---|---|---|
0 ~ 1024 | ウェルノウンポート | 全世界的に◯アプリは×番と定義されてるので使っちゃだめ |
1025 ~ 49151 | 登録済みポート | 普通はこの範囲でサーバーを開けてください |
49152 ~ 65535 | 動的/非公式ポート | これは通信の待受に利用するので使っちゃだめ |
このポート番号によって生成されるネットアドレスはどのようなサイトでも実装可能なのですか?
ポート番号はどんなPCにも存在する、マンション入り口に設置されている郵便受取に似たようなものです。
確かにWebサーバーが待ち構えるポート番号を変更すればURLは変更されます。
…が非推奨なので、解決策は下記の※欄に記載しました。
聞きたかった内容は「どのようなサーバーマシンでもポート番号を変更して受け取れるのか?」でしょうか?
その場合は、所謂レンタルサーバーでは基本的に不可能です。
レンタルサーバーは基本的にApache+PHPというソフトウェアを利用してWebサーバを開設しており、
ポート番号もhttpなら80、httpsなら443という風にウェルノウンポートから考えられる決め打ちの値しか利用できません。
解決策としては、Webに繋がったLinuxのマシンをそのまま貸し出すVPSやAWSのEC2等のサービスを利用して、独自のWebサーバーを構築しましょう。
その時は自分で好き勝手なポート番号を名乗る事ができます。
※ポート番号以外のWebサーバーを複数用意する手法
Webサーバは80番ポートで待ち受けるべきなので、公開用のサーバーで他のポート番号は推奨されません。
しかし、開発中で一般の人には見せないという目的で別のポート番号を利用するケースは多々あります。
その場合、4000、8000,8080等が慣習的に利用されます。
WebサーバーのURLを増やす目的であればhost部に手を入れる手法が一般的です。
ドメインを新しく取得する方法もありますが、
ドメイン名はドット区切りでセパレート出来ますので、下記のようなサブドメインを作成して管理する手法が一般的です。
私はsis.jpというドメインを取得していますが、用途別にサイトを立ち上げて管理しています。
http://sis.jp/: お名前どっとこむのデフォ、Webサーバー用意してないので見れないけど…今後ポータルサイトにする予定
http://pso2.sis.jp/quests.json: プレイしているオンラインゲームPSO2用のサーバー(URLはゲーム内のイベントクエストの時刻表)
hoge部分は実質無限に制作可能とゆうことなのでしょうか?
URLのパスの部分は好き勝手に名付けてかまいません。
アクセス可能なリソースが存在する限り…実質無限に生成することが出来ます。
投稿2017/03/29 01:53
編集2017/03/29 04:28総合スコア21194
0
ポート番号について
ポート番号は2byteの符号なし整数(0~65535)を使えますが、そのうち
- 0~1023 は「割り当てが決まっている非常に著名なポート」
- 1024~49151は「著名なシステムで使用されている割り当て済みポート」
- 49152~65535は「自由に使ってよい(が、バッティングしたら自己責任)ポート」
です。
例えば80番ポートは Web Server の HTTP アクセス用のポートですし、443番なら HTTPS 用のポートです。むろん変更しても構わないのですが、混乱を招くだけなので他の用途に使うのは薦められません。
ですが、80番ではない、1024番以降のポートで HTTP アクセスを待ち受けるのは別に構いません。既存の Web サーバと同居しつつ、別の Web サーバを立てる場合等、2番目の Web サーバの待ち受けポート番号を変えて共存させることはあります。
また、待ち受けする Web サーバが起動していても、システムのネットワークの設定によっては、そのポートへの経路をふさいでいることがあります(最近はセキュリティ上の観点から、全てのポートがふさがれた状態が基本です)。この場合ポートを開けてやる処理が、OS側(ファイアウォール)と、場合によってはネットワーク機器(ルータ等)で必要になります。
※ご家庭のインターネットルータでも、ポートに関する設定は行えるはずです
レンタルサーバ等ではこのポートを開けることができないこともあるので、自由にポートが使えるとは限りません。
URL について
URL は例えば http://www.example.org:8080/test/index.html を例にとれば、
- スキーム (http:// など、// を含む手前部分)
- ホスト (www.example.org:8080 など、スキームの直後の / までの部分)
- パス ( /test/index.html など、ホストから末尾までの部分)
に分解されます。
このうちドメインはホストと結びつきます。そしてパスの部分は、ホストで動いているサーバが解釈することになっています。
ですから、サーバ(この場合は 8080番ポートで待ち受けている、www.example.org を処理する Web サーバ)で、/test/index.html をサーバ上のどのコンテンツとして処理するかは、自由に決定できます。その意味で、サーバを自由にできるなら、パス名の部分は自由に増やせます。
投稿2017/03/29 01:18
総合スコア13703
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
これをローカルホストではない状況でサーバーから複数作る場合、ランダムな値をぶっこんでいいのでしょうか?
だめです。IANAが管理しています。
動的・プライベート ポート番号 (49152–65535)は、「プライベート」で、ぶつかる可能性はあります。
イントラネットで使ったら、既に、某社のサーバが使ってた、、、とか。
また、このポート番号によって生成されるネットアドレスはどのようなサイトでも実装可能なのですか?
はい、実装可能、、、というか、上記既定に従って、実装されています。
つまり、独自のドメインを取得していれば、https://ドメイン名.com/hoge のhoge部分は実質無限に制作可能とゆうことなのでしょうか?
「ドメインを取得」は『ドメイン名.com』なので、
https://(hogehoge).ドメイン名.com/hoge
- hogeは「実質無限に制作可能」です。
- DNSを正しく構築すれば、(hogehoge)も可能です。
投稿2017/03/28 22:35
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
ポート番号の3つのグループについては、ほかの方が書かれている通りです。
追加の情報として一つ書いておきますね。
HTTPプロトコルで通信するサーバーアプリケーションで80番以外、かつUser Ports(1025-49151)の範囲内のポートを使いたい場合、8008 または 8080 を使ってよいことになっています。
これは、ポート番号とサービスの組み合わせを管理している IANA という団体による指針として公開されています。下記のWebサイトにSystem PortsとUser Portsの各ポート番号に対する割り当て済みサービスの一覧があります。
Service Name and Transport Protocol Port Number Registry
なお、User Portsの範囲のポート番号の利用方法については、現在のところインターネットの正式な標準仕様としては策定されておらず、あくまでも指針(正しくは Best Current Placticeといいます)です。
なので、上記サイトの一覧を見て、明らかに使われていないようなポート番号は、ローカルネットワークで別の用途に使うことは珍しくありません。例えばカスタムのサーバーアプリで3000番や8000番、10000番などの切りが良すぎるポート番号を割り当てるということは、現実的によくあることです。(決してお勧めはしませんが。)
ご参考になれば。
投稿2017/03/29 02:27
総合スコア2425
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ポート番号とは、国道で例えるなら1号線、2号線などの数字の部分にあたります。
国道80号線は、HTTP通信に使う。
国道443号線は、SSL通信に使う。
などという風に、昔はRFC(最新はRFC1700)によって定められていましたが
現在は、HouraijiICJr さんの仰られるようにIANAという機関が管理しています。
質問内容の回答は以下になります。
これをローカルホストではない状況でサーバーから複数作る場合、ランダムな値をぶっこんでいいのでしょうか?
良いです。
ただし、自由には障害があり、多くの場合交通事故が起きます。
それを回避しているのがIANAという交通機関です。
私道は作っていいけど、国道と被らないようにしてねという約束事を決めているということですね。
8080 はApache Tomcatに代表されるWEBエンジンで利用しているポート番号になります。
#HTTP(80番ポート)のようだけど違いを表して8080にしています。
これを言い換えると、【国道8080号線】を使って【テーマパーク:例えば東京ディズニーランド(ドメイン名)】に行くことに当てはまります。
【国道8080号線】と【TDL】は変えてはいけませんが、【TDLのパビリオン】や【TDLの中で何をするか】は【TDLの制約】のもと自由にできます。
この場合【TDLの住所】がIPアドレスにあたります。
この住所はTDLという名前に言い換えているのがドメイン名です。
人間は【TDL】という名前はわかりますが、住所は知らなくても良いのです。
このポート番号によって生成されるネットアドレスはどのようなサイトでも実装可能なのですか?
各テーマパークの制約によりできるかできないかが分かれます。
山奥にあるテーマパークへは、1本道しかない場合がありますが
町中にあるテーマパークへは、色々なルートがある場合があります。
つまり、独自のドメインを取得していれば、https://ドメイン名.com/hoge のhoge部分は実質無限に制作可能とゆうことなのでしょうか?
独自ドメインにしろ決められたドメイン内にしろ、あなたが運営会社に所属すれば実質無限に製作可能ですが
運営会社の社員と、運営会社登録した会員は違いますよね。
それと同じようにできる範囲が違うようになります。
投稿2017/03/29 02:05
総合スコア1294
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
自鯖を立てていた経験上の話ですが、レンタルサーバではだめです。
あらかじめサーバによって決められています。
自鯖の場合、65536個のうちいずれかを割り当てて、アクセスしてもらいます。
IPアドレスそのままの場合、http://WAN側IPアドレス:8181
DNSで割り当ててもらう場合、http://DNSで配られるアドレス:1919
などですね。
DynDNS
久しぶりにアクセスしたけど、無料じゃなくなった?
ポートは各PCで無防備にアクセスできるようにするものなので、
全部のポートを開けたら、そりゃ大変なことになります。(アタックされまくり)
また、レンタルサーバが指定しているようなポートは、推測しやすいので、
避けるために、8080などとするわけです。
複数の自鯖を立てていたので、複数ポートを開けていましたが、
DNSを別にしていたのでわかりませんが、アドレス部分が一緒だと、
どこに繋げるんだよ!! ってことになりますし、PC側での設定も
とても面倒なことになると思います。
あ、DNSは設定したら動かせないから、1つしか使えないかな?
投稿2017/03/28 23:05
総合スコア1084
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。