【今さら聞けないユーザーエージェントとは?】
モバイルユーザーを視野に入れたウェブサイトや
アプリを作るとき、意識するかしないかに関わらず
触れることになる概念の1つが「UserAgent」。
私たちがPCやスマホなどのデバイスを使って
インターネットの向こう側にあるサイトなどに
アクセスするとき、接続先のサーバーに対して
「私は誰です」
というユーザー側の端末情報がネット回線を介して
伝えられます。それがユーザーエージェントです。
いきなり見知らぬ他人がインターホンを鳴らしたら
警戒しますよね?それと同じです。
インターネットにおいても、サーバーとブラウザの
どちらがどんな順番でどんな情報を送るのかという
手順(=ルール)が決まっています。
ルールがあるからこそ、プログラムで情報に応じた
動作をさせることが可能になるんですね。
ユーザーエージェントの中身
ユーザーエージェントはブラウザによって異なり、
例えば以下のようになっています。
↓PCのChrome
Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
↓iPad
Mozzila/5.0 (iPad;CPU OS 10_2_1 like Mac OS X) AppleWebkit/602.4.6 (KHTML,like Gecko) Version/10.0 Mobile/14D27 Safari/602.1
↓iPad Pro
Mozzila/5.0 (iPad;CPU OS 10_0_2 like Mac OS X) AppleWebkit/602.1.50 (KHTML,like Gecko) Version/10.0 Mobile/14A456 Safari/602.1
ご覧の通り、ユーザーエージェントは単なる文字の
羅列に過ぎませんが、ブラウザのバージョンやOSの
種類といった情報が載っていることが分かります。
これを受け取ったサーバーは、接続相手がPCなのか
スマホなのかタブレットなのかを読み取るので、
各デバイス向けに最適化されたページ(コンテンツ)を
ブラウザに送り返すことができるわけですね。
ここでいう「ユーザー」とは、人間のことではなく
サーバーから見た「サーバーの利用者」すなわち
私たちのPCやスマホなどのデバイスを指します。
プログラムでユーザーエージェントを読み取るには?
プログラミングでは、ユーザーエージェントを
読み取ってデバイスごとに動作を変えるために利用します。
ワードプレスのテンプレートファイルのように
サーバー側で動くPHPのプログラムでは、
ブラウザから送られるユーザーエージェントは
$_SERVER['HTTP_USER_AGENT']
という変数(=データを保持する入れ物)に
格納されるので、これを読み取ります。
「Mobileという文字列が含まれていればスマホ」
「iPadとMobileの両方含まれていればiPad」
「どちらも該当しなければPC」
といった処理を、文字を読み取る構文を使って
記述します。
一方、Javascriptに代表されるブラウザ側で
動くプログラムでは、ブラウザ自身から
ユーザーエージェントを読み取ります。
navigator.userAgent
このように、プログラム言語が違うと同じ
データを扱っていても記述が異なりますが、
それはもう関西弁と関東弁のようなもので、
方言の違いでしかありません。
大事なのは、
「いずれの言語でもユーザーエージェントを
参照する文法が用意されている」
という事実だけです。
文法を覚えていなくても、その事実さえ覚えて
いれば、どんなキーワードでネット検索すれば
見つかるかを想像するのは難しくありません。
PR
CODEMYのマンツーマンレッスンでは、
ワードプレスを基礎からしっかり学びたい方のために、
コース学習の中でカリキュラムをご提案致します。
▼無料相談をお気軽にご利用ください。
http://codemy-lesson.office-ing.net/contact
━━━━━━━━━━━━━━━━━━
講師が執筆した本が発売されました
━━━━━━━━━━━━━━━━━━
『ホームページ作成のツボとコツがゼッタイにわかる本』
定価: 2,400円(税別)出版社:秀和システム
▼Amazon購入ページはこちら
http://amzn.to/2bXJkbs
━━━━━━━━━━━━━━━━━━
CODEMYのオンラインレッスン
━━━━━━━━━━━━━━━━━━
【1】自宅でマンツーマンレッスン
http://codemy-lesson.office-ing.net/
知りたいことだけ学べる個人レッスンです。
【2】動画と個別添削のプログラミング講座
http://bit.ly/2h7ZeRJ
HTML/CSS/JavaScriptの基本が身に付くレッスンです。
↓動画講座を無料体験してください
http://bit.ly/2hw7mIy