読者です 読者をやめる 読者になる 読者になる

Webを支える技術 (その2)

引き続き「Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus) 」を読んでいる。




この前の続きで第6章~第8章。

  • HTTP
    • HTTPはTCP/IPをベースにしている。
    • HTTPはOSI参照モデルのアプリケーション層にあたる。
    • HTTP1.1は1997年に策定され1999年に改定された。
    • クライアント/サーバーのアーキテクチャスタイル
    • 一連の動作
      • クライアント:リクエストメッセージ構築と送信→サーバ:リクエストメッセージ受信と解析→サーバ:適切なアプリケーションで処理し結果を取得→サーバ:レスポンスメッセージの構築と送信→クライアント:レスポンスメッセージの受信と解析→クライアント:目的を達成するための処理
    • リクエストメッセージ
      • リクエストライン(1行目):メソッドURI
      • ヘッダ(2行目以降):メッセージのメタデータ
      • ボディ:リソースを新たに作る場合などにリソースそのものが入る
    • レスポンスメッセージ
    • ステートレス
      • 送信毎に、毎回、すべてのパラメータを送る
      • サーバー側に何も保存していないので、サーバーが切り替わっても問題ない
      • ただし通信エラー等への対処が必要になってくる。(同じ内容を2回送信したことがわからないなど)
    • メソッド
      • 8つしかない(GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE、CONNECT)
        • Create、Read、Update、Deleteというデータ操作の基本となる4つの処理(CRUD)は、GET、POST、PUT、DELETE
        • GET:リソースの取得
        • POST:リソースの作成、追加
        • PUT:リソースの更新、作成
        • DELET:リソースの削除
        • HEAD:ヘッダの取得
        • OPTIONS:リソースがサポートしているメソッドの取得
    • ステータスコード
      • 1xx:処理中
      • 2xx:リクエスト成功 (例:200 OK、201 Created)
      • 3xx:リダイレクト(例:301 Moved Permanently)
      • 4xx:クライアントエラー(例:400 Bad Request、404 Not Found)
      • 5xx:サーバーエラー(例:500 Internal Sever Error、503 Service Unavailable)
      • ステータスコードは適切なものを返す。
        • (4xx系は再アクセスしても、リクエスト自体が間違っているので取得できない。5xxは再アクセスしたときに取得できる可能性がある。)