ホーム·HTTPコードとヘッダー
広告

暗号資産取引所の登録特典

登録するだけで受け取れる特典です。条件は各取引所の告知をそのまま載せています。

HTTPステータスコードとヘッダー132種

404や500が何を意味するのか、Content-TypeやCache-Controlが何をするのかを一行でまとめました。

ステータスコード

1xx 情報4

進行中の知らせです。本当の応答はこの後に来ます。

2xx 成功10

要求が問題なく通ったという意味です。

3xx 転送8

別の場所へ行くようにという意味です。恒久か一時かで分かれます。

4xx 要求の誤り29

要求側に問題があるという意味です。同じものを送ればまた失敗します。

400 Bad Request要求そのものが壊れていて読めないという意味です。401 Unauthorized誰であるかを示していないという意味です。ログインすれば解けます。402 Payment Required支払いが必要という意味です。標準にはありますが実際にはあまり使われません。403 Forbidden誰であるかは分かっているが権限がないという意味です。ログインしても変わらないことがあります。404 Not Foundその住所には何もないという意味です。URLが違うか、すでに消えています。405 Method Not Allowedその住所はあるが、その方式は受け付けないという意味です。406 Not Acceptable要求された形式では返せないという意味です。407 Proxy Authentication Required中間のサーバーが先に認証を求めるという意味です。408 Request Timeout待ったが要求が最後まで届かなかったという意味です。409 Conflict今の状態とぶつかって処理できないという意味です。同時に編集したときに出ます。410 Gone意図的に消され、戻らないという意味です。404よりはっきりした別れです。411 Length Required本文の長さを示していないという意味です。412 Precondition Failed添えて送った条件が合わなかったという意味です。413 Content Too Large送った本文がサーバーの受け入れる大きさを超えたという意味です。414 URI Too Long住所が長すぎるという意味です。クエリを付けすぎたときに出ます。415 Unsupported Media Type送った本文の形式を扱えないという意味です。416 Range Not Satisfiable要求された範囲がファイルの外だという意味です。417 Expectation FailedExpectヘッダーに書いた期待に応えられないという意味です。418 I'm a teapotコーヒーを淹れてという要求をティーポットが断る、という冗談のコードです。421 Misdirected Requestこのサーバーが受けるべき要求ではないという意味です。422 Unprocessable Content形式は正しいが内容が規則に反していて処理できないという意味です。423 Lockedその資源が施錠されているという意味です。424 Failed Dependency先の要求が失敗したので、この要求もできないという意味です。425 Too Early再送の危険があるのでまだ処理しないという意味です。426 Upgrade Required別のプロトコルへ切り替えないと続けられないという意味です。428 Precondition Required条件を付けて送る必要があるという意味です。上書き事故を防ぐためです。429 Too Many Requests要求が多すぎるという意味です。Retry-Afterに再試行の時間が入ります。431 Request Header Fields Too Largeヘッダーが大きすぎるという意味です。クッキーがたまったときに出ます。451 Unavailable For Legal Reasons法的な理由で遮断されたという意味です。番号は小説『華氏451度』に由来します。

5xx サーバーの誤り11

サーバー側に問題があるという意味です。しばらくして試す価値があります。

ヘッダー

リクエストヘッダー55

ブラウザーがサーバーへ送るときに付けるヘッダーです。

