「ホームページを直してもらったのに、自分のスマホで見ると前のままになっている」
「ドメインを変えたら、しばらくサイトが見えなくなった」
お店や会社のホームページを持っていると、一度はこんな経験をするかもしれません。
原因の多くは、DNSとキャッシュという2つの仕組みにあります。
この記事では、ある漫画に出てきた台詞を手がかりに、ホームページが表示されるまでの流れを、専門用語をかみくだきながら解説します。
そもそもホームページはどうやって表示される?
ホームページが表示されるまでの流れは、「住所録で住所を調べて、その家まで荷物を取りに行き、控えを手元に置いておく」ことにたとえられます。
- DNS(住所録)で住所を調べる
「linplan.jp」のような名前(ドメイン)から、サーバーの住所にあたる番号(IPアドレス)を調べます。 - サーバー(家)からデータを受け取る
調べた住所のサーバーに「このページをください」とお願いし、文章や画像のデータを受け取ります。 - キャッシュ(手元のメモ)に控えを置く
一度受け取ったデータや調べた住所は、しばらくの間メモしておきます。次に見るときに速く表示するためです。
これだけの手順を踏んでいても、URLを入れてから表示されるまでは、実際には1秒もかからないことがほとんどです。
漫画に出てきた「DNSとキャッシュ」の台詞、どこが正しくてどこが混ざってる?
『こちら葛飾区亀有公園前派出所』に、こんな台詞が出てきます。
ホームページにアクセスした時データをプロキシ・サーバにキャッシュするだろ ドメイン・ネーム・システム・サーバでセカンダリとプライマリも分かれてキャッシュされるのかい?
出典:秋本治『こちら葛飾区亀有公園前派出所』(集英社)
専門用語がずらりと並んでいますが、ひとつずつ見ていくと、前半はおおむね正しく、後半は2つの仕組みが混ざっています。
前半「プロキシ・サーバにキャッシュする」は、おおむね正しい
プロキシサーバーは、会社などでインターネットの出入口になるサーバーです。
社内の誰かが見たページを一時保存しておき、2回目以降は保存した控えを返すことで、表示を速くします。台詞の前半は、この仕組みのことを言っています。
後半「セカンダリとプライマリに分かれてキャッシュされる」は、混ざっている
DNSのプライマリとセカンダリは、キャッシュではありません。
ドメインの住所録の「正本」と「控え」のことで、同じ内容を2台のサーバーで持ち、片方が止まっても住所を答えられるようにする予備の仕組みです。
ここに保存されているのは住所録だけで、ページの中身は保存しません。
一方、DNSのキャッシュは別の場所で起きています。
プロバイダなどにある「問い合わせ役のDNSサーバー(キャッシュDNSサーバー)」が、一度調べた住所を一定時間覚えておき、次に聞かれたときはすぐに答えます。
まとめると、「DNSにもキャッシュはある。ただし場所はプライマリ/セカンダリではなく、問い合わせ役のサーバー」。台詞は半分正解、というわけです。
「プロキシ」「プライマリ」「キャッシュ」と似た響きの言葉が続くと、混ざりやすいのは当然です。
実はプロでも、人に説明するときに言葉を選ぶ部分です。
「更新したのにホームページが変わらない」のはなぜ?
原因の大半は、ブラウザのキャッシュ(手元のメモ)です。
スマホやパソコンが前回のデータを覚えていて、サーバーに新しいデータを取りに行く前に、古い控えを表示してしまうのです。
今のホームページは、多くが暗号化された通信(アドレスが「https」で始まるもの)になっています。
中身が暗号化されているため、昔のように途中のプロキシサーバーがページの中身を保存することは少なくなりました。
代わりに保存しているのは、ブラウザと、世界中に置かれた配信用のサーバー(CDN)です。
制作会社に連絡する前に、次の3つを試してみてください。
- スマホなら、ページを再読み込みする
画面を下に引っぱる、または再読み込みボタンを押す - パソコンなら「Ctrl+F5」(Macは「Cmd+Shift+R」)を押す
控えを使わず、サーバーから取り直して表示します - 数分〜数十分ほど待ってから見直す
CDNの控えが入れ替わるまで、少し時間がかかることがあります
それでも変わらない場合は、更新作業そのものが終わっていない可能性があるので、制作者に確認しましょう。
「ドメインを変えたら表示されない」「DNSの浸透待ち」とは?
サーバーを引っ越したり、ドメインの設定を変えたりすると、しばらく新しいサイトが見える人と、古いサイトが見える人が混在します。
これは、問い合わせ役のDNSサーバーが古い住所を覚えている間は、古い場所を見に行ってしまうためです。
住所を覚えておく時間はTTLと呼ばれ、この時間が切れると、新しい住所を調べ直して切り替わります。
この待ち時間は、よく「DNSの浸透」と呼ばれます。
ただ、実際に何かが少しずつ染み込んでいるわけではなく、各地のキャッシュが順番に期限切れになるのを待っている状態です。
かかる時間は数分のこともあれば、最大で1〜2日程度かかることもあります。
切り替えの前にTTLを短くしておく、しばらくは古いサーバーも動かしておく、メールの設定も一緒に移す——。
こうした準備をしないと、数日間サイトやメールが届かないことがあります。慣れた制作者に任せたほうが安全な作業です。
店主が覚えておくのはこの3つだけ
DNSやキャッシュの細かい仕組みまで覚える必要はありません。
お店や会社のホームページを持つうえで、次の3つだけ押さえておけば十分です。
- 更新が反映されないときは、まず再読み込み
多くはブラウザの控えが原因です。 - ドメイン・サーバーを変えるときは、数日の切り替え期間がある
キャンペーン開始日など、大事な日の直前は避けましょう。 - ドメインの更新忘れは、ホームページもメールも止まる
自動更新になっているか、登録している支払い方法が有効かを確認しておきましょう。
Linplanの月額プランには、サーバー・ドメイン・SSL(暗号化通信)の管理が含まれています。
更新手続きや切り替えの段取りはこちらで行うので、店主の方は本業に集中できます。詳しくは料金ページをご覧ください。