CheatSheet
日本語 icon日本語English iconEnglish
チートシートとはカンニングペーパーのことです。それが転じて、本来覚えることをまとめておいたものです。
要点をすぐに参照できるようにまとめてみました。

HTTPステータスコード

エンジニアのためのWebチートシート

HTTPステータスコードは、HTTPリクエストに対するサーバーの応答状態を示す3桁の数値コードです。 1xx〜5xxの各カテゴリと、よく使われるステータスコードをチートシートにまとめました。

1xx 情報レスポンス

リクエストを受け取り、処理を続行中であることを示します。

ステータスコード説明
100 Continueリクエストの最初の部分が受信され、クライアントは残りを送信してよい。
101 Switching Protocolsサーバーがプロトコルの切り替え(例:WebSocket)に同意した。
102 Processingサーバーがリクエストを受信し処理中だが、まだレスポンスは返せない。

2xx 成功レスポンス

リクエストが正常に受信、理解、受理されたことを示します。

ステータスコード説明
200 OKリクエストが成功した。最も一般的なレスポンス。
201 Createdリクエストが成功し、新しいリソースが作成された。
202 Acceptedリクエストは受理されたが、まだ処理は完了していない。
204 No Contentリクエストは成功したが、返すコンテンツがない。

3xx リダイレクション

リクエストを完了するために追加のアクションが必要であることを示します。

ステータスコード説明
301 Moved Permanentlyリソースが恒久的に新しいURLに移動した。SEOに影響あり。
302 Foundリソースが一時的に別のURLに移動している。
303 See Otherレスポンスを別のURLでGETリクエストとして取得する必要がある。
304 Not Modifiedリソースが変更されていないため、キャッシュを使用してよい。
307 Temporary Redirect一時的なリダイレクト。HTTPメソッドとボディは変更されない。
308 Permanent Redirect恒久的なリダイレクト。HTTPメソッドとボディは変更されない。

4xx クライアントエラー

リクエストに誤りがあり、サーバーが処理できないことを示します。

ステータスコード説明
400 Bad Requestリクエストの構文が無効、またはパラメータが不正。
401 Unauthorized認証が必要。ログインしていないか、認証情報が無効。
403 Forbiddenアクセス権限がない。認証済みでも権限が不足している場合。
404 Not Foundリクエストしたリソースが見つからない。最も一般的なエラー。
405 Method Not AllowedリクエストのHTTPメソッドが許可されていない。
408 Request Timeoutリクエストがタイムアウトした。クライアントの送信が遅すぎる。
409 Conflictリクエストが現在のリソースの状態と競合している。
413 Payload Too Largeリクエストボディが大きすぎてサーバーが処理できない。
415 Unsupported Media Typeサポートされていないメディアタイプ(Content-Type)。
422 Unprocessable Entityリクエストの構文は正しいが、意味的に処理できない。バリデーションエラー。
429 Too Many Requestsリクエストが多すぎる。レートリミットに達した。

5xx サーバーエラー

サーバー側でエラーが発生し、リクエストを処理できないことを示します。

ステータスコード説明
500 Internal Server Errorサーバー内部でエラーが発生した。
502 Bad Gatewayゲートウェイまたはプロキシが上流サーバーから無効なレスポンスを受け取った。
503 Service Unavailableサーバーが一時的に利用不可。メンテナンスや過負荷の場合。
504 Gateway Timeoutゲートウェイまたはプロキシが上流サーバーからの応答を待機中にタイムアウトした。

使用例

Fetch APIの基本

  • fetch()でレスポンスのステータスコードを確認する基本的な方法です。

    const response = await fetch('/api/users')
    
    console.log(response.status)  // 200
    console.log(response.ok)      // true (200-299)
    
    if (response.ok) {
      const data = await response.json()
      console.log(data)
    }

Fetchエラーハンドリング

  • ステータスコードに応じたエラーハンドリングの実装例です。

    async function fetchData(url) {
      const response = await fetch(url)
    
      switch (response.status) {
        case 200:
          return await response.json()
        case 401:
          throw new Error('Unauthorized')
        case 403:
          throw new Error('Forbidden')
        case 404:
          throw new Error('Not Found')
        case 429:
          throw new Error('Too Many Requests')
        case 500:
          throw new Error('Internal Server Error')
        default:
          throw new Error(`HTTP Error: ${response.status}`)
      }
    }

Express レスポンス

  • Express.jsでステータスコードを設定してレスポンスを返す例です。

    // 200 OK
    app.get('/api/users', (req, res) => {
      res.status(200).json({ users: [] })
    })
    
    // 201 Created
    app.post('/api/users', (req, res) => {
      const user = createUser(req.body)
      res.status(201).json(user)
    })
    
    // 204 No Content
    app.delete('/api/users/:id', (req, res) => {
      deleteUser(req.params.id)
      res.status(204).send()
    })
    
    // 400 Bad Request
    app.post('/api/users', (req, res) => {
      if (!req.body.email) {
        res.status(400).json({ error: 'Email is required' })
      }
    })
    
    // 404 Not Found
    app.get('/api/users/:id', (req, res) => {
      const user = findUser(req.params.id)
      if (!user) {
        res.status(404).json({ error: 'User not found' })
      }
    })

Related Goods

  • ケーブルに取り付け可能なTypeCとLightningの変換アダプタです。
スタイリッシュなデザインで、Apple製品との相性抜群です。
    ケーブルに取り付け可能なTypeCとLightningの変換アダプタです。 スタイリッシュなデザインで、Apple製品との相性抜群です。
    詳細をみる
  • お気に入りのサウンドデバイスをすぐ取り出せる位置にディスプレイさせておくことができます。
    お気に入りのサウンドデバイスをすぐ取り出せる位置にディスプレイさせておくことができます。
    詳細をみる

WebTerm - Recommended tools

WebTermは、ブラウザでLinuxコマンド・Gitコマンドを安全に実行でき、チュートリアル式で学べるターミナルサンドボックスです。
AIコーディングツールの普及に伴い、CLIの基礎知識を身につける重要性は増しています。実際のターミナルを操作するのに抵抗がある方でも、WebTermはローカル環境を壊す心配がありません。「会員登録不要・無料」で利用でき、学習環境として最適です。

WebTerm Logo

WebTerm

Browser Terminal Sandbox for Learning CLI

開く

All Cheatsheets

エンジニア・プログラマー向けの便利なチートシートを多数まとめています(SP/Tablet/PC対応)
すべてのチートシートを見る