Acceptどの形式で受け取りたいかを伝えます。Accept-Encoding圧縮方式を伝えます。gzipやbrを使うと転送量が大きく減ります。Accept-Language希望する言語を伝えます。多言語サイトはこの値を見て選びます。Authorization身元を証明する値です。トークンやIDとパスワードが入ります。Cookie先にサーバーが置いたクッキーを送り返します。Hostどのドメイン宛ての要求かを示します。一台のサーバーが複数サイトを持てるのはこのためです。If-Modified-Sinceその時刻より後に変わっていたときだけ送るように求めます。If-None-Match持っているETagと違うときだけ送るように求めます。キャッシュはこうして確かめます。Origin要求の出どころを伝えます。ブラウザーが付け、CORSの判断の基準になります。Rangeファイルの一部だけを求めます。再開やシークはこれで実現します。Refererどのページから来たかを伝えます。綴りの誤りのまま標準になりました。User-Agentどのブラウザーと機器かを伝えます。今はほとんどが似たように偽装されています。Sec-Fetch-Destその要求が何に使われるか(画像かスクリプトか)を伝えます。Sec-Fetch-Mode要求が同一出所かCORSかを伝えます。Sec-Fetch-Site要求が同じサイトからか別のサイトからかを伝えます。DNT追跡しないでほしいという要求です。強制力がなくほとんど無視されます。Expect本文を送る前に、サーバーが受け取るかを先に尋ねます。Forwarded中継を経た要求の元の情報を記録します。From要求した人のメールアドレスを入れます。クローラーが連絡先として使います。If-Match持っているETagと同じときだけ処理するように求めます。上書き事故を防ぎます。If-Range条件が合えば続きから、合わなければ最初から受け取ります。Max-Forwards中間サーバーを何回まで経由してよいかを決めます。Proxy-Authorization中間サーバーに示す認証情報です。TE転送中にどの符号化を受け入れるかを伝えます。Upgrade-Insecure-Requestshttpのリンクもhttpsに変えてほしいという要求です。X-Forwarded-For中継を経た要求の元のIPを入れます。標準ではありませんが広く使われます。X-Forwarded-Proto元の要求がhttpだったかhttpsだったかを伝えます。X-Requested-WithJavaScriptからの要求であることを示していた古い慣習です。Accept-Charsetクライアントが受け取れる文字コードを伝えます。今はほとんど使われていません。If-Unmodified-Sinceその時刻より後に変わっていない場合だけ処理してほしいと伝えます。上書き事故を防げます。Sec-CH-UAブラウザーの名前と大きい版番号を伝えます。User-Agentの代わりに作られたものです。Sec-CH-UA-Mobile携帯かどうかだけを伝えます。真偽の1つの値だけを持ちます。Sec-CH-UA-Platformどの基本ソフトから来たかを伝えます。版番号は別に問い合わせる必要があります。Save-Data通信量を節約したいという意向を伝えます。軽い版を返すことができます。Device-Memory端末のおおよそのメモリ量を伝えます。値はわざと大まかに丸めてあります。Early-Data手続きが終わる前の早いデータとして送ったという印です。再送の危険があります。Access-Control-Request-Method本番の要求で使う方式を前もって尋ねます。事前問い合わせにだけ付きます。Access-Control-Request-Headers本番の要求に付ける見出しを前もって尋ねます。事前問い合わせにだけ付きます。Sec-Purpose先読みの要求かどうかを伝えます。prefetchならまだ押されていないという意味です。Sec-CH-UA-Arch端末のCPU構造を伝えます。armかx86かをサーバーが知れます。Sec-CH-UA-Model端末の機種名を伝えます。実際に値が入るのはほぼ携帯電話だけです。Sec-CH-UA-Platform-VersionOSのバージョンを伝えます。Sec-CH-UA-Platformと対になります。X-Forwarded-Hostプロキシを通る前にブラウザが書いた元のホスト名です。X-Real-IPプロキシが元の接続元アドレスを書いて渡します。標準ではありませんが広く使われます。Alt-UsedAlt-Svcを見て別のサーバーへ移ってきたことを伝えます。堂々巡りを防げます。Sec-WebSocket-KeyWebSocketへの切り替えを求めるときに送る乱数です。サーバーが加工して返します。Sec-WebSocket-Version使いたいWebSocket規格の版番号です。今は事実上13だけです。Last-Event-ID途切れたサーバー送信イベントを再開するとき、最後に受け取った番号を伝えます。Traceparent一つのリクエストが複数のサービスを通る流れをつなぐ追跡IDです。Baggageリクエストに付いて回り、各サービスが共通で読む名札を運びます。Idempotency-Key同じ要求が二度届いても一度だけ処理させる鍵です。決済でよく使われます。Preferサーバーに「こうしてほしい」という希望を伝えます。守るかどうかは自由です。Sec-GPC個人情報を売ったり渡したりしないでほしい、という意思をブラウザが代わりに伝えます。Sec-CH-Prefers-Color-Scheme利用者が明るい画面と暗い画面のどちらを好むかを伝えます。Sec-CH-UA-Full-Version-Listブラウザとエンジンの完全なバージョン一覧を伝えます。User-Agentの代わりです。

レスポンスヘッダー56

サーバーがブラウザーへ返すときに付けるヘッダーです。

