どうすればsession_start()
の機能が働くか説明してください。session_start()関数の仕組みは?
私はPHPでセッションを開始するときの動作の順序を理解していません。説明しよう。
HTTPはクライアント/サーバーアーキテクチャです。これは、ブラウザが要求を送信し、サーバーが要求を処理し、その応答を返すことを意味します。これらのアクションのそれぞれには、適切なヘッダーがあります。
私はセッションを開始したいときに、応答でサーバーから返されるヘッダーを(headers_list()
で)チェックしました。とりわけ、すべてがOKであると思われるヘッダ
Set-Cookie: PHPSESSID=7f4cbf53fbcd4717792447f32da7dba8
があると、サーバーはクッキーを設定するブラウザに順序を与えます。
しかしセッションを開始するには、ページのコードの先頭にsession_start()
関数を含める必要があります。この機能は、ブラウザがページの解析を開始するときに開始されます。ブラウザは、PHPオープンタグ<?php
、それに続いてsession_start()
の機能を満たしています。直ちに、制御をサーバーに委譲します。そして、サーバーは今だけ機能を開始します。すべてのヘッダーを含むページを既にブラウザに送信した場合のみ。
ブラウザがページの解析を開始してsession_start()
機能を満たす前に、サーバーがSet-Cookie
ヘッダーを送信する方法を理解できません。コマンドsession_start()
が実行される前に、Set-Cookie
ヘッダーを挿入する必要があることをどのように知っていますか?または私はプロセスを誤解していますか?