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

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

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

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

HTML

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

Q&A

解決済

2回答

1506閲覧

なぜ、Googleの検索結果のクエリには?がないのでしょうか?

退会済みユーザー

退会済みユーザー

総合スコア0

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

HTML

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

2グッド

0クリップ

投稿2016/06/08 02:35

編集2016/06/08 02:39

Chromeを使いGoogleでwindowsと検索すると下記のURLで検索結果が表示されます。

https://www.google.co.jp/#q=windows

私の中では、検索はGETを使い、クエリ文字列を付与することで検索結果を表示しているという認識でおります。

クエリとは「RFC3986(日本語)」で下記のようにある通り、URLに末尾に?を付けて指定するものという認識でおりました。

query 構成要素は、path 構成要素 (Section 3.3) のデータを伴い、その URI のスキームと (存在する場合は) 命名オーソリティの範囲内のリソースを識別するために利用される。 query 構成要素は、最初の疑問符 ("?") 文字によって始まり、数字記号 ("#") 文字、あるいは URI の終わりによって終結する。

そのため、Googleで検索したときは下記のようにURLの末尾は?から始まるかと思っておりましたが、?はなく#で始まっております。

https://www.google.co.jp/?q=windows

なぜ、?がないのでしょうか。
私のクエリに関する認識に誤りがあり、必ず?から始まる必要はないということでしょうか。

また、#で始める意味も教えて頂けると嬉しいです。
参考サイトでも結構ですので教えてくださいm(__)m

propg, ikuwow👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

chromeの設定次第みたいですが私の環境では?q=になりますね、シークレットモードで試したところ#q=になるのを確認しました。

結論から言うとJavaScriptで処理を行っているからです。

画面上部のテキストボックスに入力して、出てきた候補を選択すると下の検索結果は代わりますがページ遷移はしていないのがわかると思います。

細かい仕様はわかりませんが大まかな流れとして
(以下すべてJavaScriptの処理)

  1. テキストボックス内の文字列を取得
  2. 非同期通信を利用して検索結果を取得
  3. 検索結果部分を書き換える
  4. URLのハッシュを書き換える

のようなことを行っているのだと思います。

投稿2016/06/08 03:01

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

guest

0

URL用語としての「クエリ」はお書きの引用の通りです。
#以降は「フラグメント」で、本来はページ内のアンカーで指定された場所を示し、ブラウザからサーバーにリクエストを送る際には削除して送られます。
JavaScriptでは現在のURLのフラグメント部分も取得できるので、あとはJavaScriptでAJaxで処理します。
#以降を変更してもサーバーで認識するURLは変わらないため、URLを書き換えてもページ遷移を起こさないために使っているのだと思います。検索画面の場合だとあまり使う必要性を感じませんが。

投稿2016/06/08 04:43

otn

総合スコア84555

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

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

退会済みユーザー

退会済みユーザー

2016/06/08 05:08

なるほど、#を使うことでAjaxで処理できるということなんですね。 検索結果の仕組みについて理解できました。 回答ありがとうございました^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問