2016.04.18
これからWEB現場に飛び込む人に見てもらいたいWEBの仕組みを解説!
こんにちは! 4月になりましたね(もう中頃)。
新たにWEB制作担当等になった方も多いかと思いますが、WEBの仕組みをやんわりと理解しておいた方が、後ほど楽になると思うので、難しくならないように簡単にWEBの仕組みを解説していきたいと思います!
まずは下記の図を見てください。
これはすごーーーく簡略化した図ですが、仕組みをつかむためには良いかなと思います。
(実際にはものすごい数の回線がひしめき合っています)
DNSサーバってなに?
もしかしたら、触れる機会が少ないかもしれませんが、DNSサーバというのは例えば・・・
株式会社Maromaroの住所はどこ?とDNSサーバに聞くと住所を返してくれるようなものです。
実際には自動的にblog.maromaro.co.jpというドメインはどこの住所?と聞くとIPアドレス(xxxx.xxxx.xxxx.xxxx)の数字を教えてくれるので、そのIPアドレスでサーバにアクセスするわけです。
DNSサーバが正しく設定されていないとドメインとIPとの紐づけが出来なくなりますので、意外に重要な役目を担っています。(このDNSサーバが不正に改ざんされると問題ありそうですよね?)
DNSサーバについては、ドメインを取得したりする場合にもしかしたら耳にするかもしれませんし、サーバの引っ越しの際には必ず耳にすることになると思います。
WEBサーバってなに?
ざっくりとWEBサーバといってしまいましたが、WEBに特化したサーバです。
他にデータベースサーバやメールサーバー等も耳にするかと思います。
サーバといっても結局の所はパソコンです。極端にいうとあなたが使っているパソコンもサーバにすることもできます!
このWEBサーバではホームページ等を表示するソフトウェアや仕組みが備わっています。
みなさんがお使いになる際には、基本的にレンタルサーバになるかと思いますが、ざっくりと説明しますと…
HTTPサーバーソフト
ApacheやNginxというソフトが有名です。
恐らくこのどちらかを耳にする事になるかと思いますが、このソフトがブラウザに情報を表示できるように通信してくれます。(WindowsサーバですとIISというものがあります)
また、上記のApacheやNginxだけではWEBプログラムを使えないため、PHPやRuby等といったプログラミング言語をHTTPサーバが連携して動かしてくれます。
データベース
MYSQLやPostgreSQL等が有名です。
現在は必ずと言っていいほど、レンタルサーバでもデータベースが利用できます。
機能としてはデータ等を保存しておき、PHPやRuby等と連携して利用します。
Wordpress等のCMSでも利用する事になります。
このデータベースがWEBサーバと切り離されて、データベースサーバとして独立している場合もあります。
メールサーバとは?
その名のとおりメールを送受信するためのサーバです。
プロバイダ等で利用しているメール等もプロバイダのメールサーバを介して送受信しています。
GmailであれはGmailが用意したサーバですね。
各メールサーバ内で迷惑メールのフィルタ機能等がかかっている場合もあるので、どこどこの会社に送ってもメールが届かない・・・なんてことも起きる場合もあります。
ポートって?
Wikiからの引用です
ポート番号(ポートばんごう)とは、コンピュータがデータ通信を行う際に通信先のプログラムを特定するための番号のことである。
なので、サービスごとに1つ以上のポート番号があります。
覚えていなくてもよさそうに感じますが、基本的なポート番号は覚えておいて損はないと思います。
例えばスカイプではデフォルトで80ポートを利用したりします。
HTTPサーバのポートも基本80ですので、自分のパソコンの中でWEBサーバであるApacheとスカイプを何も考えずに立ち上げると、どちからが動かなくなります。
覚えておいた方が良さそうな単語・・・
- DNSサーバ: ドメインとIPを関連付けしている
- Apache: WEBサーバ
- Nginx: WEBサーバ
- MYSQL: データベース
- PostgreSQL: データベース
- sendmail: メールサーバ
- postfix: メールサーバ
- ssh: リモートからサーバにアクセスするためのサービス
- iptables: ファイアーウォール
- HTTPの通常ポートは80番
- HTTPSの通常ポートは443番
- SSHの通常ポートは22番
- FTPの通常ポートは21番
- SMTPの通常ポートは25番か587番
- POPの通常ポートは110番か995番
今回はざっくりと説明していきましたが、さらに内容を切り分けて深く説明していければと思います!