シード期スタートアップエンジニアの技術ブログ

仕事で得た知見や勉強した技術を書きます。

【Webを支える技術】第1部 Web概論をざっくりまとめてみた

なぜこの記事を書いたか

本を読むだけだと、読むだけで終わってしまい、「結局何なの?」が自分の中で明確にならないので、記事にしました。

インターネットとは何か?

インターネットとは、世界中のネットワークとネットワークを相互接続したネットワークのことです。ネットワークのネットワークとも言えます。

外のネットワークとどうやって接続するのか?

私たちが使っているPCやスマートフォンは家や会社のネットワークに属しています。そのネットワークは、ルータやインターネットサービスプロバイダー(インターネットに接続できるサービスを提供する事業者)を利用することで、外のネットワークに接続することができます。

Webとは何か?

Webとは、インターネット上でWebブラウザを用いて文書や他のWebリソースにアクセスできる情報空間です。文書はHTMLで構成されています。そして、ハイパーリンクを埋め込むことができます。そのため、参考資料等の関連する文書をネットワーク経由で簡単に閲覧できます。WebサイトはWebサーバを実行しているコンピュータに保存されています。

Webの2つの側面

  • ハイパーメディア(テキスト、画像などのメディアをハイパーリンクで結びつけて構成したシステム)
  • 分散システム(複数のコンピュータでデータを処理する)

Webの用途

  • Webサイト
  • ユーザインターフェース(デバイスの設定画面やメールの編集画面等。ユーザーが直接メールサーバを操作しなくて良くなる。ユーザーのしたい操作をWebサーバがメールサーバに伝えてくれる)
  • プログラム用API(プログラム向けのインターフェース)

APIとは何か?

APIとは、外部のプログラムからアプリケーションの機能を利用するための仲介役みたいなものです。Web APIの場合、Webを経由して外部プログラムがAPIと接続します。プログラム向けのインターフェース(API)で返却されるリソースのデータフォーマットは、JSONXMLなどのプログラムで解釈・処理しやすいものを使います。

Webを支える基本的な技術

  • HTML
  • URI (リソースを特定するための一意なID。プログラムはURIを用いてリソースの表現する情報にアクセスできる。)
  • HTTP (異なるコンピュータ間のWebにおけるデータ通信の取り決め。8つのメソッドを定義している)
  • Webサーバソフトウェア(Apache HTTP Server等)
  • Webクライアントソフトウェア(ブラウザ)

インターネットとWebの違いは何か?

インターネットは世界中のネットワークを相互に接続して構成された大規模なネットワークです。Webはインターネットを利用して、情報を閲覧・公開する空間です。似たような言葉ですが定義は異なります。 余談ですが、初期のインターネットにはWebがなかったそうです。実験結果を研究者間で共有するのに、既存の電子メールやファイル転送技術では使い勝手が悪かったので、Webが提案・開発されました。

REST(Representational State Transfer)とは何か?

RESTとは、Webの設計思想です。4つの原則で構成されています。RESTの原則に従ったWebシステム(RESTfulなシステム)同士は、円滑に情報を連携することができます。HTTPでやりとりするデータはハイパーテキストだけではなく、「リソースの状態」の「表現」を運んでいるという主張が、RESTという命名につながっています。

RESTの原則

  • 統一インターフェース(HTTP。あるURIに対してGETやPOSTなどのリクエストメソッドを指定してリクエスト(GETリクエスト・POSTリクエスト等)を出すと、リソースの状態の表現を取得したり、リソースの状態の更新ができる。)
  • アドレス可能性(全てのリソースが一意なURIで特定できる)
  • 接続性(やりとりされる情報にリンクを含めることができる)
  • ステートレス性

リソースとは何か?

リソースとは、Web上に存在する名前を持った情報です。リソースは状態を持ち、URI(一意なID。名前とも捉えられる)で特定できます。クライアント側にリソースを返す場合、HTMLやJSONで表現します(リソースの表現)。

参考記事

ja.wikipedia.org

www.soumu.go.jp

https://wa3.i-3-i.info/diff661network.html

https://wa3.i-3-i.info/word1121.html

en.wikipedia.org

https://wa3.i-3-i.info/word12428.html

https://wa3.i-3-i.info/word12429.html

www.mulesoft.com

en.wikipedia.org

ja.wikipedia.org