🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

3回答

1189閲覧

【PHP】何故、ページにアクセスした時のセッションIDと、非同期接続した時のセッションIDが同じになるのですか?

hasshy

総合スコア102

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2020/12/08 10:25

編集2020/12/08 10:26

phpでAPIを実装しているのですが、題記の2つのセッションIDが同じな事の理由がわかりません。

  • ブラウザでページを開いた時にsession_id()を実行して表示されるID
  • 同ページから、APIで非同期接続した時に、API側でsession_id()を実行した時に表示されるID

サーバーのセッション情報とブラウザを紐づけるには、Cookieに保存されたセッションIDが必要だと認識しています。

ここで疑問なのは、APIで非同期接続した時に取得するセッションIDが同じだという事です。
ブラウザで表示していないので、cookieにアクセスしてデータを取ってくる事はできないと思います。
また、非同期で接続するときに、cookieでセッションIDを送信しているわけではありません。

なぜ、紐付けられるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/12/08 10:31

>ブラウザで表示していない ちょっと意味がわかりません、ブラウザで非同期処理してないのですか?
hasshy

2020/12/08 10:46

ご指摘ありがとうございます。 分かりにくい表現になってしまい失礼しました。 非同期通信でデータを取ってくるときは、ページをリフレッシュしてcookieの値を取らないと言う事を伝えるための表現でした。
guest

回答3

0

ブラウザの開発ツールを使用して、リクエストヘッダとレスポンスヘッダを覗いてみると良いですよ。

投稿2020/12/08 10:28

編集2020/12/08 10:36
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ページをリフレッシュしてcookieの値を取らない

リロードするだけでは、クッキーは消えません

投稿2020/12/08 11:21

maisumakun

総合スコア145973

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

たとえばfetch APIだとクッキーを継承するので
セッションIDも引き継がれます。
credentialsに気をつけて処理してみてください
xhrだとwithCredentialsプロパティです

投稿2020/12/08 10:35

yambejp

総合スコア116690

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ockeghem

2020/12/08 12:02

「同ページから、APIで非同期接続した時」とあるので、同一オリジンなのでwithCredentialsプロパティは要らないと思いますが
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問