第9回 セッションとHTTPヘッダーの基礎 - PHP基礎講座

PHP 中級 講座

Saity先生のPHP基礎講座

Lecutures on PHP

第9回 セッションとHTTPヘッダーの基礎 (その2)

 このエントリーをはてなブックマークに追加

HTTPヘッダーとheader関数

  • もう一つ、新しく出てきたheader関数については、調べてみたかな?
  • はい。これは、HTTPヘッダーを送信する関数と書いてありました。これを使えば任意のURLにジャンプしたり、パスワード入力画面を出したりすることもできるとか・・・。でも、HTTPヘッダーって何ですか?
  • うん。HTTPヘッダーとは、ブラウザとサーバーの通信でやり取りされるデータのうち、ユーザーには直接見えないデータなんだ。たとえば、ブラウザがhttp://hostname/hoge.phpにアクセスする場合には、以下のような通信が行われるんだ。

ブラウザとサーバの通信

  • 上記のやりとりはとても簡略化したものだけれども、ブラウザはHTTPヘッダーを使ってサーバーに取得したいURLのリクエストを送信し、サーバーはそのリクエストに対応したレスポンスをブラウザに返すんだ。
  • レスポンスにHTMLが入ってますね。
  • このHTMLの上に空行があると思うんだけど、その上がHTTPヘッダーだよ。この例ではStatusヘッダーだけを紹介しているけど、それ以外にも多くのHTTPヘッダーが定義されているんだ。
  • 上のサンプルのheader関数で使われている、「Location」というのは何をするヘッダーなんですか?
  • これは、ブラウザに「リダイレクト」という処理を命令するためのヘッダーだよ。ブラウザはLocationヘッダーを受け取ると、直ちに指定したURLに移動する。これをリダイレクションと言って、別のページに自動的にジャンプさせたい場合に便利なんだ。
  • uranai_ask.phpからは、uranai_result.phpにジャンプしているわけね。
  • うん。実はこの書き方には少々問題があって、HTTPヘッダーの仕様書には、LocationヘッダーのURL指定は、絶対URLで記述するように求められているんだ。だから今後は絶対URLで記述するよう、心がけて欲しい。
  • なるほど。要するに、以下のように変える必要があるってことかぁ。

ロケーションヘッダー

  • そういう事。HTTPヘッダーを使うとリダイレクトだけじゃなく、HTTP認証といってユーザーIDとパスワードで制限する機能を実装したり、ファイルのダウンロード機能を実装したりできるんだ。これらについては、次に説明することにしよう。
  • はーい。また予習をしてこうっと。
  • 1
  • 2
  • Saity先生

本名:海原才人 アシアル株式会社所属

PHPスクール講師。同時に、現役システムエンジニアとしてシステム開発も行っている。

携帯電話でWebサイトが見られるようになった事をきっかけに、Webの普及の早さに驚愕し、Webプログラミングに興味をもつ。 その後、PHPによるWebプログラミングと出会い、その習得のしやすさと多機能さに魅了され、数多くのシステム開発をPHPでこなしてきた。 現在は、PHPの魅力とシステム開発で蓄積したノウハウをPHPスクールで多くの人に伝える事に熱意を燃やしている。

「教育において、教わる側が解からない事に罪はなく、教える側が興味を持たせられない事が罪だ」というのが講師としての信念。 生徒にPHPの面白さ・素晴らしさを伝えるため、魅力的な講義を展開する事に全力を注ぐ。

ご意見・感想フォーム

今回の「Saity先生のPHP基礎講座」への評価・ご意見があればご記入下さい。

評価:
ご意見・感想:

  



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)