読者です 読者をやめる 読者になる 読者になる

Webサイト専門プログラマの言いたい放題

元システムエンジニアがサイト制作とプログラミングについて好き放題しゃべります。

【今さら聞けないユーザーエージェントとは?】

f:id:wp-lesson:20170228190729j:plain

モバイルユーザーを視野に入れたウェブサイトや
アプリを作るとき、意識するかしないかに関わらず
触れることになる概念の1つが「UserAgent」。
 
私たちがPCやスマホなどのデバイスを使って
インターネットの向こう側にあるサイトなどに
アクセスするとき、接続先のサーバーに対して
 
「私は誰です」
 
というユーザー側の端末情報がネット回線を介して
伝えられます。それがユーザーエージェントです。
 
いきなり見知らぬ他人がインターホンを鳴らしたら
警戒しますよね?それと同じです。
 
インターネットにおいても、サーバーとブラウザの
どちらがどんな順番でどんな情報を送るのかという
手順(=ルール)が決まっています。
 
ルールがあるからこそ、プログラムで情報に応じた
動作をさせることが可能になるんですね。
 

ユーザーエージェントの中身

f:id:wp-lesson:20170228190816j:plain

ユーザーエージェントはブラウザによって異なり、
例えば以下のようになっています。
 
↓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