0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

バックエンドのちょっと詳しいアーキ的な仕組み(API・データ・認証)

0
Last updated at Posted at 2026-07-10

バックエンドのちょっと詳しいアーキ的な仕組み(API・データ・認証)

API・データ・認証を一緒に見る

バックエンドを理解するとき、APIだけ、データベースだけ、と個別に覚えると処理の流れが切れやすくなります。ここでは、リクエストとレスポンス、データの整合性、認証・認可を同じ処理の中で追います。

細かな例外や厳密な定義は一部省略しています。実際の設計では、利用するプロトコルやフレームワークの公式ドキュメントも確認してください。

先に結論

  • バックエンドは、決まった形(API)でリクエストを受け取り、決まった形で応答します。
  • 応答には「データ」と「結果を表す数字(ステータスコード)」が付きます。
  • 「誰か(認証)」と「何をしてよいか(認可)」の判断は、必ずサーバー側で行います。

バックエンドを3つの視点で追う

前々回で「バックエンドは受け付ける・判断する・保存するプログラム」、前回で「言語・フレームワーク・データベース・実行環境の4部品」を見てきました。

ここでは、バックエンドが実際にどうやり取りし、どう正しさを守るのかを、3つの角度から確認します。

  • どんな形でリクエストを受け、応答するのか(API)
  • データの正しさをどう守るのか(トランザクション)
  • 「誰が・何をしてよいか」をどう確かめるのか(認証・認可)

フロントエンド側の「レンダリングとSPA/MPA」に対応する、バックエンド側の“もう一段詳しい仕組み”の回です。

API・データ・認証の3つの視点

1. API:決まった「窓口」でやり取りする

フロントは「このデータをください」「これを保存して」と、バックエンドのAPI(決まった窓口)に要求します。
このやり取りは、主に次の2つの組み合わせで表されます。

  • HTTPメソッド(何をしたいか=動詞)
  • エンドポイント(対象は何か=URL)

代表的なメソッドはこの4つです。

メソッド 役割 イメージ
GET 取得する 見る
POST 新規に作成する 追加する
PUT / PATCH 更新する 書き換える
DELETE 削除する 消す

たとえば「注文一覧を見る」なら GET /orders、「注文を1件追加する」なら POST /orders、というイメージです。
バックエンドは要求を処理し、データ(JSON形式が主流) と、次に説明するステータスコードを返します。

2. HTTPステータスコード:結果を数字で返す

バックエンドは、処理の結果を3桁の数字(ステータスコード)で返します。先頭の数字で、ざっくり意味が分かれます。

区分 ざっくりの意味 よく見る例
2xx 成功 200 OK、201 Created
3xx リダイレクト(移動した) 301、302、304
4xx リクエスト側の問題 400 Bad Request、401 Unauthorized、403 Forbidden、404 Not Found
5xx サーバー側の問題 500 Internal Server Error、503 Service Unavailable

覚え方としては、「2xx=成功、3xx=移動、4xx=こちら(頼み方)のせい、5xx=サーバーのせい」とざっくり掴んでおくと、トラブル時の切り分けがぐっと速くなります。

3. データ整合性:トランザクションで「全部か、なしか」

保存の場面では、「途中で失敗されると困る」処理があります。
典型例が送金です。「Aさんから引く」と「Bさんへ足す」がセットで、片方だけ実行されたら大問題です。

そこで使うのがトランザクションという仕組みです。

  • ひとまとまりの処理を、「全部成功」か「全部なかったことにする(ロールバック)」 のどちらかに保証します。
  • 途中でエラーが起きても、中途半端な状態を残しません。

複数の人が同時に操作する、途中で失敗しうる、といった状況でデータの正しさを守るのは、フロントではなくバックエンド(とデータベース)の重要な仕事です。

APIのリクエストとレスポンス(図)

認証と認可:「誰か」と「何をしてよいか」

セキュリティの話でよく混同されるのが、認証認可です。言葉の意味が違います。

