ホームページ > バックエンド開発 > PHPチュートリアル > PHP header() アプリケーションのエクスペリエンス

PHP header() アプリケーションのエクスペリエンス

WBOY
リリース: 2016-06-13 13:03:30
オリジナル
811 人が閲覧しました

PHP header() の使用経験

ヘッダー関数を使用するための詳細な手順は次のとおりです:

ページにヘッダーがいくつあっても、最後のヘッダーが実行されますが、条件付きです。たとえば、

header('Location:http://www.jb51.net'); 
header('Location:http://www.g.cn'); 
header('Location:http://www.baidu.com'); 
ログイン後にコピー

これは Baidu にジャンプします

ヘッダー関数の役割

PHP は、HTTP プロトコルを使用して HTML ドキュメントのヘッダーをブラウザーに送信するだけであり、送信されるコンテンツについては、HTTP プロトコルに精通している必要があり、ブラウザーには何の関係もありません。 PHP。

従来のヘッダーには、次の 3 つのヘッダーのいずれかを含める必要があり、出現できるのは 1 回だけです。

Location: xxxx:yyyy/zzzz 
Content-Type: xxxx/yyyy 
Status: nnn xxxxxx 
ログイン後にコピー

HTTP プロトコルの仕組み

HTTP プロトコルは、リクエスト/レスポンスのパラダイムに基づいています。クライアントはサーバーとの接続を確立した後、サーバーにリクエストを送信します。リクエストの形式は、統一リソース識別子、プロトコルのバージョン番号の後に、リクエスト修飾子、クライアント情報、および考えられるコンテンツを含む MIME 情報が続きます。リクエストを受信すると、サーバーは対応する応答情報を返します。その形式は、情報のプロトコル バージョン番号、成功コードまたはエラー コードを含むステータス行に、サーバー情報、エンティティ情報、および考えられるコンテンツを含む MIME 情報が続きます。

HTTPプロトコルでは、サーバーはHTTPサービスを提供する部分を指し、クライアントは使用するブラウザやダウンロードツールなどを指します。通信では、クライアントが接続要求を発行し、サーバーが接続を確立し、クライアントがHTTPリクエスト(Request)を発行し、サーバーが応答情報を返す(Respond)ことでHTTPオペレーションが完了します。

HTTPプロトコルステータスコードの意味

1××  保留 
2××  表示请求成功地接收 
3××  为完成请求客户需进一步细化请求 
4××  客户错误 
5××  服务器错误   
ログイン後にコピー

操作例

  • リダイレクト機能、これが最も一般的です。
    <?php 
       Header("Location: http://www.php.net/"); 
    ?> 
    
    ログイン後にコピー
  • ユーザーがこのページにアクセスするたびに、クライアント側のキャッシュを使用するのではなく、最新の情報を取得するように強制します。
    <?php 
    //告诉浏览器此页面的过期时间(用格林威治时间表示),只要是已经过去的日期即可。 
    header("Expires: Mon, 26 Jul 1970 05:00:00 GMT"); 
    //告诉浏览器此页面的最后更新日期(用格林威治时间表示)也就是当天,目的就是强迫浏览器获取最新资料 
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); 
    //告诉客户端浏览器不使用缓存 
    header("Cache-Control: no-cache, must-revalidate"); 
    //参数(与以前的服务器兼容),即兼容HTTP1.0协议 
    header("Pragma: no-cache"); 
    //输出MIME类型 
    header("Content-type: application/file"); 
    //文件长度 
    header("Content-Length: 227685"); 
    //接受的范围单位 
    header("Accept-Ranges: bytes"); 
    //缺省时文件保存对话框中的文件名称 
    header("Content-Disposition: attachment; filename=$filename"); 
    ?> 
    
    ログイン後にコピー
  • ステータス値をブラウザに出力します。主にアクセス制御に使用されます。
    <?php 
    header('HTTP/1.1 401 Unauthorized'); 
    header('status: 401 Unauthorized'); 
    ?> 
    
    ログイン後にコピー

    たとえば、ユーザーによるこのページへのアクセスを制限したい場合は、以下に示すようにステータスを 404 に設定すると、ページが存在しないことがブラウザに表示されます。

    <?php 
    header('HTTP/1.1 404 Not Found'); 
    header("status: 404 Not Found"); 
    ?> 
    
    ログイン後にコピー

    注: 従来のヘッダーには、次の 3 つのヘッダーのいずれかを含める必要があり、1 回だけ表示できます。 Content-Type: xxxx/yyyy Location: xxxx:yyyy/zzzz Status: nnn xxxxxx は、新しいマルチパート ヘッダー仕様 (Multipart MIME) で 2 回以上出現する可能性があります。

使用例

  • 例 1: この例では、ブラウザを PHP の公式 Web サイトにリダイレクトします。
    Header("Location: http://www.php.net/"); 
    exit;  
    
    ログイン後にコピー
  • 例 2: プロキシまたはキャッシュ内のデータではなく、ユーザーが毎回最新のデータを取得するようにしたい場合は、次のヘッダーを使用できます。
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); header("Cache-Control: no-cache, must-revalidate"); 
    header("Pragma: no-cache");  
    
    ログイン後にコピー
  • 例 3: ファイルが見つからないというメッセージをユーザーのブラウザに表示させます。
    header("Status: 404 Not Found"); 
    
    ログイン後にコピー
  • 例 4: ユーザーにファイルのダウンロードを許可します。
    header("Content-type: application/x-gzip"); 
    header("Content-Disposition: attachment; filename=文件名"); 
    header("Content-Description: PHP3 Generated Data"); 
    
    ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート