Real World HTTP

golang HTTP

2018-05-06 22:45:15

Real World HTTP

  • 1章 HTTP/1.0のシンタックス:基本となる4つの要素
  • 2章 HTTP/1.0のセマンティクス:ブラウザの基本機能の裏側
  • 3章 Go言語によるHTTP/1.0クライアントの実装
  • 4章 HTTP/1.1のシンタックス:高速化と安全性を求めた拡張
  • 5章 HTTP/1.1のセマンティクス:広がるHTTPの用途
  • 6章 Go言語によるHTTP1.1クライアントの実装
  • 7章 HTTP/2のシンタックス:プロトコルの再定義
  • 8章 HTTP/2のセマンティクス:新しいユースケース
  • 9章 Go言語によるHTTP/2、HTML 5のプロトコルの実装
  • 10章 セキュリティ:ブラウザを守るHTTPの機能
  • 11章 クライアント視点で見るRESTful API
  • 付録A Go言語のJSONのパース
  • あとがき
  • 索引

1章 HTTP/1.0のシンタックス:基本となる4つの要素

1.6 リダイレクト

p.19

  • リダイレクトを指示するステータスコード
    • 301 Moved Permanently
      • 恒久的
      • ドメイン移転、ウェブサイト引っ越し、HTTPS化
    • 302 Found
      • 一時的
      • 一時メンテナンス、モバイルページ転送
    • 303 See Other
      • 恒久的
      • ログイン後のページ遷移
    • 307 Temporary Redirect
      • 一時的
      • モバイル専用サイトにジャンプしたり、メンテナンスページの表示に使用
    • 308 Moved Permanently
      • 恒久的
      • リダイレクトされたページが別の場所移動した時に使う
        301/308、302/307の違いはメソッド変更の可否

5章 HTTP/1.1のセマンティクス:広がるHTTPの用途

5.8 ウェブサイト間での共通の認証・認可プラットフォーム

p.148

  • 認証(Authentication)
    • ログインしようとしているユーザーが「何者か?」を確認
    • ブラウザを操作している人が、サービスに登録されているどのユーザーIDの所有者なのかを確認
  • 認可(Authorization)
    • 認証済みユーザーに対してどこまでの権限を与えるか

5.8.1 シングルサインオン

p.148

  • 一度サインインしたら複数のシステムがすべて有効になるような仕組み。企業内で広く使われている
  • プロトコルやルールがあるわけではなく、システムの分類名

Kerberos認証

p.149

  • シングルサインオンの実現手段の1つ
  • ユーザー管理の仕組みを1つにまとめる
  • 最初の認証後はチケット保証サーバー(TG)へのアクセストークンである、TGT(Ticket-Granting-Ticket)とセッションキーが得られる。以降の認証ではチケットとセッションキーを利用する

5.8.3 SAML(Security Assertion Markup Language)

p.149

  • HTTP/SOAPを前提としたシングルサインオンの仕組み
  • ドメインをまたいだサービス間でシングルサインオンできる
  • 認証情報のやりとり利用することを目的としたXMLベースの規格

5.8.4 OpenId

p.151

  • 既に登録済みのウェブサービスのユーザー情報を使い、他のサービスにログインすることができる仕組み

5.8.5 OpenSocial

p.154

  • GoogleとMySpaceが共同開発したソーシャル・ネットワークの共通API

5.8.6 OAuth

p.155

  • 認可の仕組み

5.8.7 OpenID Connect

p.158

  • OAuth2.0をベースとした認可だけでなく、認証にも利用できる仕組み