🐕
Webを支える技術、HTTP、URL、HTML、そしてREST
はじめに
Webを支える技術という有名な本を読み始めまして、内容がとても難しいのでメモ書き程度ですが、要約することにしました。
Webの概要
Webの3つの用途
- Webサイト
Yahoo!のようなポータルサイト、AmazonのようなECサイト、Googleのような検索サイトなど、さまざまなサービスを提供するWebサイト - ユーザーインターフェースとしてのWeb
各種デバイスの設定画面など、ブラウザを通して操作できるUI画面 - プログラムAPIとしてのWeb
XMLやJSONなど、プログラムが解釈しやすいデータフォーマットを使ったプログラム向けのインターフェース
Webを支える技術
- HTTP(Hypertext Transfer Protocol)
HTMLなどのハイパーメディア文書を転送するためのアプリケーション層プロトコル - URI(Uniform Resource Identifier)
Web上にある、あらゆるファイルを認識するための識別子の総称 - HTML(Hypertext Markup Language)
ウェブサイトのコンテンツの構造を作るために使うコード - ハイパーメディア
テキストや画像、音声、映像などをハイパーリンクで結びつけて構成したシステムのこと - 分散システム
複数のコンピュータを組み合わせて処理を分散させる形式のこと
REST
- REST(REpresentational State Transfer)とは、Webが採用しているアーキテクチャスタイルのこと
- RESTは複数のアーキテクチャスタイルを組み合わせて構築している
- クライアント/サーバー
ユーザーインターフェースと処理を分離する - ステートレスサーバー
サーバー側でアプリケーションの状態を持たない - キャッシュ
クライアントとサーバーの通信量を減らす - 統一インターフェース
インターフェースを固定する - 階層化システム
システムを階層に分離する - コードオンデマンド
プログラムをクライアントにダウンロードして実行する
- クライアント/サーバー
URI
URI(Uniform Resource identifier)、直訳で「統一リソース識別子」は「 リソースを統一的に識別するID」のこと
URIを使うとWeb上に存在する全てのリソースを一意に示すことができ、URIのおかげで簡単にアクセスできる。
URIの構文
https://blog.example.jp/entries/1
URIを構成するパーツは次のようになる
- URIスキーム(
http
)
そのURIが利用するプロトコルを示す - ホスト名(
blog.example.jp
)
DNSで名前が解決できるドメイン名かIPアドレス。一意のもの - パス(
entries/1
)
ホスト名の中のリソースを示す階層
HTTP
HTTPとは、コンピュータで扱えるデータであればなんでも転送できるWebの基盤となるプロトコルのこと。
HTTPは、TCP/IPをベースとしたプロトコルのこと。
TCP/IP
TCP/IPとはインターネットの基盤を構成する重要なネットワークプロトコル。
インターネットのネットワークプロトコルは階層型になっている。
- ネットワークインターフェース層
- インターネット層
- トランスポート層
- アプリケーション層
HTTPについては、過去に記事を書いたのでそちらを参考にしてみてください。
【Web技術の基本 #3】HTTPでやりとりする仕組み
Discussion