サーバー応答 204 No Content
HTTP ステータスコード 204 (No Content) の理解
HTTP ステータスコード 204 は、ウェブ開発において重要な役割を果たします。このコードは、リクエストが正常に処理されたことをサーバーがクライアントに通知し、しかし応答に送信するデータがないことを示します。このコードの正しい使用法、実践的な例、誤用のケースとその修正方法について説明します。
ステータスコード 204 の特性
- 定義: ステータスコード 204 は、リクエストが正常に完了したが、返すデータが存在しないことを示します。
- 使用時期: データが不要な場合、特にリソースの削除や更新後に使用されます。
- 他のステータスコードとの違い:
- 200 OK: データが正常に返される場合に使用されます。
- 204 No Content: データが返されない場合に使用されます。
ステータスコード 204 の実践的な使用例
例 1: データなしでのリクエストの成功
シナリオ: リソースの削除
fetch('/api/resource/1', {
method: 'DELETE'
})
.then(response => {
if (response.status === 204) {
console.log('リソースが削除されました。');
}
});
例 2: コンテンツなしでのデータ更新
シナリオ: ユーザープロフィールの更新
import requests
response = requests.put('/api/user/profile', json={'name': '新しい名前'})
if response.status_code == 204:
print('プロフィールが更新されました。')
例 3: データなしでのアクション確認
シナリオ: ユーザーのアクション確認
<?php
header("HTTP/1.1 204 No Content");
?>
ステータスコード 204 の使用における誤りとその修正
一般的な誤り
- 応答にデータを送信すること。
- コンテンツが必要な状況での不適切な使用。
修正方法
JavaScript での修正例
// 誤った例
fetch('/api/resource', {
method: 'POST',
body: JSON.stringify({ data: '何か' })
}).then(response => {
if (response.status === 204) {
console.log('成功');
}
});
// 修正例
fetch('/api/resource', {
method: 'DELETE'
});
Python での修正例
# 誤った例
response = requests.delete('/api/resource', json={'data': '何か'})
if response.status_code == 204:
print('成功')
# 修正例
response = requests.delete('/api/resource')
if response.status_code == 204:
print('成功')
PHP での修正例
<?php
// 誤った例
header("HTTP/1.1 204 No Content");
echo "データ"; // 不適切
// 修正例
header("HTTP/1.1 204 No Content"); // データなしでの応答
?>
ステータスコード 204 の正しい使用に関するヒント
- API 設計に関する推奨: 不要なデータを返さないように設計する。
- テスト方法: ステータスコード 204 の送信をシミュレートし、実際にレスポンスが空であることを確認する。
ステータスコード | 説明 |
---|---|
200 OK | リクエストが正常に処理され、データが返された。 |
204 No Content | リクエストが正常に処理され、返すデータがない。 |
404 Not Found | 要求したリソースが見つからない。 |