用語 何を確かめるか
認証(Authentication) 「あなたは誰か」 ログインして本人確認する
認可(Authorization) 「あなたは何をしてよいか」 注文削除の権限があるか確認する

たとえば「ログインはできる(認証OK)が、他人の注文は削除できない(認可NG)」というように、2つは別物です。

そして重要なのは、この判断は必ずバックエンド側で行うという点です。
フロントのコードはユーザーが書き換えて送れるため、「ログイン済みかどうか」「その操作をしてよいか」をフロントだけで判断すると、簡単に破られてしまいます。前々回・フロント編で触れた「秘密や最終判断をフロントに置けない」という話は、ここにつながります。

一般的な流れとしては、ログインに成功するとトークン(本人であることの証明書のようなもの)が発行され、以降のリクエストにそれを添えて送り、サーバーが毎回それを確認します。仕組みの名前(トークン、セッションなど)は、いまは知っておく程度で十分です。

認証つきリクエストの流れ(図)

認証・認可・入力確認は、APIの入口から処理までを通して行います。確認の関門として見ると、役割を追いやすくなります。

APIの認証認可と検証の関門

勘違いしやすい解釈

  • 「404が出たら必ずサーバーの不具合」ではありません。
    4xxはリクエスト側(URLの間違いなど)を示すことが多く、サーバーの故障は5xxです。まず数字の先頭で切り分けます。

  • 「ログインできれば何でもできる」ではありません。
    認証(誰か)と認可(何をしてよいか)は別です。ログイン済みでも、権限がなければ実行は拒否されます。

  • 「HTTPSで通信していればデータは絶対に安全」ではありません。
    HTTPSは通信の“経路”を守りますが、「その操作をしてよいか」の判断はサーバー側で別途必要です。通信の暗号化と、権限の確認は別の話です。

  • 「APIは特別で難しい技術」ではありません。
    APIは「決まった形の窓口」のことです。メソッドとURLで要求し、データとステータスコードで返る、というルールが決まっているだけです。

設計や不具合調査で意識すること

  • 不具合調査では、まずステータスコードを見ます。4xxならリクエストの作り方、5xxならサーバー側、と当たりをつけられます。
ステータスコード よくある意味 まず確認すること
200 正常に成功 返ってきたデータの中身が期待どおりか
201 作成に成功 作成されたIDやLocationヘッダが返っているか
400 リクエスト不正 必須パラメータ不足・型違い・JSON形式崩れがないか
401 認証エラー トークン期限切れ・未ログイン状態ではないか
403 権限不足 ログイン済みでも権限ロールが不足していないか
404 対象なし URLの打ち間違い・ID誤り・ルーティング設定漏れがないか
500 サーバー内部エラー サーバーログに例外やスタックトレースが出ていないか
503 一時的に利用不可 メンテナンス中・過負荷・依存先停止がないか
  • ブラウザの開発者ツールのNetworkタブで、実際のメソッド・URL・ステータス・レスポンスの中身を確認する習慣をつけると、フロントとバックのどちらの問題かを切り分けやすくなります。
  • 認証まわりは、自前でゼロから作るより、フレームワークや実績のある仕組み・ライブラリに任せるのが安全です。セキュリティは「自作しない」判断も大切です。

まとめ

  • バックエンドは、API(メソッド+URL)で要求を受け、データとステータスコードで応答します。
  • ステータスコードは「2xx成功・3xx移動・4xxこちらのせい・5xxサーバーのせい」でざっくり分かれます。
  • データの正しさはトランザクション(全部か、なしか)で守られます。
  • 「誰か(認証)」と「何をしてよいか(認可)」は、必ずサーバー側で判断します。
  • 次回は、ここまでのフロント編・バック編をつなげ、1つの操作が全体をどう往復するのかを通しで見ていきます。

この理解のあとに進めていけること

  • 普段使うWEBサービスで操作をしながら、ブラウザの開発者ツール(F12)のNetworkタブを開き、飛んでいるリクエストのメソッドと、返ってくるステータスコードを見てみます。「いまのは GET で 200 だな」と読めるようになると、裏側の動きが一気に身近になります。

関連リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?