【今日のQ&A】URLが持つ変数とは?【Web通信】

こんにちは、@codeship_techです。

今回はWeb通信についての質疑応答です。

いざWeb通信を用いるアプリ開発などをしようと思うと、それまであまり触れていない通信については「どうなっているの?」となりがちですよね。

皆さんに馴染みの深いURLもちゃんと構造や意味があるのです。
ぜひ理解して自分でもアウトプットしてみてください。

URLパラメータってなんですか?

Web通信を行うときに通信相手に送付できる変数です。

URLパラメータ

例えば、Google検索はホームページの検索フォームに入力された文字列に対する検索結果を返します。

そのとき検索結果ページのURLには、以下のように?変数名=値&変数名=値&変数名=値と、「?」から始まり「=」で連結された文字のセットが含まれています。

例としてECMAScriptと検索してみたときのURLは以下のようになっています。

https://www.google.com/search?q=ecmascript&oq=ecmascript&(省略)

このURLはGoogleのサーバプログラムがあらかじめ、https://www.google.com/search   基本となるURL を用意しておき、検索リクエストから送られてきた q=ecmascriptと結合する事によって生成されています。

URLパラメータの仕組みを活かして、以下のようなものが作れます。

固定ツイート機能

Twitterは、以下の基本となるURLにアクセスすることで、ツイート画面にジャンプすることができます。

https://twitter.com/intent/tweet

そこに?text=(ツイート内容)パラメータを含めることで、ツイート画面にあらかじめツイート内容が表示された状態にできます。

自身のWebページのコンテンツや自作ゲームサイトのスコアなどをシェアするのにうってつけの機能ですね。

Kindle Unlimited検索

kindle unlimited検索を作ってみた \- Qiita

こちらは@muranet(https://qiita.com/muranet)氏によって作成された、Kindleの検索メニューのパラメータを解析して作られたkindle unlimited検索アプリです。

Amazon社は本来はkindle unlimitedで無料で読める本の「検索」を提供していませんが、パラメータに必要な属性を検証する事によってkindle unlimitedで読める書籍タイトルのみを検索するサービスも作れてしまいます。

(このように、既存システムの内部の仕組みを解析することで新たな機能を設計することを、リバースエンジニアリングと言います)

URLパラメータの仕組みを理解すると、それだけでアプリとして実用的で面白いものが作れてしまうこともあるので、是非習得しましょう。

授業日記についてのご意見

CodeShipの授業について「こんな事が知りたい・紹介して」というご意見・ご提案がありましたら、CodeShip公式Twitterアカウント(【CodeShip】プログラミングスクール)までDMまたはリプライにてお寄せください。