HTTPステータスコード200 OK:詳細解説


HTTPステータスコード200 OKは、クライアントからのリクエストが正常に処理され、関連するデータがレスポンスとして送信されたことを示します。これは、WebブラウザがWebページを閲覧したり、APIからデータを取得したりする際に最も一般的な成功ステータスコードです。

ステータスコードの内訳

  • 200: この数字は、"成功" を意味するステータスコードのカテゴリを示します。
  • OK: このテキストは、リクエストが**"問題なく"** 処理されたことをより具体的に説明します。

発生タイミング

200 OKステータスコードは、以下のような状況で発生します。

  • クライアントがWebページを閲覧し、サーバーが対応するHTMLファイルを返す場合
  • クライアントがAPIにリクエストし、サーバーが期待通りのデータを返す場合
  • クライアントがファイルをアップロードし、サーバーがアップロードが成功したことを伝える場合

プログラミングでの利用

プログラミングにおいて、200 OKステータスコードは、様々な方法で使用されます。以下はその例です。

  • Webサーバー: リクエストが成功したことをクライアントに伝えるために、HTTPレスポンスヘッダーに200 OKステータスコードを設定します。
  • API開発: APIエンドポイントが正常に動作し、期待通りのデータを返していることを示すために、200 OKステータスコードを返します。
  • クライアント側開発: サーバーからのレスポンスが成功したかどうかを確認するために、ステータスコードを検査します。
  • 200 OKステータスコードは、リクエストが成功したことを示すのみであり、必ずしもリクエストされた内容がすべて実行されたことを意味するわけではありません。
  • エラーが発生しても、関連する情報を含むJSONやXMLなどの形式で返される場合、200 OKステータスコードが返されることがあります。
  • 200 OKステータスコード以外にも、様々なHTTPステータスコードが存在し、それぞれ異なる意味を持っています。


from http import HTTPStatus

def my_handler(request):
  # リクエスト処理を行う
  # ...

  if request_was_successful:
    response = make_response(data, status=HTTPStatus.OK)
  else:
    # エラー処理を行う
    # ...

  return response

JavaScript

const http = require('http');

const server = http.createServer((req, res) => {
  // リクエスト処理を行う
  // ...

  if (request_was_successful) {
    res.writeHead(200, { 'Content-Type': 'application/json' });
    res.end(JSON.stringify(data));
  } else {
    // エラー処理を行う
    // ...
  }
});

server.listen(3000);

Go

package main

import (
    "fmt"
    "net/http"
)

func myHandler(w http.ResponseWriter, r *http.Request) {
    // リクエスト処理を行う
    // ...

    if requestWasSuccessful {
        w.WriteHeader(http.StatusOK)
        fmt.Fjson(w, data)
    } else {
        // エラー処理を行う
        // ...
    }
}

func main() {
    http.HandleFunc("/", myHandler)
    http.ListenAndServe(":8080", nil)
}

C#

using System.Net;

public class MyHandler : HttpHandler
{
    public override void ProcessRequest(HttpContext context)
    {
        // リクエスト処理を行う
        // ...

        if (requestWasSuccessful)
        {
            context.Response.StatusCode = HttpStatusCode.OK;
            context.Response.ContentType = "application/json";
            context.Response.WriteJson(data);
        }
        else
        {
            // エラー処理を行う
            // ...
        }
    }
}

PHP

<?php

function myHandler($request) {
  // リクエスト処理を行う
  // ...

  if ($requestWasSuccessful) {
    header('Content-Type: application/json');
    echo json_encode($data);
    exit(200);
  } else {
    // エラー処理を行う
    // ...
  }
}


以下は、200 OKの代替となるステータスコードとその意味です。

  • 201 Created: 新しいリソースが作成されたことを示します。
  • 202 Accepted: リクエストが受け入れられ、処理が進行中であることを示します。
  • 204 No Content: リクエストは成功しましたが、返すべきコンテンツが存在しないことを示します。
  • 206 Partial Content: リクエストされたリソースの一部のみが返されたことを示します。

代替ステータスコードを使用する例

以下は、代替ステータスコードを使用する例です。

  • 新しいリソースを作成した場合: 201 Createdステータスコードを使用します。
  • リクエストが非同期で処理される場合: 202 Acceptedステータスコードを使用します。
  • 空のデータを返す場合: 204 No Contentステータスコードを使用します。

重要なポイント

  • 200 OKは最も一般的な成功ステータスコードですが、必ずしもすべての状況で適切とは限りません。
  • リクエストの処理結果を正確に反映するために、適切なステータスコードを選択することが重要です。
  • ステータスコードの意味を理解し、状況に応じて適切に使用してください。