Webアプリケーション概要①~インターネットの概要について

「考え方」を知る

本文を読み進めるのであれば、この図を参考にしていただければな、と。

 

インターネットとは何か

インターネットとは、「ネットワークのネットワーク」と言われている。

 

は?なんのこと?と頭がハテナだと思うので、順にみていくことにする。

これは、2段階で考える。ネットワークとは、関連する事物の結びつきによって現れたバーチャル空間と考えることができる。今回であると、コンピュータとコンピュータの小規模な相互関係。

よって、ネットワークのネットワークとは、そのバーチャル空間の結びつきによってできた、さらなる大きなバーチャル空間である。

つまり、大多数のコンピュータのつながり。マトリョーシカの中にマトリョーシカがあるイメージ。

そんな外側のマトリョーシカが、インターネットのイメージ。

2.5『グローバルIPアドレスとプライベートIPアドレス』を見てもらえると分かりやすい。

 

Webアプリケーションとは何か→ユーザがHTTPリクエストのCRUDメソッド(CRUD操作)を用いてWeb上のリソースを操作できるアプリケーションのこと。

 

Webアプリケーションとは何か

Webアプリケーションとは、ユーザがHTTPリクエストのCRUDメソッド(CRUD操作)を用いてWeb上のリソースを操作できるアプリケーションのこと。

 

なんかいろいろと難しい言葉が出てきたので、ちょっと単語ごとに解きほぐそうか。

 

HTTPリクエスト→WebブラウザがWebサーバに対して出すリクエストのこと。

 

HTTP→Webブラウザ(クライアント)とWebサーバ(サーバ)の間でHTMLなどのコンテンツを送受信するための、通信するさいの約束事(約束事のことをプロトコルとも言う)。

 