Access-Control-Allow-Originどの出所がこの応答を読んでよいかを決めます。CORSの中心です。Access-Control-Allow-Methods別出所からの要求に許す方式を並べます。Access-Control-Allow-Headers別出所からの要求に許すヘッダーを並べます。Access-Control-Allow-Credentialsクッキーを載せた別出所の要求を許すかを決めます。Access-Control-Max-Age事前要求の結果をどれだけ再利用してよいかを決めます。Ageこの応答がキャッシュにとどまっていた時間です。Allowその住所が受け付ける方式を伝えます。405と一緒に来ます。Content-Disposition画面で開くか保存するかを決めます。ファイル名もここに入ります。Content-Security-Policyどこから来たスクリプトや画像を実行・表示してよいかを決めます。XSSを防ぐ柵です。ETagその版の指紋です。中身が変わると値も変わり、キャッシュが気づきます。Expiresこの時刻を過ぎたら古いものとして扱うように、という意味です。Last-Modified最後に変わった時刻です。条件付き要求の基準になります。Location次に行く住所です。転送応答や201と一緒に来ます。Permissions-Policyカメラ・マイク・位置などの機能をどの文書が使えるかを決めます。Referrer-Policy出所の情報をどこまで送るかを決めます。Retry-Afterいつ再試行すればよいかを伝えます。429や503と一緒に来ます。Server応答したサーバーのソフトウェアを伝えます。詳しく書くと攻撃の手がかりになります。Set-Cookieブラウザーにクッキーを置きます。HttpOnlyとSecureを付けるのが安全です。Strict-Transport-Securityこれ以降このサイトへはhttpsだけで来るようブラウザーに刻みます。Timing-Allow-Origin別の出所が性能の計測値を読んでよいかを決めます。Vary同じ住所でもどのヘッダー次第で応答が変わるかを伝えます。キャッシュはこれを見て分けます。WWW-Authenticateどの方式で認証するかを知らせます。401と一緒に来ます。X-Content-Type-Options形式をブラウザーが勝手に推測しないようにします。X-Frame-Options他のサイトがこのページを枠に入れられないようにします。X-XSS-Protection古いブラウザーのXSSフィルターを有効にしていたヘッダーです。今はCSPが代わります。Cross-Origin-Opener-Policy別の出所が窓を握れないよう切り離します。Cross-Origin-Resource-Policyこの資源をどの出所が取得できるかを決めます。Cross-Origin-Embedder-Policy出所の違う資源を無断で取り込めないようにします。Content-Range送った断片が全体のどこに当たるかを伝えます。206と一緒に来ます。Accept-Ranges部分要求を受け付けるかを伝えます。bytesなら再開できます。Accept-Patchこの場所が受け付ける修正の形式を伝えます。PATCHを使う前に読みます。Accept-Postこの場所がPOSTで受け付ける形式を伝えます。送る前に確かめられます。Alt-Svc同じ内容をより良い経路でも受け取れると伝えます。HTTP/3の案内によく使います。Clear-Site-Data保存したものを消すようブラウザーに指示します。ログアウトのときに使います。Link関係のある別の場所を見出しで伝えます。先読みの案内にも使います。NELブラウザーが出会った通信の失敗をどこへ報告するかを決めます。Report-To報告を受け取る場所の名前と住所をあらかじめ登録しておきます。Server-Timingサーバーの中でどの段階にどれだけかかったかを知らせます。開発者道具で見られます。SourceMapまとめる前の元のコードがどこにあるかを指し示します。X-DNS-Prefetch-Control住所の先読みを行うかどうかを決めます。使わなければ通信が減ります。X-Permitted-Cross-Domain-Policies古い差し込み部品がこの場所の資料を持って行ってよいかを決めます。X-Robots-Tag検索ロボットへの方針を見出しで伝えます。画像やPDFにも掛けられます。Origin-Agent-Clusterこの出所を他と切り離して扱ってほしいと頼みます。安定して動きやすくなります。Proxy-Authenticate代理が身分を明かす方法をどう求めているかを伝えます。407と一緒に来ます。Access-Control-Expose-Headers台本が読んでよい応答の見出しを開きます。既定では数個しか読めません。CDN-Cache-Control配信網にだけ効く保存の決まりです。ブラウザーはこれを見ません。Accept-CHサーバーが欲しいクライアントヒントを伝えます。次の要求から値が付きます。Critical-CHそのヒントがないとページを取り直す必要があると伝えます。最初の要求をもう一度送ります。Reporting-Endpointsエラー報告の送り先を決めます。古いReport-Toの後継です。X-Powered-Byサーバーが使う技術名を明かします。知らせても得がないので消すのが普通です。X-CacheCDNが蓄えていたもので答えたかを伝えます。HITなら元のサーバーまで行っていません。Refresh数秒後に別の場所へ移るよう指示します。標準にはありませんがブラウザは従います。Sec-WebSocket-Accept受け取った鍵を決まった方法で加工して返します。これが合って初めて接続が開きます。Speculation-Rulesどの場所を先に取っておくかをブラウザに規則として伝えます。No-Vary-Searchアドレスの「?」以降が違っても同じキャッシュを使ってよいと伝えます。X-UA-Compatible古いInternet Explorerにどの描画モードを使うか伝えていたヘッダーです。

