WEBWeb初心者書籍はじめに業務研修の中でタイトルにある本を読むことになったのでまとめとして書いています。この記事が僕と同じような初心者エンジニアさんのお役に立てれば幸いです。層別されていないAPであれば全ての処理を実施することになる、小規模なシステムでは大丈夫だが複雑な処理になると負荷が大きくなる。三層に分けることで負荷を分散できる。改修が必要になった時、例えばデータの改修であればデータ層だけを改修すればいいので、コストを抑えれらる。MVCモデルModel(データ処理)、View(ユーザに出力)、Cntorller(ユーザからの命令をモデルとヴューに指示)の三つの部分からなる。MVCモデルのメリットは上記の三層構造と似ているが、異なる点として以下が挙げられる。・三層アーキテクチャはWebシステム全体の設計方針であり、MVCはサーバサイド・スクリプトの設計方針だから対象とする範囲が違う・三層アーキテクチャは階層構造だが、MVCは相互に関わりあうWebサーバWebクライアントに対する窓口の役割を果たし、静的ページのデータやAPサーバから転送された動的ページのデータをクライアントに転送する。Webサーバが動作しなくなるとサービスが提供できなくなるため、冗長化という構成をとっている。・冗長化=サーバの機器台数を多くし、一台当たりの負担を少なくするとともに一台が故障しても別のサーバだけでサービスを続けられるようにするWebクライアントWebサーバから送られてきた「HTTPレスポンスを解釈し、ユーザに表示する役割を持つ。代表的なものが、Webブラウザだがこれ以外にもFacebookやTwitter専用クライアントもある。アプリケーションサーバサーバーサイド・スクリプトを実行し、DBへデータ検索や更新、Webサーバに動的ページの転送をしたりする。三層アーキテクチャの中では一番処理の複雑で負荷が高い。予約サイトなどの「全てのやり取りが成功するまで完了しない処理」はリクエスト/レスポンス単位でなく、複数の処理をトランザクション単位で管理しているデータベース管理システムデータの扱いは非常に注意を払う必要があり、冗長化構成をとっている。手法として、ミラーリング・レプリケーション・シェアードティスクなどがある。キャッシュサーバキャッシュサーバは「リクエストに対するレスポンスを覚えておく」という役割を持つ。その覚えておいた記憶を「キャッシュ」と呼び、文書や画像、動画といったコンテンツのキャッシュを「コンテンツキャッシュ」、DBMSのデータ検索要求(クエリ)の結果のキャッシュが「クエリキャッシュ」と呼ばれる。コンテンツやデータの変動を加味した有効期限が定められている。Ajax以前のWEBサイトは同期通信が主だった。同期通信とはクライアントとサーバーが交互に処理を行い、同調して通信を行うこと。問題点としてレスを待つ間、クライアントは待つことしかできないから効率が悪くなってしまう。この欠点を補うために登場したのがAjax。JavaScriptが直接Webサーバと通信を行い、XMLデータとして更新に必要なデータのみをやり取りするため、サーバの負担が少ない。AjaxはWebブラウザの代わりにブラウザ上で動くJSだけが通信を行うため、非同期通信を実現できる。よってレスポンスを待つ間もユーザからの入力などレスポンスに左右されないところは操作することができる。WebAPIプログラムがクライアントとしてデータを送信し、サーバからデータを返送してもらう窓口がWebAPI。EX>Twitter投稿いボタンを押すと指定している投稿もされる。APIの様々な手法=XML-RPC,Atom,SOAPマッシュアップ複数のWebサービスを組み合わせて新たなWebサービスを生み出すこと。使うAP「googleの位置情報」や「アマゾンの購入状況」など。CGIWebサーバがクライアントからの要求に応じてサーバサイド・スクリプトを起動すルための仕組みがCGI。upLoginユーザーは見つかりませんでした。