たとえば、YahooのトップページへのURL(http://www.yahoo.co.jp/)におけるhttpとは、httpという決まりごとで通信するよ、と宣言している。

ちなみに、httpではなく、httpsもある。語尾のsとはsecurityのsである。データの送受信のさいに、通信が暗号化されており、セキュリティ的に安全であることを示している。

 

URLとは何か

URLとは、インターネット上のリソースを特定するための、いわば住所のようなもの。一般的な形式は、

 

(httpなどのプロトコル名):(プロトコルごとに決められた形式)

 

となる。

 

HTTPの場合のURLを以下に示すと、

 

http://ホスト名.ドメイン名:ポート番号/パス

 

となる。

ここで、ホスト名だのドメイン名だのいろいろと出てきてしまったけど、まあ後で説明するから待ってくれ。

 

さて、

たとえば、http://www.honehone.com/news/xxx/bpbp.html というURLがあったとすると、以下のようになる。

 

通信プロトコル http
ホスト名 www
ドメイン名 honehone.com
ポート番号 省略(後で説明)
パス news/xxx/bqbq.html

 

ところで、上表の名称がよく分からないからので(すくなくとも僕にとっては)、日本一高いビル「あべのハルカス」の住所とそのビルの部屋番号をつかって例を出しておくことにする。

(なお、部屋番号は完全に架空のものであり、事実ではございません。というのも、筆者はあべのハルカスに行ったことも、そこで働いたこともなく、内部構成はまったく知らないので)

 

さて、あべのハルカスの住所をググってみると

 

〒545-6016 大阪府大阪市阿倍野区阿倍野筋1丁目1−43

 

とあった。さあ、ここで、

 

あべのハルカス19階908号室の、右端の窓側から数えて4番目の机の引き出しの、下から2番めにある消しゴム

 

を指定してみよう。すると、URLとの対応関係はこうなる。

 

ホスト名(host) 19階908号室
ドメイン名(domain) 大阪府大阪市阿倍野区阿倍野筋1丁目1−43 あべのハルカス
ポート番号(port) 宛名・宛先の部署名
パス(path) 右端の窓側から数えて4番目の机の引き出しの、下から2番めにある消しゴム(ようするに、物の場所)

 

これで、URLとは、膨大な空間の中のある一点を取り出すための識別子であることが、おわかりいただけただろうか。

 

それでは、おのおのの名前の説明をざっくりとしていく。

 

ドメイン名

→インターネット上のネットワークを特定するためのもの。たとえば、yahoo.co.jpであれば、日本(co.jp)におけるyahooのネットワークを示している。

 

 

ホスト名

→ネットワーク上のホストの名前。wwwの場合、Webサーバが起動しているコンピュータを指すことが多い。

 

 

ポート番号

→あとで説明。

 

パス

→コンピュータ内のファイルの位置をあらわしたもの。news/xxx/bqbq.htmlというパスであれば、newsフォルダの中にあるxxxフォルダ内のbqbq.htmlファイルを示している。

パスが省略されたときは、ファイル名がindex.拡張子を指定していることになる。

 

 

IPアドレスとは何か

 

  • IPとは通信プロトコルであり、HTMLリクエストメッセージは、じつはIPによって運ばれるイメージ。つまり、直接HTTP通信でクライアントコンピュータとサーバはやりとりできない。
  • IPアドレスはコンピュータを特定するための、いわば住所のようなもの(ただし、厳密には違う。2.5『グローバルIPアドレスとプライベートIPアドレス』を見ていただきたい。)
  • IPアドレスは”機械語”、URLのドメイン名とホスト名は”日常語”。つまり、ホスト名とドメイン名は人間が理解しやすい記述であり、IPにアドレスは機械のみぞ知る記述、といったところである。
  • ホスト名+ドメイン名をFQDNと呼ぶ
  • DNSサーバによってURLとIPアドレスは結びつけられている
  • FQDNからIPアドレスを取得する行為のことを名前解決と言う。

 

名前解決の方法

ここでは、www.yahoo.co.jpのIPにアドレスを取得することにする。

まず、クライアントコンピュータはルートDNSサーバに対して、jpドメインについてのDNSサーバのIPアドレスを求める。

 

このIPを手に入れたことで、jpドメインのDNSサーバにco.jpドメインのIPアドレスを求めることができるようになる。

 

次。

 

co.jpドメインのDNSサーバのIPアドレスを、jpドメインのDNSサーバに求める。そして、co.jpドメインのDNSサーバのIPアドレスを手に入れる。これにより、co.jpドメインのDNSサーバにアクセスし、つぎはyahoo.co.jpドメインのDNSサーバのIPにアドレスを求めに行く。

 

co.jpドメインのDNSサーバにアクセスしてyahoo.co.jpドメインのDNSサーバのIPアドレスを手に入れたら、そのIPアドレスをもとに、yahoo.co.jpドメインのDNSサーバにアクセスする。

 

そしてようやく、www.yahoo.co.jpのDNSサーバのIPアドレスを取得することができ、取得できたらwww.yahoo.co.jpにHTTpリクエストを送り、レスポンスとして受け取る。

 

グローバルIPアドレスとプライベートIPアドレス

 

まず、ネットワークのネットワーク(インンターネット)において、個々のネットワークにおいてグローバルIPアドレスという、ネットワークの住所となるIPアドレスが割り当てられている。

そして、個々のネットワーク内におけるコンピュータにはプライベートIPアドレスという、個々のコンピュータの住所となるIPアドレスが割り当てられている。

 

異なるグローバルIPアドレスにおいては、プライベートIPアドレスが重複していても問題ない。

というのも、個々のコンピュータを指定するためには、まずグローバルIPアドレスを指定するしなければならず、それが異なっていれば当然、プライベートIPアドレスがかぶっていてもネットワークが違うので、コンピュータは区別し得るからだ。

 

ところで、HTTPリクエストを異なるネットワークにあるWebサーバにおくっても、送った信号のソースはグローバルIPアドレスとなる。

つまり発信源がコンピュータ単体ではなく、そのコンピュータが属しているネットワークとなっているので、レスポンスするときにいったいどのコンピュータにレスポンスすればいいのか分からない。

ここにきて、ポート番号が活躍する。HTTPリクエストをするさい、宛先ポート番号なるものが存在しており、これにより正確にHTTPリクエストを送ることができる。

宛先IP (リクエストを送る先のサーバが属しているネットワーク)と宛先ポート番号(HTTPの場合は80番)が存在するからだ。

逆に、レスポンスを返すときは、送信元IPと送信元ポートを参照すればよい。サーバがレスポンスとして返すときに送信元のコンピュータを特定することができる。

 

CRUD操作

 

C:Create(作成), R:Read(取得), U:Udate(更新), D:Delete(削除)の4つの操作をCRUD操作という。もちろんCRUDとは、その操作を英語で記述したときの頭文字。

 

たとえば、Twitterだと、

 

Read:自分や他人のツイートを見る

Create:ツイートを作成・投稿

Udate:ツイート内容の変更

Delete:ツイートの削除

 

となる。

ただし、HTTPリクエストによるCRUD(HTTPメソッド・HTTP動詞、つまり機械が読みこむ言葉)は、以下のようになる

 

 

日常語(英語) 日常語(日本語) HTTPメソッド

HTTP動詞

Create 作成 POST
Read 取得 GET
Update 更新 PUT
Delete 削除 DELETE

 

まあ、酒でも飲んで、ゆっくり休みましょう(笑)



ところで、コメントは気軽にどうぞ!
ひとつひとつに目をとおし、返信しますので!

「コメントで質問してなにも返ってこなかったらどうしよう」
「ほかの人にみられるのは恥ずかしい」

とかおもわなくて大丈夫です(笑)

「生」を活性化させて、人生を充実させるコミュニティ

・なんのために生きているのかわからない
・やりたいことがない
・なんで、生きてるんだろ
・人生の時間をムダに過ごしている気がする

そんな、無気力におちいっているあなたの人生―生―が能動的になり、「生」が活発化し、人生が充実したら。

人生に対して無気力な原因は、原理原則ベースに「生」の在り方を考えていないことなのです。

ぼくが主催するメルマガ(LINE@)コミュニティでは、原理原則ベースに「生」の在り方を考えるための情報を提供することで、あなたの人生を充実させるお手伝いをします。

ぼくたちと一緒に、無気力な受動的「生」から能動的「生」へと発展させ、より良い人生をもとめていきましょう!

今なら、「生」の在り方を考える第一歩として、「自分」を知るための教科書『「好きなこと/やりたいこと」の見つけ方』を無料でプレゼントしています。

ただし、3万字ほどありますので、気づいたら夜が明けていたなんてことにならないようにお気をつけください(笑)
友だち追加

プロフィールと活動目的

ぼくは、「あること」を始めとして、
人生がどうあろうとも事態を受け入れられる、
強固なマインドを手に入れることができました。

さらに、どうすれば人生を充実させていくことができるのかも分かるようになりました。

おかげで、能動的に人生を生きて人生を充実させていくという、確固たる自信がつきました。

今では、「生」を活発化させて人生を充実させていこうと努力しています。

でも、昔は、自分に対してなにも自信はなく、受動的な人生でした。

すべては親や周囲の言いなりで、クソつまらない人生でした。もう、過去には戻りたくないですね。

では、その「あること」とは一体何なのか。

それは、

原理原則ベースに「生」を複雑化させる

ということです。

はい?なんだそりゃ?

ちょっと説明すると、

・原理原則ベースとは、自分という人間のあり方のことです。

・「生」とは、
人生、生きることの意味、人間的生命、
といった、静的ではない、
動的な生命活動をあらわしています。

・複雑化とは、単純ではない、受動的ではない、スキルとチャレンジの発展をあらわします。

 

原理原則ベースに「生」を複雑化させるために、このブログでは

「考え方」を知る
「生き方」を知る
「自分」を知る
「本」を読む

ための情報発信をしています。

ぼく自身も、本を読みつつこれら3つの情報・知識を高める努力をしています。

「生」を複雑化させることこそが、人生を満足に生きるための最高の方法であるからです。

 

さらなるぼくのプロフィールと、「生」の複雑化についての想いなどの詳細コチラから。

理念とストーリー