WEBを支える技術まとめ
WEBとは
ハイパーメディアにより構成された分散システムである
RESTアーキテクチャスタイル
クライアント/サーバ
クライアントとサーバに分離して処理をすることで、クライアントをマルチプラットフォームにできる
ステートレスサーバ
サーバにアプリケーション状態を持たない
それにより、サーバの実装を簡略化できる
RESTから見るとCookieを使ったセッション管理は間違った運用
必要最低限で使用するようにする
キャッシュ
一度取得したリソースをクライアントで使い回す
サーバとクライアント間の通信を減らすことでネットワークの帯域や処理時間を縮小し、効率的に処理する
統一インターフェース
URIで指定したリソースに対する操作を、統一した限定的なインタフェースで行う
HTTPではGET、POSTなどの8個のメソッドだけに限定されている
インタフェースを統一することでクライアントとサーバの実装の独立性が上がる
階層化システム
システムをいくつかの階層に分離する
コードオンデマンド
プログラムコードをサーバからダウンロードし、クライアント側で実行する
クライアントを後から拡張できる
クライアント/サーバ
クライアントとサーバに分離して処理をすることで、クライアントをマルチプラットフォームにできる
ステートレスサーバ
サーバにアプリケーション状態を持たない
それにより、サーバの実装を簡略化できる
RESTから見るとCookieを使ったセッション管理は間違った運用
必要最低限で使用するようにする
キャッシュ
一度取得したリソースをクライアントで使い回す
サーバとクライアント間の通信を減らすことでネットワークの帯域や処理時間を縮小し、効率的に処理する
統一インターフェース
URIで指定したリソースに対する操作を、統一した限定的なインタフェースで行う
HTTPではGET、POSTなどの8個のメソッドだけに限定されている
インタフェースを統一することでクライアントとサーバの実装の独立性が上がる
階層化システム
システムをいくつかの階層に分離する
コードオンデマンド
プログラムコードをサーバからダウンロードし、クライアント側で実行する
クライアントを後から拡張できる
ULCODC$SS
RESTを無理やり採用する必要はない
より適したアーキテクチャスタイルを採用するのが賢明
URI
クールなURI
URIは変わらないのが理想
プログラム言語に依存した拡張子やパスを含めない
メソッド名やセッションIDを含めない
URIはリソースを表現する名詞にする
少ない文字数や人にわかりやすい文字を使うことがクールなURI
URIを変えたい時は古いURIから新しいURIにリダイレクトするようにする
URIはクライアントにとって不透明
HTTP
HTTPとは
ハイパーテキストの転送用プロトコル
実際には、画像や音声、動画やプログラムファイルなどコンピュータで扱えるデータであればなんでも転送できる
HTTPはステートレス性
サーバはクライアントの状態を覚えずに処理に必要な情報を毎回転送させる
サーバはクライアントのアプリケーション状態を覚える必要がない為、サーバ側のシステムは単純になる
但し、送信するデータ量が多くなったり、認証などのサーバに負荷がかかる処理を繰り返してしまう
通信エラーの場合、複数回同じ処理をしてしまうことがある
HTTPとは
ハイパーテキストの転送用プロトコル
実際には、画像や音声、動画やプログラムファイルなどコンピュータで扱えるデータであればなんでも転送できる
HTTPはステートレス性
サーバはクライアントの状態を覚えずに処理に必要な情報を毎回転送させる
サーバはクライアントのアプリケーション状態を覚える必要がない為、サーバ側のシステムは単純になる
但し、送信するデータ量が多くなったり、認証などのサーバに負荷がかかる処理を繰り返してしまう
通信エラーの場合、複数回同じ処理をしてしまうことがある
ステートフルだと、サーバが増えると複数のサーバ間でアプリケーション状態を同期するのが大変
セッション管理が可能
HTTPメソッド
GET
リソースの取得
POST
リソースの作成、追加
PUT
リソースの更新、作成
DELETE
リソースの削除
HEAD
リソースのヘッダの取得
OPTION
リソースがサポートしているメソッドの取得
GET
リソースの取得
POST
リソースの作成、追加
PUT
リソースの更新、作成
DELETE
リソースの削除
HEAD
リソースのヘッダの取得
OPTION
リソースがサポートしているメソッドの取得
リソースの作成はPOSTで行いURIもサーバ側で決定する
いざとなればPOSTでなんでもできる
べき等性と安全
べき等性とは
同じ処理を何度繰り返しても結果が同じになること
安全とは
操作対象のリソースの状態を変化させないこと
べき等 | 安全 | |
---|---|---|
GET | ◯ | ◯ |
POST | ||
PUT | ◯ | |
DELETE | ◯ | |
HEAD | ◯ | ◯ |
ハイパーメディアフォーマット
HTML
マークアップ言語
webの基本的な技術
microformats
HTMLの中でさらに意味のあるデータを表現するための技術
プログラムから見てわかりやすくする
Atom
拡張性のあるフィード
JSON
様々なプログラム言語から扱いやすいデータ構造を記述できる
そのため、プログラム言語間でデータを受け渡すことができる
クロスドメイン通信
AjaxのXMLHttpRequestは、セキュリティ上の制限からJavaScriptファイルを取得したのと同じサーバとしか通信ができない
不特定多数のドメインに属するサーバにアクセスすることをクロスドメイン通信と呼ぶ
XMLHttpRequestではクロスドメイン通信ができない
HTMLの<script>要素を用いると、複数のサイトからJavaScriptファイルが読み込める
<script src="http://hogehoge.jp/foo.js"></script>
みたいな
JSONP
JSONPは<script>要素を使いクロスドメイン問題を回避する
オリジナルのJSONをクライアントが指定したコールバック関数名でラップして、ドメインの異なるサーバからデータを取得する
(一度はまったことがあったので、この説明はありがたかった)
WEBサービスの設計
人からもプログラムからもわかりやすい構造を心がける
最後に
まだまだ理解があまりできていないところもあるので、何度か読んでいこうと思う
Author And Source
この問題について(WEBを支える技術まとめ), 我々は、より多くの情報をここで見つけました https://qiita.com/sizukutamago/items/442daa590da2c2d50e9e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .