最近、いろいろ思うところあって、一から勉強し直し中。
その一環として、インターネットを支える技術について、お猿なりにまとめていく。
888 views
たまたま通りかかった人に「ねえ、Webってなに?」といわれると、回答に困るかもしれない。
まずは、「そもそもWebってナニ」という広い入口から考える。
Webは、大きく分けて3つの用途で使われている。
Webがいろんなところに使用されているのは、わかった。
では、どんな技術が使用されているのか?
まとめてみた。
No | 技術名 | 概要 |
---|---|---|
1 | HTTP,URI,HTML | HTTP=>プロトコル,URI=>リソースの識別,HTML=>文章 |
2 | ハイパーメディア | テキストや画像等のメディアをハイパーリンクを使って結び付けて構成したシステム。 |
3 | 分散システム | 複数のPCで協力して処理をすること。 |
正直、意味がよくわからなかったなぁ。
だって、生まれたときからWebが当たり前の世代だったし。
インターネット初期には、Webがなかったみたい。では何ができたのか?
最初は、メールだけだったみたい。しかも、リアルタイム通信の「TCP/IP」に加えて、バケツリレー方式の「UUCP」による転送もあったらしい。
そのせいか、結構遅延することもあったみたい。
メール以外にも、ファイル交換のためのFTPや、リモート接続のためのTelnetとか出てきた。
初期のWebは、学術論文の交換に使用されていた。
1980年代までに、「ハイパーメディア構想」と「インターネット」「分散システム」の考え方が広まった。
webはこんな時代に生まれた。
webは最初企業や研究者が使っていたが、コンテンツを公開することで、Webの普及を進めた。
1990年代になると、めちゃくちゃ広まった。広まりすぎて、互換性が追い付かなかったこともある。
3WCによって標準化されたが、ブラウザごとの対応等はこのころからあった。
(お猿も「Chrome」と「edge」でちょっと苦しんだ。)
このころには、Webがなぜ成功したのか?それをアーキテクチャの観点から分析。
アーキテクチャのスタイルの一つとして「REST」を発表した。
2000年代になると、「自動化したい」という要求が増える。
そんな中誕生したのがWebAPI。
RESTとは、Webアーキテクチャスタイルのことである。
Webの持つ「クライアント/サーバー」というアーキテクチャスタイルに制約を加えると、RESTになる
有名なのは「クライアント/サーバー」。Webは、「クライアントサーバー」を適用し、改良を加えることで、RESTも適用している。
アーキテクチャとか、アーキテクチャスタイルとか、書いてわけわからなくなってきたので、一回まとめる。
抽象度 | 名称 | Webでの例 |
---|---|---|
大 | アーキテクチャスタイル | REST,クライアント/サーバー 。アーキテクチャの参考にするもの。 |
中 | アーキテクチャ | ブラウザ,サーバー,プロキシ,HTTP,URI,HTML |
小 | 実装 | Apach,Firefox |
Webにおける、リソースとは「Web上に存在する名前を持った情報」のこと。
リソースの名前はURIで一意の名前を持つ。
URIを用いることで、プログラムはリソースが表現する情報にアクセスできる。
なお、URIが持つリソースを簡単に示せる性質のことを、「アドレス可能性」と呼ぶ。
同じリソースにURIを複数設定することができるが、管理がややこしくなる。
リソースは「Web上に存在する情報」である。
サーバーとクライアントがやり取りをするとき、具体的なデータを送信しあう。
この時、やり取りするデータのことを、「リソースの表現」と呼ぶ。
RESTは、複数のアーキテクチャスタイルを組み合わせた、「複合アーキテクチャスタイル」である。
組み合わせているアーキテクチャは下の通り。
No | アーキテクチャスタイル | 概要 |
---|---|---|
1 | クライアント/サーバー | ユーザインターフェイスと処理を分離する |
2 | ステートレスサーバー | サーバー側でアプリケーションの状態を持たない |
3 | キャッシュ | クライアントとサーバーの通信回数と量を減らせる |
4 | 統一インタフェース | インタフェースを固定する(POST,GET等) |
5 | 階層化システム | システムを階層に分離する(プロキシやロードバランサーなど) |
6 | コードオンデマンド | プログラムをクライアントにダウンロードして実行する。 |
※Cookieはステートフルにする仕組み。ステートレスの利点がなくなることに注意
Page 2 of 18.
owl
駆け出しエンジニア
だいたいweb系をかじってる
最近ちょとブロックチェーンに興味出てきた