はじめに
今回のテーマはWebサイトを公開するまでに抑えておきたいコトについて。
なぜこれを書こうと思ったかというと、意外とエンジニア職でもちゃんと答えられない人が多いと感じたから。基本中の基本ではあるけど、非エンジニアの人でもWebの仕組みを理解したい人の参考にもなったら幸いである。
本記事ではコーディングがどうとか、具体的にどうやって設定するかなどは書かない。それよりも仕組み的な話になる。
その1.サーバー
一つ目はサーバー。色々なサーバーがあるが、ここではざっくりWebサーバーを想定して話す。HTTPリクエストを受け付けるとHTTPレスポンスを返すのが仕事である。
一生懸命コーディングしたプログラムファイルをサーバー上に配置することで、そのプログラムをインターネット上に公開することができる。
静的なサイトであれば、HTTPリクエストを受け付けた際にHTML、CSS、JavaScriptを返すことになるし、動的なページであれば、リクエストを受け付けた際にサーバーサイドのプログラムが動作し、生成されたHTMLでレスポンスを返すことになる。
ここでは、サーバーはソースコードを配置し、HTTPリクエストを処理してくれるものだと思ってもらえばいい。
Webサーバーであれば、レンタルサーバー業者を使用するのがおススメ。クラウドを使用するのもありではあるが、レンタルサーバーであれば、契約してすぐに使用開始することができるので、誰でも使用ができる。
その2.ドメイン
「サーバーを契約して、ソースコードを配置して、さあ公開」と思ったら、どうやってWebサイトを見るのか分からないとなるだろう。レンタルサーバー上であれば、「142.251.42.206」みたいに4つの1~3桁の数字が与えられる。この数字をブラウザのアドレスバーに入力してみると、なんと不思議、自分の作成したWebサイトが見れる。
この4つの1~3桁の数字の組み合わせをIPアドレスという。グローバルIPアドレスであれば、自分のサーバーがインターネット上で持っている住所のような働きをする。
しかし、ブラウザ上のアドレスバーに数字が羅列されると、自分のWebサイトが少し怪しく見えるし、何より覚えにくい。
そんな時に使用するのがドメインである。「google.com」や「youtube.com」のように各サイトにアクセスする際に使用する文字列のことをドメインという。
ドメインをアドレスバーに入力するとブラウザが、そのドメインに紐づいているサーバーを探してくれる。これで、覚えるのが難しいIPアドレスを覚えなくて済む。別にドメインはWebサイトを購入する上で必須ではないものの、多くの人に見てもらうには、ドメインを購入してそれっぽいサイトに見せることが大切である。また、通信の暗号化を行う上でも必要なので、ドメインを購入して設定することをオススメする。
ドメインはレジストリやレジストラと呼ばれるドメインの卸業者、再販業者から購入する。
その3.ネームサーバー
ドメインを購入したので、じゃあドメインを早速、ブラウザのアドレスバーに入力してみると、自分のサイトにアクセスできない。それは、ドメインがサーバーと紐づいていないから。
ドメインとサーバーの紐づけを行う際に使用するサーバーをネームサーバーという。ドメインで検索した時に、サーバーの場所であるIPアドレスを教えてくれるサーバーになる。
ドメインを購入したらしなければいけないことは、ドメインはどのネームサーバーを使用するかを設定すること、ドメインがどのサーバーと紐づけるかネームサーバーに登録することの二つである。
大体ドメインを購入したり、レンタルサーバーを契約するとネームサーバーを無料で貸してくれるので、新しいサーバーの心配は不要である。
その4.SSLの導入
最後にSSLの導入。ドメインとサーバーの紐付けが正しいという証明をしてくれるのと同時に、Webサーバーとの通信を暗号化してくれるのが、SSLになる。
HTTPS通信を使用することで通信が暗号化されるのだが、これを可能にしているのがSSLである。SSLの導入しなければWebサイトを公開できないという訳ではない。しかし、SSLが導入されておらず、HTTPS通信ができない場合ブラウザから警告が出たり、信頼性の観点からSEO的にも順位が下がったり、安心して使うためには導入しておいた方がいい。また、パスワードを使用したり、ユーザーが投稿するような機能がある場合、通信が暗号化されていないと情報漏洩の危険性もあるので、安全性の観点から必須と言える。
この際、ドメインを取得しなければSSLは導入できないことは留意しつつ、SSLの導入には有償のものも無償のものもある。それぞれ特性が異なるので調べながらサイトの用途に合わせて使用するのが良い。
まとめ
Webサイトを公開する際に意識する必要があるのは、
・サーバー
・ドメイン
・ネームサーバー
・SSL証明書
の4つ。これはエンジニアにとって初歩の初歩だし、非エンジニアでもWebに関する仕事をする際には、構築・取得費用もそうだし保守など契約に関わってくる部分なので、押さえておいた方が良いことになる。