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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

5回答

617閲覧

ウェブサイトの検索機能や検索結果のURLについて

usui_orange

総合スコア38

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

1グッド

1クリップ

投稿2019/02/11 10:28

web制作初心者で分からないことが2つあります。

ウェブサイトの検索機能を使っている時に疑問に思ったことです。
例えばTwitterの検索機能で「あいうえお」と検索します。下記がそのURL
https://twitter.com/search?q=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A&src=typd
これってTwitterのサーバーに「あいうえお.php」とか「あいうえお.txt」というファイルが予め作られていて、それにアクセスした訳ではないですよね。ということはURLのsearch以降に続く文の中でデータを抽出するようなことが書かれている、それに基づいて抽出されたデータを表示している、だけということなのでしょうか?
どう考えてもそうとしか考えられないのですが、URLの中にデータの抽出条件を書くみたいなことやったこと一度もなくて、どういうこと勉強すればこういう表示の仕方が出来るんだろうと思って質問しました。


https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%82%B7%E3%83%87%E3%82%A3%E3%82%A2_%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%AB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%BF%E3%82%B8%E3%83%BC
イメージ説明

画像はファイナルファンタジーに関係するウィキペディアのURLです。また上の文も同様のURLです。コピペして貼り付けるとURLの表記が変わるのですがこれは一体どういう仕組みなのでしょうか?

flightkasai7👍を押しています

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

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

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

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

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

guest

回答5

0

➀について
私はNginxを使ったことがないので、WebサーバーにApacheを使うこととします。
例えばhttp://example.com/へアクセスするとします。
Webサーバーの設定にもよるのですが、大体はhttp://example.com/にアクセスすると
http://example.com/index.htmlなどのファイルにアクセスするようになっています。
DirectoryIndexという設定です

httpd

1DirectoryIndex index.html

のようにこの設定で書かれたファイルにアクセスします。
もちろん

httpd

1DirectoryIndex hoge.html

とすると、hoge.htmlにアクセスします。(ディレクトリによってこの設定を変えることもできるのですが)
なので、http://example.com/?search=testのようなURLがある場合、
http://example.com/index.html?search=testのようにWebサーバーでは解釈されるのです。
少し前置きが長くなりましたが、そういうことですね。
質問の内容だと恐らくhttps://twitter.com/index.html等のファイルにsearchという値を渡している訳です。
例えばPHPでは、

PHP

1$value = filter_input(INPUT_GET, "search"); 2//や 3$value = $_GET['search'];

とするとURLに含まれているsearchという値を取り出すことができます。
その受け取った値をそのファイルの中でごにょごにょして表示させているのです。

➁について
これは、ブラウザの機能ですね。
その16進数を人間に分かりやすいようにブラウザが日本語にしてくれているだけです。
内部ではちゃんと16進数で通信しています。

私も勉強中の身なので、もしかすると不正確な情報があるかもしれません。
最後の文字が「/」で終わっているとどのファイルにアクセスしているのか分かりにくいかもと
思って書いてたら長くなってしまいました。
長文失礼しました。

投稿2019/02/11 10:58

Nrkw38

総合スコア37

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

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

0

ベストアンサー

出尽くした感ありますが。

ということはURLのsearch以降に続く文の中でデータを抽出するようなことが書かれている、それに基づいて抽出されたデータを表示している、だけということなのでしょうか?

どう考えてもそうとしか考えられないのですが、URLの中にデータの抽出条件を書くみたいなことやったこと一度もなくて、どういうこと勉強すればこういう表示の仕方が出来るんだろうと思って質問しました。

イメージどおりで合っていると思います。どういうことを勉強すれば、ということですがユーザの操作によって表示がかわる(つまり変化しないHTMLで構成されるのではない)webページを作ると自然と覚えます。
なので、何か作ってください

こういったツールにencodeURIをさせてみてください。
間違い承知で分かりやすさ優先でかくと、「urlは英字しか使えないので、そこで日本語を使うための仕組み」がencodeURI、戻すのがdecodeURIです。
なお、いにしえのブラウザ(ie)で開くと、カタカナになりません。

ちなみに見たものとコピペしたものが違うっていうのは、例えばExcelのセルに関数が書いてあるときって、コピペしたら表示値じゃなくて関数がコピーされるとかそういう事例があるので、コンピュータでは普通のことです。
urlでは英字、が基本なので、chromeなどのブラウザがコピーしたときに空気を読んで、クリップボード(コピペを覚えとくとこ)にencodeURIしたやつを保存してくれてます

投稿2019/02/12 02:26

papinianus

総合スコア12705

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

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

m.ts10806

2019/02/12 02:29

> いにしえの 開発元が「もう今後は使わんでや」って言い切ってしまいましたね・・。
guest

0

https://twitter.com/search?q=~~~というURLに対しては、?の前のhttps://twitter.com/searchに対応するプログラムが起動され、そのプログラムに入力パラメーターとして、?の後のq=~~~という文字列が渡されます。そのプログラムがパラメーターを元にデータベースを検索してその結果でHTMLを作成して表示しています。

投稿2019/02/11 12:05

otn

総合スコア84533

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

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

0


キーワードは
GETパラメータ、クエリストリング

URLの中にデータの抽出条件を書く

そもそもですがURLに書くのではなく、基本はフォームから送信します。

コピペして貼り付けるとURLの表記が変わる

キーワードは
URLエンコード

URLからキーワード部分を抜き出して情報を取得する仕組みは、例えばterataiと同じ。

この質問のURLは
https://teratail.com/questions/173851

questionsのIDの173851を取得する、といったもの。
作りにはよりますがこちらのほうが「URLの中にデータの抽出条件を書く」に近いです。

ただ、取得の仕方がクエリストリングかURIの解析かで違うだけでどちらもサーバー側では「送られたキーワードに基づいてデータを取得する処理」が走っています。
その「データ」はデータベースなのかなんなのかは正確に知る術はありませんが。

タグにPHPなりMySQLなりつけられてますので、そちらを学んでいけばいずれ仕組みや考え方を知ることはできます。
2についてはフレームワークの仕組みも絡んでくるのですぐどうこうではないですが。

投稿2019/02/11 10:49

m.ts10806

総合スコア80850

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

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

m.ts10806

2019/02/11 10:51

「2がなぜファイル名ないの?」ということであればm6uさんの回答のリンクが参考になるかもしれません。 「このURIできたら指定したファイルに全て転送(アクセスを集める)」という仕組みです
guest

0

apache httpdなら
Apacheのmod_rewriteモジュールの使い方を徹底的に解説 | OXY NOTES
っていう話です。
他のwebサーバープログラムも同湯yな機能を持っています。

投稿2019/02/11 10:36

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2019/02/11 10:40

RFC 3986 のこときいてんじゃないのか?
退会済みユーザー

退会済みユーザー

2019/02/11 10:48

そういう話なのかも知んない
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問