.Water-Sunlight
.サイトメニュー
.検索
.オンライン状況
登録ユーザ: 0
ゲスト: 12
.
<< Prev
« INDEX »
PHP WEB要素編
Next >>
HTTP関連関数
作成日:2006/05/18

2A HTTP/HTML

2A.1 HTTPの復習

 Webプログラミングでは、HTMLを生成し、そのHTMLをHTTPを使ってクライアント(ブラウザ)に届けます。 また、ブラウザからの情報はHTTPを使ってWebプログラミングに届けられます。 PHPの説明に入る前に、HTTPについて簡単に復習しておきます。 HTTPメッセージフォーマットの正確な情報は以下を参照して下さい。

RFC2616 --- http://www.faqs.org/rfcs/rfc2616

また、HTTPの日本語による情報は以下のサイトが詳しいです。

studying HTTP --- http://www.studyinghttp.net/


2A.1.1 HTTPメッセージフォーマット

HTTPメッセージは行を単位として以下のような構造になっています。各行は CR+LF によって区切られています。

種類フォーマット構造
Request Message Request Header リクエストライン
ヘッダーフィールド (複数行からなる)
空行( CR+LF )
Message Body
Response Message Response Header ステータスライン
ヘッダーフィールド (複数行からなる)
空行( CR+LF )
Message Body

形式説明
リクエストライン:
メソッド URI HTTP-Version
例:
GET /index.html HTTP/1.1

クライアントは、リクエストラインのメソッドによって、命令をサーバに伝えます。

良く使われるメソッドを以下に示します。

  • HEAD --- URIのヘッダーのみ取得
  • GET ---- URIのリソースを取得(Message Body無し)
  • POST --- URIのリソースを取得(Message Body有り)
  • PUT ---- URIのリソースを置き換え

ステータスライン:
HTTP-Version Status-Code 結果フレーズ
例:
HTTP/1.1 200 OK

サーバは、ステータスラインの Status-Code によって、リクエストの処理結果をクライアントに伝えます。

Status-Code の種類を以下に示します。

  • 1XX --- インフォメーション
  • 2XX --- 正常終了
  • 3XX --- リダイレクト
  • 4XX --- クライアントエラー
  • 5XX --- サーバーエラー
ヘッダーフィールド:
フィールド名: フィールド値
例:
Host: www.y2sunlight.com

ヘッダーフィールドは複数行からなり、付随的な情報をサーバやクライアントに伝える為に使用します。



2A.1.2 ヘッダーフィールド

 ヘッダーフィールドは便宜的に、以下のように分類されます。

フィールドの種類説明
Request HeaderRequest Message 固有のフィールド
Response HeaderResponse Message 固有のフィールド
General Header共通のフィールド。主にMessage全体の属性を示す
Entity Header共通のフィールド。主にMessage Bodyの属性を示す

よく使うヘッダーフィールド
フィールドの種類フィールド名説明
Request Header Hostリクエスト先サーバ名(DNS名)。HTTP1.1では必須フィールド
If-Modified-Since指定した日時より新しい場合のみリーソースを取得する。リソースが指定日時から更新されていない場合、ステータス(304: NotModified)を返す
Referer直前にリンクされていたURL
User-AgentHTTPクライアント(ブラウザなど)の名前とバージョン番号
Response Header ServerHTTPサーバの名前とバージョン番号
Locationリダイレクト先URI
WWW-Authenticate基本認証で使用
General Header Cache-Controlキャッシュコントロールに関する情報
Date日付情報
Pragmaクライアントやプロキシのための特殊な追加情報
Entity Header Content-LengthMessage Bodyのサイズ[バイト数]
Content-TypeMessage Bodyのメディアタイプや文字コードなど
ExpriesMessage Bodyの有効期限。ブラウザはキャッシュの保存期間として利用
Last-ModifiedMessage Bodyの最終更新日時

※使用例については「HTTP関連関数 header()関数の使用例」を参照して下さい。


2A.1.3 Content-Typeフィールド

 Content-Type フィールドはWebプログラミングで最もよく見かけるフィールドの1つです。 このフィールドには Message Body のメディアタイプと文字セットが含まれます。 これらは共にIANA (http://www.iana.org/)によって登録/管理されています。

用例:
Content-Type: text/html; charset=ISO-8859-1

メディアタイプの例
メディタイプの種類設定値の例
テキスト
text/html, text/plain, text/css
画像
image/jpeg, image/png, image/gif
動画
video/mpeg, video/quicktime
アプリケーション
application/octet-stream, application/zip, application/pdf

文字セットの例
文字セット設定値
Latin-1
ISO-8859-1
JIS コード
ISO-2022-JP
シフトJIS
Shift_JIS
EUC
EUC-JP
UTF-8
UTF-8

※現在に登録されている文字セットは http://www.iana.org/assignments/character-sets を参照して下さい。


.