header() の第 1 引数の使い方について教えてほしいです

詳しく解説いたします。
2023年1月19日
ユーザー

お忙しいところ失礼します。

動画内での下記コードの HTTP 部分の意味について質問したいのですが、

header('HTTP', true, 404);

header 関数の第一引数の使い方を PHP マニュアルで調べたところ、
2 種類の指定方法があることが記載されていました。

1 つ目

特殊な header コールが 2 種類あります。最初のものは、 文字列 "HTTP/" から始まる全てのヘッダ (大文字・小文字は区別されません) です。 このヘッダは、送信する HTTP ステータスコードを示すために使用されます。

2 つ目

2 番目の特別なヘッダは、"Location:" ヘッダです。

2 番目の使い方はヘッダー内の項目に任意の値を入力するためのものだと思うので、
動画のコードでは 1 番目の使い方をされているのだろうと思っています。

HTTPHTTP/を省略して記述しているのかなと思い試しに、

header('HTTP/', true, 404);
header('HTTP/1.1', true, 404);

のように書き換えて実行してみると、
動画内の様にステータスコードが 404 とはならず、
200 番台でレスポンスされてしまいます。

header の第 1 引数にプロトコルのみを指定すると、
同ページに第 3 引数で指定したエラーステータスでレスポンスされるということなんですか?

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(3)