双方で使う22

要求にも応答にも付きうるヘッダーです。

Cache-Controlどれだけ長く、どこまでキャッシュしてよいかを決めます。性能の半分はここで決まります。Connection接続を続けるか切るかを伝えます。HTTP/2以降は使いません。Content-Encoding本文をどの方式で圧縮したかを伝えます。Content-Language本文がどの言語で書かれているかを伝えます。Content-Length本文が何バイトかを伝えます。Content-Type本文の形式と文字符号化を伝えます。これが誤ると画像が文字として表示されます。Dateメッセージを作った時刻です。Pragma古いキャッシュ制御のヘッダーです。今はCache-Controlが代わります。Trailer本文の後に続くヘッダー名を先に伝えます。Transfer-Encoding本文をどう分けて送るかを伝えます。chunkedなら長さを先に知らなくてもよくなります。Upgrade別のプロトコルへ切り替えようと提案します。101と対になります。Via経由した中間サーバーを記録します。Warningキャッシュや変換に関する注意を書いていたヘッダーです。現在は使いません。Priorityこの要求をどれだけ先に扱うかを伝えます。急ぎ具合と割り込みの可否を書きます。Content-Location今送った中身が実際にはどの場所にあるのかを伝えます。Locationとは役目が違います。Keep-Alive使い回す接続をどれだけ長く開けておくかを伝えます。HTTP/2からは使いません。Content-Digest本文の指紋の値を載せて送ります。受け取る側が壊れていないか確かめられます。Tracestatetraceparentの隣に、追跡システムごとの付加情報を載せます。Repr-Digest送った内容のハッシュを添えて、壊れずに届いたかを確かめられるようにします。Signatureメッセージに付けた署名です。送り主が確かかを検証できます。Signature-Inputその署名が何を含むか — どのヘッダーをどの方式で署名したかを示します。X-Request-IDリクエストごとに付ける番号です。ログからその要求だけを探すのに使います。

読み方

  • ステータスコードは最初の数字が意味を決めます。4なら要求側、5ならサーバー側の問題です。
  • 404は「ない」、403は「あるが許されない」です。取り違えると原因探しに時間がかかります。
  • ヘッダー名は大文字小文字を区別しません。Content-Typeとcontent-typeは同じヘッダーです。
  • キャッシュやCORSの問題はたいていヘッダー一行で決まります。ブラウザーのネットワークタブでそのまま見られます。

よくある質問

Q404と403は何が違いますか。

404はその住所に何もないという意味で、403はあるけれど見る権限がないという意味です。ただし資源の存在自体を隠すためにわざと404を返すサーバーもあります。

Q500エラーのとき自分にできることはありますか。

5で始まるコードはサーバー側の問題なので、たいていは待つしかありません。ただし502や504は前段と後段のあいだの問題で、少し待って再試行すると解けることが多いです。

Q301と302はどう選びますか。

住所を完全に移したなら301、一時的に別へ送るなら302です。301はブラウザーも検索エンジンも長く覚えるため、取り消しにくい点に注意してください。

Qヘッダー名は大文字小文字を区別しますか。

区別しません。Content-Typeとcontent-typeは同じヘッダーで、HTTP/2以降は小文字で送ると定められています。

QCORSエラーはなぜ起きますか。

ページが別出所の応答を読もうとしたとき、サーバーがAccess-Control-Allow-Originで許可していなければブラウザーが遮ります。サーバーは応答していて、ブラウザーが本文をコードに渡さないだけなので、ネットワークタブには見えるのにスクリプトからは読めないという状態になります。