Webサービスにおいて、URLにパラメータを使う場合とスラッシュ区切りにする場合とがあると思いますが、両者の正しい使い方と使い分けはどのようなものなのでしょうか?
ここでのパラメータとは以下の?より後ろを差し、
https://example.com/test?id=123
ディレクトリ区切りとは以下を意味します。
https://example.com/test/id/123
コンテンツが多いため、数ページに分割する場合では、
/content?page=2
のようにパラメータを使うことが多いように感じます。
一方、記事が複数あるニュースサイトのような場合では記事を指定するのに
/content/12345
のようにスラッシュ区切りのURLとしてあらわされることが多い気がします。
その他諸々の使用例の観察から、
両者(パラメータとスラッシュ区切り)の違いは以下であると考えました。
パラメータは、それ自体無くてもコンテンツが表示されるものに使われることが多い。
スラッシュ区切りは、それ自体無いとコンテンツが表示されない。(404となる)
上の例で言えば、記事を参照するのに、/12345が無いと、何も表示されません。
?page=2 は別になくても記事の記事の一部(?page=1と同じ内容?)が表示されるか、分割せずに全体を表示するかという処理がサーバ側で行われるはずです。(ことが多いと思われる)
ここで、私の認識が誤りであれば、ご指摘ください。また、別の思想・考え方があればご教授ください。
では、以下の場合ではパラメータ、スラッシュ区切りのどちらが適当でしょうか?
ある記事があり、そこにはコメント欄があります。
コメントには採番がされており、URLでそれを指定することで特定のコメントだけを表示するようにしたいとします。
記事番号: 12345
コメント番号: 115
の場合、以下のどちらのURLがふさわしいでしょうか?
/articles/12345/115
/articles/12345?comment=115
115はあってもなくても、全体の中に表示されるため、?comment=115が正しいでしょうか?
以下のように、親ディレクトリ(内部ではモデル名)をcomments などに変えるのであれば、以下が正しいとは思います。
/comments/12345/115
長くなりましたが、よろしくお願いいたします。