ウェブサービスアプリが動く仕組み

ウェブサービスアプリが動く仕組みについて話していこうと思います。早速ですけど皆さんに質問ですYouTubeを見ているといつも面白い動画が並んでいます。どのような仕組みで動いているか説明できますか?

ウェブサービスの中で各技術がそれぞれどのような役割を持っているのか全体感を理解しましょう。

ITやテクノロジーに断片的になんとなく知っていても、全体がどんなふうに関わり合って動いているかと言うことを知る機会があまりないと思います。今回はそれを理解してもらいます。

リクエストとレスポンスについて

インターネットサービスはサーバーと通信をしています。サーバーについて後で話します。まず皆さんが持っているパソコンやスマホからサービスを見ようと思ったら、リクエストと言うものが送られます。サイトを見たい場合はサイトを見せてと言うリクエストをするわけです。そしてリクエストに応えて情報を返すことをレスポンスといいます。情報を要求する側をクライアントサイド、情報を返す側をサーバーサイドと呼びます。ウェブサービスやアプリは必ず何かリクエストを送り、それにレスポンスを返すことを連続で行われているわけです。リクエストを送るという話をしましたが、どこに送っているんでしょうか?地球上のどこかにそのサイトとかサイト情報を保管しているところがあって、そこに送って入るはずですけども、その場所って知らないですよね?知らないのに皆さんは普段リクエストを遅れているわけです。ここにはちゃんと仕組みがあります。手紙と同じように何か送るにはその住所が必要です。どこに送るかという住所がこのインターネットサービスの世界にもあるのです。それがIPアドレスと言うものです。リクエスト送る際のサーバーの住所みたいなものです。

住所だったら何町に行く、何番何号みたいな感じですけども、IPアドレスは数字の羅列です。でもあなたが知っているIPアドレスってありますか?例えばFacebookのIPアドレスは「31.13.82.1」なんですけどもこんな数字を打ち込んだことないですよね。実際に証拠としてこのIPアドレスを打ち込んでエンターをと押してみるとサイト見れるんです。でもこんなことほとんどの人がやったことなくて、あなたがよく知っているのは英字で構成されたhttps.comこっちだと思います。これをドメインと呼びます。数字の列であるIPアドレスに人間がわかりやすいようにつけた別名です。このIPアドレスと数字の羅列を変換することを名前解決といいます。この名前解決は重要で、英語羅列のドメインだけでは住所ではないのです。あくまでも別名なのです。意識する事はないと思うんですけども、名前解決を必ずやっているんですよ。どうやって名前解決をしているのかというと、ドメインネームシステム(DNS)というものがあります。

これは言ってしまえばインターネット上の電話帳みたいなものです。「Facebookの住所ってどこにあるの?」って聞いたら「ここにあるよ。」と教えてくれるシステムがあるんです。サーバーにリクエスト送る前にはこの名前解決を行っています。Facebookの情報を見たいと思ったらまずDNSがここにあるよと住所を教えてくれます。これがIPアドレスであす。ところで皆さんドメインって買ったことありますか?ドメインを買うと必ずすることがあります。それは買ったドメイン名とIPアドレスを紐付ける作業です。サーバーを自分で借りたりするとIPアドレスを教えてもらえます。教えてもらったIPアドレスをドメインと紐付けて設定するんです。これをやるとインターネット上の電話帳DNSに登録されて、あなたのサーバーにいろんな人がリクエストを送ることができるようになります。

まとめ

ウェブサービスはリクエストとレスポンスの連続で成り立つ。情報を要求する側はクライアントサイド、情報を返す側をサーバーサイドと呼ぶ。IPアドレスはサーバーの住所を示す数字の羅列。ドメインは人間がわかりやすくしたIPアドレスの別名。

