ACID ACID
ACIDは原子性、一貫性、独立性、耐久性を意味します。これら4つの概念はトランザクションの安全性を説明するのに役立ちますが、正確な保証はデータベースや分離レベルによって異なります。
↗画面の背後の部分がどのようにデータを保存し、規則に従い、人々を安全に保つかを学びましょう。
簡単な意味、例、使用時期、公式度、コードネームを含む用語を開く
ACIDは原子性、一貫性、独立性、耐久性を意味します。これら4つの概念はトランザクションの安全性を説明するのに役立ちますが、正確な保証はデータベースや分離レベルによって異なります。
↗APIは、ソフトウェアがソフトウェアと通信するためのルールの集合です。エンドポイントは、そのAPI内の1つのアドレスと1つの操作です。
↗APIのバージョン管理は、クライアントを壊すことなくAPI契約を命名、変更、サポート、廃止するための計画です。すべてのAPIが使用すべき単一のURLやヘッダスタイルはありません。
↗CRUDは作成、読取、更新、削除の略です。これらは保存されたデータを操作する四つの一般的な方法ですが、CRUDはAPIプロトコルではありません。
↗HTTPリクエストは、クライアントがサーバーに送るものです。メソッド、アドレス、ヘッダー、および場合によってはボディを含みます。レスポンスはステータス、ヘッダー、データを返します。
↗HTTPクッキーは、サーバーまたはスクリプトによって設定される小さな名前と値の項目です。ブラウザは、サイト、パス、寿命、セキュリティに関するルールが許可する場合にのみ、それを返送します。
↗HTTPステータスコードは、レスポンス内の3桁の数字です。それはリクエストの標準的な結果と、その結果グループを示します。
↗HTTPメソッドは、リクエストで意図されたアクションの種類を示す単語です。それぞれのメソッドには、安全性、再試行、キャッシュに関する標準的なルールがあります。
↗JSONはデータを共有するためのテキスト形式です。オブジェクト、配列、テキスト、数字、`true` または `false`、および `null` を含むことができます。
↗JSON Web Token(JWT)は、JWSまたはJWEの保護を伴って当事者間でクレームを送信するためのコンパクトな形式です。JWTは単なる形式であり、権限システムではありません。
↗OAuth 2.0は認可フレームワークです。これにより、アプリは個人またはアプリ自体の保護されたデータを使用するための制限付き権限を取得できます。
↗OpenAPI仕様は、HTTP APIを言語に依存せずに記述する方法です。アクション、入力、データの形状、セキュリティ手法、応答、再利用可能なスキーマを一覧で示します。
↗OpenID Connectは、OAuth 2.0上に構築された認証レイヤーです。これにより、アプリはユーザーがサインインしたことを確認でき、サインインに関する標準的な情報を受け取ることができます。
↗REST APIは、注文やユーザーなどのリソースを中心に構築されたHTTPインターフェースです。各リクエストは独立しており、標準のHTTPの意味を使用し、キャッシュをサポートでき、レイヤーを通過することがあります。
↗WebAuthnパスキーは、偽のログインサイトに対抗する公開鍵サインイン認証情報です。プロバイダーと認証器によっては、デバイス間で同期することもあれば、単一のデバイスに留まることもあります。
↗WebSocketは、ウェブアプリとサーバー間で双方向接続を維持します。接続が開かれている間、どちら側もメッセージを送信できます。
↗ウェブセッションは、関連するアクションを一定時間にわたって個別のウェブリクエスト間で保持します。通常、推測が難しいIDをサーバーに保存された状態にリンクさせます。
↗アクセストークンは、アプリが保護されたサービスに送信して何ができるかを示す資格情報です。通常、ルールは発行者、受け入れるサービス、権限、および有効期間を制限します。
↗イベント駆動型アーキテクチャでは、何かが変化した後に1つのコンポーネントがファクトを公開する。他のコンポーネントは、その配信と将来のフォーマット変更に関する明確なルールのもとで後に反応する。
↗ウェブフックは、イベントが起きた時に送られるHTTPの通知です。別のシステムに反応するよう伝えます。
↗エラーバジェットは、SLOウィンドウ中に許容されるサービス低下の量です。これは100%未満の部分に相当します。
↗オフセットページネーションは、選択した数のソート済みレコードをスキップし、設定されたサイズまでの次のページを返します。
↗カーソルページネーションは、固定の並び順で非表示マーカーの後も続きます。前のレコードをすべて数えてスキップすることはありません。
↗キャッシュは、データや結果を一時的にサッと保存しておく場所だよ。待ち時間や同じ作業の繰り返しを減らせるんだ。
↗CORSはブラウザのHTTP安全ルールです。サーバーはどの他のオリジンが応答を読むことができるかをリストします。メソッド、ヘッダー、資格情報を制限することができます。
↗クロスサイトスクリプティング(XSS)は、攻撃者が操作するデータが信頼されたサイト上でブラウザコードとして実行される場合に発生します。
↗クロスサイトリクエストフォージェリ(CSRF)は、サインイン中のブラウザにユーザーが選択していない操作を送信させる攻撃です。ターゲットサイトはブラウザが自動で追加するクッキーやその他の資格情報を信頼します。
↗コンテンツセキュリティポリシー(CSP)は、ブラウザコンテンツのためのHTTPルールです。どのファイルが読み込まれ、どのスクリプトが実行されるかを制限します。
↗コンテンツネゴシエーションとは、HTTPがクライアントの好みとサーバーの利用可能な形式からリソースのバージョンを選択する方法です。
↗コンテンツ配信ネットワーク(CDN)とは、多くの場所にあるシステムのグループです。それは、ユーザーに近い場所からキャッシュされたコンテンツやエッジで作成された応答を提供します。新鮮さと削除を管理する明確なルールがあります。
↗サーキットブレーカーは、失敗する可能性が高いリモートサービスへの呼び出しを停止します。その後、いくつかのテスト呼び出しで回復したかを確認します。
↗サーバーサイドリクエスト偽造(SSRF)は、攻撃者が制御する入力によりサーバーがリクエストを送信する場合に発生します。そのリクエストは到達すべきでない場所に届きます。
↗サーバーレスコンピューティングはホストされるコードの実行である。プロバイダーがサーバーを開始・スケールし、チームは関数やサービスをデプロイする。
↗サービスレベル目標(SLO)は、指定された時間枠内でユーザー向けの指標に対する信頼性の目標です。それは法的な約束ではありません。
↗サーガは複数の保存済みステップを1つのビジネスジョブに結びつけます。後のステップが失敗した場合、以前の処理を修正するために再試行するか、別のステップを追加します。
↗セキュアクッキー属性は、クッキーの移動方法やスクリプトがそれを読み取れるかどうかを制御します。また、クロスサイトでの使用、どのホストおよびパスが受け取るか、そして有効期間も制御します。
↗この学習バンドルは、関連する3つのツールを分けています。セッションはサーバーが認識する連続性を保ちます。クッキーは設定ルールによって送信されるブラウザ管理の状態です。トークンはクレームや権限を運びます。このバンドルは1つの標準的なID用語ではありません。
↗データベースは、整理されたデータを長く保存します。schemaは、どんなデータ、項目、種類、関連付けができるかを決めています。
↗データベースのインデックスは、選択された検索、ソート、またはルールを高速化するための追加データ構造です。ストレージを使用し、データが変更されると追加の作業が発生します。
↗データベーストランザクションは、一緒に完了するか、すべてまとめて取り消されるデータベースの手順のグループです。その分離ルールは、同時に行われている作業とどのように相互作用するかを示します。
↗database migrationは、バージョン管理された変更です。保存されたデータとschemaを、あるはっきりした状態から別の状態へ移行させます。
↗データベース正規化は、関連する事実を整ったテーブルに分割します。これにより、データの重複や、ある事実が変更されたときのミスを減らせます。
↗デッドレターキューは、ソースキューが許可された試行回数の後に処理できなかったメッセージを保持します。人々は制御された再試行の前に失敗を確認することができます。
↗DNSはインターネットの命名システムです。A、AAAA、CNAME、MX、TXTなどのレコードが名前に関する質問に答えます。
↗Domain Nameは、example.comのような、人が読めるインターネット上の名前です。DNSが、ウェブサイト、メール、サービスへ案内します。
↗トランザクション対応アウトボックスは、データの変更とメッセージレコードを1つのローカルデータベーストランザクションで保存します。トランザクションがコミットされた後、リレーが保存されたメッセージを送信します。
↗トランスポート層セキュリティ(TLS)は、信頼できないネットワーク上のデータを保護します。データを隠し、変更を検出し、反対側が誰かを確認します。
↗Network Port は、コンピュータ上の一つのサービスに通信を送るための番号だよ。TCP と UDP がポートを使うよ。
↗バックエンドは、画面の裏側で動くサーバーの部分だよ。ビジネスのルールを適用したり、データを操作したり、他のシステムとつないだりするよ。
↗バックエンドフレームワークは、サーバー用のツールと共通のルールを提供するよ。リクエストの振り分け、データのチェック、保存、そして返信ができるんだ。
↗バックグラウンドジョブは、ページやAPIの応答とは別にサーバーが実行するタスクで、ジョブを開始する場合があります。応答はジョブの完了前に終了することがあります。
↗バルクヘッドパターンは共有リソースを別々のプールに分割します。一つのプールでの問題が他のプールが必要とするすべてのスロットを消費することはありません。
↗ブラウザーストレージはブラウザAPIを通じて個人のデバイスにデータを保持します。それぞれのオプションには異なるサイズ、寿命、形状、安全性の制限があります。
↗ヘルスプローブは、サービスが起動中か、トラフィックの準備ができているか、生存しているかをプラットフォームに知らせる小さなチェックです。
↗メッセージキューは、消費者が処理できるまで作業やメッセージを保持します。プロデューサーと消費者は、異なる時間や速度で動作できます。
↗リクエストの期限は、クライアントが待機をやめる時刻です。各下流呼び出しには、残っている時間のみを渡す必要があります。
↗リダイレクトは、あるアドレスから別のアドレスへ飛ばします。そのステータスを見れば、一時的なのか、ずっと変わらないのかが分かります。
↗レート制限は、1つのID、キー、または時間枠に対して許可されるリクエストや高コストの操作を制御します。
↗ロードシェディングは、システムが容量に近づくと一部の作業を拒否します。これにより、有用な作業が極端な遅延や完全なクラッシュから保護されます。
↗ロードバランサーは、稼働可能なサービスエンドポイントにトラフィックを分散します。サーバーの状態、容量、ルート、および稼働時間のルールを使用します。
↗ワーカー同時実行は、コンシューマーが同時に実行できるジョブの数です。制限はサーバーとそのジョブが呼び出すサービスを保護します。
↗この学習バンドルは、2つの異なる暗号化の概念を比較します。暗号化は、データを秘密に保つために鍵で逆にすることができます。安全なハッシュは一方向であり、整合性を確認したりパスワードを検証したりできます。このバンドルは一つの標準的なプリミティブではありません。
↗暗号ハッシュは、任意の量のデータを一方向に固定長のフィンガープリントに変換します。安全なハッシュは、入力を復元したり、同じフィンガープリントを持つ二つの入力を見つけることを実際上不可能にします。
↗外部キーはデータベースのルールです。1つの列が同じテーブルまたは別のテーブルの有効なキーを指すようにします。`null` はその列に選択されたルールに従います。
↗楽観的同時実行制御により、最初にロックせずに複数人が同時に作業できます。保存の前にバージョンをチェックし、古いデータに基づく変更を拒否します。
↗環境変数とは、アプリケーションコードの外にある名前付き設定です。各環境が異なる値を使用できるようにします。
↗Feature Flagは、ソフトウェアの動いている間にチェックできるスイッチです。コードを新しくデプロイしなくても、機能を変えられます。
↗リトライポリシーは、どの失敗したジョブが再試行できるかを決定します。バックオフは、各失敗後により長い待機時間を追加します。
↗最終的な一貫性とは、変更後しばらくの間、データのコピーが一致しないことを許容することです。新しい変更が止まり、更新が継続されれば、コピーは一致するはずです。
↗少なくとも一度の配信は、メッセージが失われないようにしますが、同じメッセージが複数回届く場合があります。コンシューマは繰り返しを安全に処理する必要があります。
↗承認は、認証された人物やサービスが何を読む、変更する、または実行できるかを決定します。通常、AuthZと略されます。
↗URLは、インターネット上の住所です。スキーム、ホスト、パス、クエリ、フラグメントが、開くべき場所を伝えます。
↗同一生成元ポリシーはブラウザの安全規則です。これは、ある生成元からのページやスクリプトが別の生成元のデータを読み取ったり操作したりする方法を制限します。
↗入力検証は、信頼境界を越えるデータをチェックします。期待される型、形状、範囲、サイズ、および意味を強制します。
↗認証は、人物やサービスが誰であるかを確認することです。通常、AuthNと略されます。
↗認証付き暗号化(AEAD)は、読み取り可能なデータを秘密データに変換し、承認された鍵で元に戻すことができます。また、暗号化されたデータや関連情報が変更されたかどうかも検出します。
↗優雅な劣化は、オプションの依存関係が失敗したときでも、コアの機能を動作させます。結果はより小さく、古く、または詳細が少ない場合があります。
↗スケジュールされたジョブは、選択した時間または繰り返し間隔でバックエンド作業を開始します。そのルールは、遅れた、見逃した、または重複する開始後に何が起こるかを示さなければなりません。
↗冪等性とは、同じ意図した操作を再度行っても、サーバーに対する効果が一度行った場合と同じであることを意味します。返信が完全に同一である必要はありません。
↗