- ベストアンサー
URLの大文字小文字の区別
ツイッターのURLは twitter.com/exampleとなっているのですが、 twitter.com/EXAMPLEと アルファベットが全て大文字でも同じページが表示されていました。 なぜURLは大文字と小文字の区別を付けずに一緒のページが表示されるのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>元のURLが無効になって404になる事もありますか? 当然あります。 しかし、それらは、そのサーバー上だけでの変更なので 他のコンテンツでも同じか?これは別問題で、 あくまでサイトごとに好きなルールで作られているというだけですね。 ほとんどの場合は、 /abc と書くと、abcというファイルがどこかにあるのではなく /index.php (あくまで例えばです) に、パラメーターとして"/abc"がわたっており、 つまり「なんでもいいんです」 で、index.phpなどが知っている物ならそれを表示。 わからない物は404というステータスをプログラムが 返せば、一般的なURI=Linux/Unixにおけるファイル!だ! のようにふるまえるという感じです。 なので、実は書いているのは、アドレスではなく、 "/"という部分に設置されているプログラムへの パラメーターにすぎないという感じだと思えばOKですね。
その他の回答 (4)
- AsarKingChang
- ベストアンサー率46% (3467/7474)
>example.com/abcが >example.com/ABCに変わってしまって >example.com/abc が404エラーになるというものです。 先ほどの回答は同じです。 そのサイト上でのURIルールはそのサーバーのソフトを設計した人の ルールなので、そういう風にしていればそうですし。 そうでなければそうではない。 というだけなので、 404にすることも403にすることも。 同じように画面には403と出ているが、ステータスを200と 返すなども、サイト次第なのですよ。
- thunderkarasu
- ベストアンサー率34% (265/762)
サーバーの実装あるいは運用(サーバーの設定)による。 ドメイン名部分は大文字小文字の区別はしない決まりになっているが、それ以降は、基本的にサーバーのシステムによる。 例えば、サーバーでは大多数を占めるUnix系のファイルシステムは、大文字小文字を区別する。 (ただし、Unix系でもサーバーソフトウエアの設定により、大文字小文字を区別しない動作にすることも可能であるが、ファイルシステムは区別するので、コンフリクトしないよう運用に注意を払う必要がある) 一方でWindows系の過去のファイルシステムで区別しなかった影響で、今もOS側で区別しないようファイルシステムを利用している。 この振る舞いも、ドメイン名以降のURLの解釈に反映されてくる(はずだが、生憎20年以上windows系のサーバーシステムは弄っていないので、間違いであれば何方かフォローを)。 このように、サーバーのOSや設定によって、どうにでもなるということだ。 Twitterの場合は一般大衆の利用が圧倒的なので、便宜的にそのような振る舞いとしいるのだろう。 一方、筆者が手がけて管理しているサーバーはUnix系で構築していることもあり「UNIX哲学」に沿って、大文字小文字を区別するようにしている。 「UNIX哲学」(マイク・ガンカーズ 1994年)の教義の中に「小文字の短い名前を使え」とあるからだ。 (1960〜70年代の技術的制約等が教義の源になっているが、現代でも命名を簡潔にするための教えとして有用である)
- t_ohta
- ベストアンサー率38% (5253/13739)
大文字小文字を区別するかしないかはサーバ側の設定や、処理するプログラムがどう作られているかで変わります。 ツイッターは区別しないようプログラムされているというだけです。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
とてもいい質問だと思います。 URLのドメイン直後の、"/"以降は、URIといって、 プログラムで制御しているので、プログラムが、 大文字小文字を見ないという構成なら、そうなります!。 例えば、/1+2と書いて、答えの3出たってかまわないんです。 そこから先はそのサーバーがどうしたいか? それだけなので、URIの部分については、 サイト設計者が、好き勝手に作っていい世界なんです。 なので、URLからドメインを抜いた部分は、 サイト設計者が勝手に使用を決めていい! という感じです。
補足
【補足】 h ttps://twitter.com/example を h ttps://twitter.com/EXAMPLE や h ttps://example.com/user?name=hanako を h ttps://example.com/user?name=haNAKo とアクセスした場合、 h ttps://twitter.com/EXAMPLE h ttps://example.com/user?name=haNAKo とURLが変更になってしまい、 元のURLが無効になって404になる事もありますか?
補足
補足不足でした。 example.com/abc が正式なURLで、 example.com/ABC とアクセスしたら example.com/abcが example.com/ABCに変わってしまって example.com/abc が404エラーになるというものです。