TCP/IPについて
インターネットのネットワークプロトコルは階層型になっている
- ネットワークインターフェイス層
- インターネット層
パケット単位でデータのやりとり。IPが相当する部分。データ送り出すことは保証するが、送り先に辿り着いたかの保証はしない。 - トランスポート層
TCPが相当するところ。データの転送の保証をする。接続先の相手にコネクションを貼ってデータの抜け漏れがないかチェックする。 どのアプリケーションにデータが渡るか決めるのがポート番号。 - アプリケーション層
メールやDNSやHTTPを実現するところ。
ソケット・・・ネットワークのデータのやりとりを抽象化したAPI。
ステートレス
HTTPはステートレスなプロトコル。
ステートレス ←→ ステートフル
ステートレスでは・・ - アプリケーション状態を保持しない
- クライアントのリクエストメッセージに必要な情報をすべて含める(自己記述的メッセージ)
- サーバ側のシステムが単純になる
- でも毎回必要な情報を送るので送信するデータ量が多くなる
- ネットワークトラブルが起きたときにリクエストが処理されたかわからないので通信エラーへの対処が必要
ステートフル
- 代表的なものにFTPがある
- クライアントの数がふえると同期するサーバも増やさなくてはいけなくて大変
アプリケーション状態・・セッション状態(ログインしてからログアウトするまで)のこと
HTTPのメソッド8個
POSTとPUT
どっちでもリソースの作成ができる。でも、クライアントがURIを決めたいときはPUTが適しているが そのURIが存在しているか調べたり、クライアントが内部実装を熟知していないといけなかったりするので 特別な理由がない場合はPOSTでリソース生成をしたほうがよい
べき等
冪等 - Wikipedia 「ある操作を1回行っても複数回行っても結果が同じであること」
- GET HEAD ・・・ べき等 で 安全(通信エラーが起こっても結果がかわらない)
- PUT DELETE ・・・ べき等
- POST ・・・べき等ではなく安全でもない
POSTの誤用に注意
GET PUT DELETE で実現できる機能はべき等と安全性が利用できるのでなるべくそれで実現する
ステータスコード
クライアントの挙動を左右するのでステータスコードの選択は重要。
ステータスコードは先頭の数字で分類されている
- 1** 処理中(クライアントはリクエストを継続するか再送信)
- 2** 成功
- 3** リダイレクト(レスポンスメッセージの locationヘッダを見て新しいリソースに接続する)
- 4** クライアントエラー
- 5** サーバーエラー
認証
- Basic認証 Basic認証 - Wikipedia
- Digest認証 Digest認証 - Wikipedia
- WSSE認証 https://wiki.suikawiki.org/n/WSSE%E8%AA%8D%E8%A8%BC$14454
- OpenID OpenIDとは? - Yahoo! JAPAN IdP(アカウントを提供する側)のwebサービスのアカウントで他のwebサービスにログインできるようになる
- OAuth OAuth - Wikipedia webサービス間での許可の委譲
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 143人 クリック: 4,320回
- この商品を含むブログ (181件) を見る