P117 強い検証と弱い検証

強い検証は1バイトも違わない完全一致の状態を示す。
弱い検証はデータは完全一致していないが、リソースの意味合いとして同じ事を指す。
弱い検証は例えば広告などの様な動的に入れ替わるものなどに用いられる。

Web API: The Good Parts

Web API: The Good Parts

P116 条件付きリクエスト

最終更新日付(Last-Modified)を使って条件付きリクエストを行う場合には、If-Modified-Sinceヘッダを使う。
エンティティタグ(ETag)を使って条件付きリクエストを行う場合には、If-None-Matchヘッダを使う。
サーバー側では送られてきた情報と現在の情報をチェックし、変更がなければ304を、変更があれば200と変更されたデータを送る。

Web API: The Good Parts

Web API: The Good Parts

P113 ExpiresとCache-Control

・ExpiresはHTTP1.1の仕様によれば、どんなに長い時間を指定するとしても、1年以上は設定すべきではないとしている。
・ExpiresとCache-Controlを同時に利用した場合には、より新しい仕様であるCache-Controlが優先されることになっている。
・max-ageの計算には、Dateヘッダを利用する。なお、Dateヘッダは特殊なケースを除き基本は付けなれけばならないヘッダのため、APIの場合でも付ける様にすべきである。

Web API: The Good Parts

Web API: The Good Parts

P61 S3に対するアクセス権の制御方法

1.ACL
オブジェクトに紐づく唯一の指定方法である。
2.及び3.はいずれもバケットに対するアクセス権設定方法である。

2.バケットポリシー
どのようなユーザー(もしくはグループ)がアクセスできるかを決める方法である。

3.ユーザーポリシー
ユーザーやグループなどIAMアカウントに対して設定する方法である。

どれを使うのか望ましいかは、ガイドラインが公開されている。
docs.aws.amazon.com

Amazon Web Services完全ソリューションガイド

Amazon Web Services完全ソリューションガイド

P60 バケットの命名規則

・3~63文字以内
・英小文字、数字、ハイフンで構成する(最後をハイフンで終わってはいけない)
・バケット名は、ピリオド区切りを指定しても良いが、SSLを利用する場合は推奨しない
IPアドレス形式(192.168.1.1)は利用できない

Amazon Web Services完全ソリューションガイド

Amazon Web Services完全ソリューションガイド

P60 バケットを特定するURL

[仮想ホスト形式]
(通常)
http://バケット名.s3.amazonaws.com/
(フル)
http://バケット名.s3-リージョンのコード(ex.s3-ap-northeast-1).amazonaws.com/

[パス形式]
http://s3-リージョンのコード.amazonaws.com/バケット名

Amazon Web Services完全ソリューションガイド

Amazon Web Services完全ソリューションガイド

P59 リクエスタ支払い

通常S3の課金は、S3パケットを所有しているユーザー(企業に)対して発生する。
しかし、適切なIAMロール設定を行い、ほかのAWSユーザーがアクセスできるように設定した場合は、ダウンロードおよび命令コマンドに対する課金をそのユーザーに請求可能である(但し、容量課金は所有しているユーザー払い)。
この設定をリクエスタ支払いと呼ぶ。
リクエスタ支払いバケット - Amazon Simple Storage Service

Amazon Web Services完全ソリューションガイド

Amazon Web Services完全ソリューションガイド