🐕

Webを支える技術、HTTP、URL、HTML、そしてREST

2022/02/14に公開

はじめに

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でやりとりする仕組み

参考文献

Webを支える技術

Discussion