非エンジニアのエンジニア道

非エンジニアからエンジニアに転向!その勉強の軌跡を載せていきます。

本を読む Webを支える技術

本を読むのがすごく苦手なので、なかなか読めなかった本をやっと読み終わった。
通勤を利用して何とか読んだ。


買ったのは大分前だったけど、何やらわからない用語が多すぎて一旦放置してた。
通勤時間が伸びたのを利用して、がーっと読んだら、意外と読めた。


というわけで、まとめてみる。

感想

webすげー!


その一言につきました。
とても本を読んだ感想っぽくないw


知らないと知らないままの、技術。
既存のものをさくっと何も気にせず使えているのは、実はこんな数々のことに支えられていたのか!
ということで、すげー!という感想でした。


用語

アーキテクチャスタイル

複数のアークテクチャに共通する性質、様式、作法あるいは流儀を指す言葉
例:MVC、パイプ&フィルタ、イベントシステム

アーキテクチャ

ハードウェア、OS、ネットワーク、アプリケーションソフトなどの基本設計や設計思想のこと。

リソース

web上の情報で、URIで一意の名前を持ち、URIによって、リソースが表現する情報にアクセスできる

URI

URLとURNの総称。
URLは、何らかの障害でアクセスできなくなる問題があるが、URNは、ドメイン名とは別に恒久的なIDをもつ。
リソースの名前であり、寿命が長く、アドレス欄に表示するため、この点意識して設計する必要がある。

RESTとは

web全体のアークテクチャスタイル。
下記6つを組み合わせている。


  1. クライアント/サーバ:ユーザインタフェースと処理を分離する
  2. ステートレスサーバ:サーバ側でアプリケーションの状態を持たない
  3. キャッシュ:クライアントとサーバの通信回数と量を減らす
  4. 統一インタフェース:インタフェースを固定する
  5. 階層化システム:システムを階層に分離する
  6. コードオンデマンド:プログラムをクライアントにダウンロードして実行する

HTTP

TCP/IPをベースにしたプロトコル
TCP/IPはネットワークプロトコルで、階層化されている。


  1. ネットワークインタフェース層:物理的なケーブルやネットワークアダプタ
  2. インターネット層:ネットワークでデータを実際にやりとりする(IP)
  3. トランスポード層:データの転送を保証する(TCP)
  4. アプリケーション層:具体的なインターネットアプリケーションを実装する

IP

パケット単位でデータをやりとりする
データを送り出すことだけ保証している

TCP

接続先の相手に対してコネクショnをはり、データ抜け漏れをチェックし、データの到達を保証する
転送するデータがどのアプリケーションに渡るかをけっているするのがポート番号

8つのメソッド

  1. GET:リソースの取得
  2. POST:子リソースの作成、リソースへのデータ追加など
  3. PUT:リソースの更新、リソースの作成
  4. DELETE:リソースの削除
  5. HEAD:リソースのヘッダの取得
  6. OPTIONS:リソースがサポートしているメソッドの取得
  7. TRACE:自分宛にリクエストメッセージを返す試験
  8. CONNECT:プロキシ動作のトンネル接続への変更

ステータスコードの分類

  1. 1xx:処理中
  2. 2xx:リクエストが成功
  3. 3xx:リダイレクト
  4. 4xx:クライアントエラー
  5. 5xx:サーバエラー

ハイパーメティアフォーマット

HTML

タグで文書の構造を表現するコンピュータ言語

microformats

HTMLの中でさらに意味のあるデータを表現する

Atom

汎用XMLフォーマット
最小リソース単位が、メンバリソースで、メンバリソースは、エントリリソースとメディアリソースに分かれる
複数のメンバリソースを含むリソースはコレクションリソース

Atom Publishing Protocol

Atomを利用したリソース編集プロトコルの規定
ブラウザ以外のWebクライアントとのシステム連携が容易にできるようになる

JSON

プログラミング言語から扱いやすいデータ構造
データ記述言語で、Javascriptの記法でデータを記述できる