毎週1冊技術書を読んでブログでアウトプットすることを目標にしており、今回は第11弾です。(↓ 歴史)
1. 「プリンシプル オブ プログラミング」を読んで思ったこと、実践していくこと
2. 【技術書メモ】パーフェクトRuby on Rails 〜毎週アウトプットチャレンジ①〜
3. 【技術書メモ】Everyday Rails - RSpecによるRailsテスト入門 〜毎週アウトプットチャレンジ②〜
4. 【技術書メモ】安全なウェブサイトの作り方・安全なSQLの呼び出し方 〜毎週アウトプットチャレンジ③〜
5. 【技術書メモ】体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 〜毎週アウトプットチャレンジ④〜
6. 【技術書メモ】なるほどUnixプロセス Rubyで学ぶUnixの基礎 〜毎週アウトプットチャレンジ⑤〜
7. 【技術書メモ】オブジェクト指向設計実践ガイド 〜毎週アウトプットチャレンジ⑥〜
8. 【技術書メモ】SQL 第2版 ゼロからはじめるデータベース操作 〜毎週アウトプットチャレンジ⑦〜
9. 【技術書メモ】現場で使えるMySQL 〜毎週アウトプットチャレンジ⑧〜
10. 【技術書】実践ハイパフォーマンスMySQL 第3版 〜毎週アウトプットチャレンジ⑨〜
今回は、Webを支える技術 を読んでまとめました。
HTTP、URI、HTML、RESTなどのWebの基礎となる技術を解説している有名な本です。
エンジニアとして働くにあたってWebの基礎知識は必須であり、この本は勉強になることが多いので、通算4周読んでいます。
Webの基礎知識の概要を掴みたい方、この本に興味がある方の参考になれば嬉しいです。
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 143人 クリック: 4,320回
- この商品を含むブログ (183件) を見る
第1部 Web概論
第1章 Webとは何か
-
Webを支える最も基本的な技術は、HTTP(Hypertext Transfer Protocol)とURI(Uniform Resource Identifier)、HTML(Hypertext Markup Language)である
第3章 REST Webのアーキテクチャスタイル
-
RESTとは次の6つを組み合わせたアーキテクチャスタイルである
-
-
クライアント/サーバ:ユーザインタフェースと処理を分離する
-
ステートレスサーバ:サーバ側でアプリケーション状態を持たない
-
キャッシュ:クライアントとサーバの通信回数と量を減らす
-
統一インターフェース:インターフェースを固定する
-
階層化システム:システムを階層に分離する
-
コードオンデマンド:プログラムをクライアントにダウンロードして実行する
-
-
個別のWebサービスやWebAPIがRESTfulになると、Webは全体としてより良くなる
第2部 URI
第4章 URIの仕様
-
URI(Uniform Resource Identifier)とは、リソースを統一的に識別するIDである
-
-
/entries/1:パス...階層を表しており、そのホストの中でリソースを一意に指し示す
第5章 URIの設計
第3部 HTTP
第6章 HTTPの基本
-
HTTP(Hypertext Transfer Protocol)は名前こそハイパーテキスト転送用プロトコルだが、実際にはHTMLやXMLなどのハイパーテキストだけでなく、静止画、音声、動画、JavaScriptプログラム、PDFなど、コンピュータで扱えるデータであれば何でも転送できる
-
HTTPはRESTの重要な特徴である統一インターフェース、ステートレスサーバ、キャッシュなどを実現しているWebの基盤となるプロトコルである
-
クライアントでは、1つのリクエストを送信してレスポンスを受信する際に次のことを行っている
-
クライアントからリクエストを受けたサーバは次のことを行っている
第7章 HTTPメソッド
-
HTTPメソッドには、クライアントが行いたい処理をサーバに伝えるという役割があるが、メソッドは8つしか存在していない(内2つは利用頻度が高くないので割愛)
-
-
GET:指定したURIの情報を取得する、最も仕様頻度の高いメソッド
-
POST:GETに次いで利用頻度の高いメソッドで3つの役割がある
-
-
子リソースの作成
-
既存リソースへのデータの追加
-
他のメソッドでは対応できない処理
-
-
PUT:リソースの内容の更新と、リソースの作成という機能がある
-
DELETE:リソースを削除する
-
HEAD:リソースのヘッダを取得する。GETはリソースを取得するが、HEADはリソースのヘッダだけを取得するという違いがある
-
OPTION:そのリソースがサポートしているHTTPメソッドの一覧を返す
-
-
リソースの作成についてのPOSTとPUTの使い分け
-
-
POSTでPUT/DELETEを代用することができる
第8章 ステータスコード
-
ステータスコードは3桁の数字であり、先頭の数字によって次の5つに分類される
-
-
1xx:処理中
-
2xx:成功
-
3xx:リダイレクト...レスポンスメッセージのLocationヘッダを見て新しいリソースへ接続する
-
4xx:クライアントエラー...エラーの原因がクライアントのリクエストにある
-
5xx:サーバエラー...エラーの原因がサーバ側にある
-
第9章 HTTPヘッダ
-
HTTP認証方式には、Basic認証とDigest認証がある
-
-
リソースがキャッシュ可能かどうか、その有効期限がいつまでなのかは、Pragma、Expires、Cache-Controlヘッダを用いてサーバが指定する
第4部 ハイパーメディアフォーマット
第10章 HTML
-
HTMLはハイパーメディアのため、テキストだけでなく画像や映像なども埋め込むことができる。歴史的経緯により、一般的に画像の埋め込みには<img>要素を、それ以外のオブジェクトの埋め込みには<object>要素を利用する
第11章 microformats
-
HTMLの中でさらに意味のあるデータを表現するための技術がmicroformatsである。microformatsを用いると、リンクの細かい意味やイベント情報などを表現できる
第12章 Atom
第13章 Atom Publishing Protocol
第5部 Webサービスの設計
第15章 読み取り専用のWebサービスの設計
-
リソース設計の指針として唯一存在しているのは、リソース指向アーキテクチャの設計アプローチで、次のステップからなる
おわりに
ここまで読んでいただきありがとうございます。
HTTP、URI、HTML、RESTなどについてまだ理解できてないなと思われる方は、この本を読んでみることをオススメします!
僕もエンジニアの先輩の方々に、よくこの本をオススメされていました。
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 143人 クリック: 4,320回
- この商品を含むブログ (183件) を見る
次は、達人プログラマー を読む予定です。
こちらもよく話題になる本なので読むのが楽しみです。
来週も頑張ります!