次にサーバーとは何か説明してください。できますか?意外と何なのかわかってない人って多いんです。答えはリクエストに対していつでもレスポンスを返すように設定されたコンピューターのことです。ものすごく簡単に言うと電源つけっぱなしでネットにつながった画面のないパソコンです。皆さんのPCも設定すればサーバーにできます。すごく特別なものだと思ってる人もいるんですけども、単なるパソコンです。

もちろん画面をバキっと取って置くだけでサーバーになるかというと、そんなことありません。サーバーとして動くために必要な設定は2つです。

1、IPアドレスを固定する

2、リクエストに対してレスポンスを出すようにOSとアプリケーションを設定する

あなたの持っているスマホは誰かからアクセスされることってありますか?通信が送られて情報返してみたいなことはないんですよ。個人の持っているスマホとかパソコンでアクセスされる事はありません。これはセキュリティーの観点からもそうなっています。その前に固定された住所がないんです。だからまずパソコンをサーバーにするんだったら、そのパソコンの住所を固定しないといけないんです。そして住所を固定した後は、電話帳DMSにその住所を設定します。これをやってサーバーとして誰かがリクエストを送った時にたどり着けるようになるんです。しかし、リクエストをたどり、着いただけだと動かないんですよ。これってイメージすると、家の住所まで来たんですけども、ポストもないし人もいないし、もうどうしていいかわからない、って感じです。誰か何かが送ってきたらそれに対して適切な処理をするように設定しないといけないんです。リクエストに対してレスポンスを返すようにOSとアプリケーションを設定するのです。

OSとは一体何か?今はもうスマホの時代なのであなたもわかってると思うんですけども、便利なアプリなどを入れる土台みたいなものです。WindowsだったりiOSだったりこういったものがOSです。土台があるからこそいろんな便利なものが使えますよね。サーバーにもOSを入れないといけないのです。サーバーによく使われているOSはLinuxです。サーバーに使われているOSとしては世界的に大きな視野を持っています。皆さんが使うことはないので身近じゃないと思うんですけども実は裏側ですごく使われています。CentOS やubuntuなどLinuxをベースとした様々なバージョンが存在し、無料で利用することができます。こういったものがサーバーで使うパソコンには入っていて動いています。サーバー用のOSにはLinuxがよく使われていると理解できればオッケーです

また質問です。サーバーは手元にあることはあまりないのです。離れている場所に置いてあって、それを設定していかないといけないんです。パソコンだったらここでカタカタしていればいいんですけども、離れたところにあるサーバーをどうやって設定していくのか気になりませんか?

答えは自分のパソコンで遠隔でそのサーバーを操作していくんです。その時にCUIのコマンド操作をよく使います。いわゆるハッカーが出てくる映画で見るような、黒い画面に文字がぱっと出てくるやつです。黒い画面に文字が出てきて、そこに何か入力してエンターを押すとまた何か文字が出てきてそれをひたすら繰り返す。これが昔はパソコンだったのです。でも今はそんなことをやらなくなりました。それはGUIと呼ばれるものを書くからです。いらないファイルをゴミ箱にドラッグするだけで消えますよね。スマホだったら指でピンチするだけで拡大して見られます。こんな感じでCUIを使いこなせない人でも直感的に使えるようにしたのがGUIなのです。知って欲しいことがあります。エンジニアと言うのはCUIで作業することが多いです。だからエンジニアって黒い画面でカタカタやっているイメージなのです。エンジニアが使うようなライブラリと呼ばれる便利なツールは、いちいちグラフィカルなものをつける必要は無いのです。もちろんそんな便利な製品も今はたくさんあります

ある程度知識がある人だったらわざわざドラッグアンドドロップしなくても、パソコンカタカタってするほうが早いんですよ。文字だけで操作する便利なツールたくさんあって、それを使うからエンジニアはこういうCUIを使った作業をするのです。

まとめ

サーバーとは特定のリクエストに対してレスポンスを返す電源ネットつけっぱなしのコンピューターサーバーOSはLinuxが使われていることが多い

直感的に操作ができるGUIに対し開発はコマンド操作のみのCUIが中心である

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です