Webを支える技術を読んでみて
プロになるためのWeb技術入門を読んだ後に、Web系受託企業の方からも勧められた「Webを支える技術」を読みました。
ただやはり難易度が高いので全ての内容を理解できなかったので、もう一度読み直すつもりですがその中で押さえておいた方が良いと思った用語を以下に記載しておきます。
書籍情報
個人的に押さえておきたい用語
・HTTPメソッド
Hyper Transfer Text Protocolの略
HTTPではリクエストメッセージが8種類あります。最低限下記の上位4件(CRUD機能)は押さえておいた方が良さそうです。Webエンジニアなら基本のきだと思いますが。。。
PUT・・・リソースの取得
POST・・・子リソースの作成、リソースへのデータ追加、そのほかの処理
PUT・・・リソースの更新、リソースの作成
DELETE・・・リソースの削除
HEAD・・・リソースがサポートしているメソッドの取得
OPTIONS・・・リソースがサポートしているメソッドの取得
TRACE・・・自分宛にリクエストメッセージを返す試験
CONNECT・・・プロキシ動作のトンネル接続への変更
・ステートフル
クライアントとサーバのやり取りを、サーバ側が記憶すること。
利点はクライアント⇄サーバ間のやりとりが簡潔となること
欠点はサーバ側がクライアント毎に情報管理しなくてはならずまたサーバが複数に増えたときのデータ同期なども難しくなってしまう問題があります。
・ステートレス
クライアントがサーバへリクエストするとき常に必要な情報を渡すこと
利点はサーバ側がクライアントの情報を管理する必要がないためデータ同期など考慮が不要でスケールアウトしやすくなります。
欠点としてはやりとりが冗長であることや、送信するデータ量の増加によりパフォーマンスの低下など問題があります。
・セマンティック
セマンティクス(意味論)が語源
セマンティックWebはHTMLやXMLで書かれたリソースの意味をプログラムから処理できるように記述するための技術を指す
・REST
RESTはWebのアーキテクチャスタイルを指す。
ネットワークシステム(クライアント/サーバー)から派生したアーキテクチャスタイルであり以下の6つを組み合わせたもの
・クライアント/サーバ :ユーザインタフェースと処理を分離する
・ステートレスサーバ :サーバ側でアプリケーション状態を保持しない
・キャッシュ :クライアントとサーバの通信回数を減らす
・統一インターフェース:インターフェースを固定する
・階層化システム :システムを階層に分離する
・コードオンデマンド :プログラムをクライアントにダウンロードして実行する
・Restful
RESTの制約に従ってRESTらしいことをRestfulと呼称する。
個別のWebサービス、WebAPIがRESTの制約に従っている状態
・クールなURI
URIはUniformed Resource Identifierの略で、直訳は統一リソース識別子
リソース(Web情のファイル・画像、ページなど)を識別するための情報となります。
URIを構成する要素は以下3種類
(1) URIスキーム (2) ホスト名 (3) パス
クールなURIとは Webの発明者であるTim Berners-Leeが1998年に発表した「Cool URI's don't change」から来ており、静的でいつでも参照できるURIがクールであると言われています。
・JSON
JSONはJavaScript Object Notationの略で今日のWeb業界ではよく聞きます。
その名の通りJavaScript記法で扱うデータ形式を指します。
・Atom
Atom Syndication Format の略で、XMLフォーマットを指す。
自分はエディタソフトである「Atom」しか知りませんでした。
・microformats
HTMLでさらに意味のあるデータ(イベント、ライセンス情報など)を表現するための技術
・ステータスコード
2xx・・・成功を表すステータスコード
3xx・・・リダイレクトに関するステータスコード
4xx・・・クライアント側のエラーコード
5xx・・・サーバ側のエラーコード
・スケール
スケールアウト(サーバを増設すること)
スケールアップ(サーバ性能を上げること)
最近のトレンドは基本的にスケールアウトさせる方向、繋げて分散処理などもあり。
2010年4月発行のため、今から10年前の技術について記載されており若干古さは否めませんがアーキテクチャなど基本的な考え方や今も使い続けられている技術もあるためとても勉強になります。ふわふわとしたWeb知識について体系的に技術についての理解を深めるにはおすすめの一冊だと思います。