@mmmochiii

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Webアプリ開発で使う $_SESSION などの仕組みを体系的に学べる教材が知りたい

背景

現在、PHPを学習中の初学者です。

Udemyのハンズオン講座を見ながら、実際にアプリを作成して学習しています。

その中で、フォーム送信やログイン機能の実装時に、以下のようなPHPのスーパーグローバル変数が出てきました。

  • $_POST
  • $_SESSION

$_POST$_SESSION がPHPに最初から用意されているものだということや、公式ドキュメントを見れば書き方を確認できることは理解しています。

困っていること

使い方自体は講座で紹介されるので、コードを真似して動かすことはできます。

ただ、以下のような部分で理解が浅いと感じています。

  • なぜ $_SESSION のような仕組みが必要なのか
  • なぜログイン状態を保持する必要があるのか
  • CookieとSessionは何が違うのか
  • フォームで送信された値は、サーバ側でどのように扱われるのか
  • GET / POST / Cookie / Session のような仕組みは、PHP以外の言語やフレームワークでも共通する考え方なのか
  • Webアプリを設計するうえで、こうした仕組みをどのように学べばよいのか

たとえば、講座では $_SESSION の使い方自体は紹介されるのですが、

  • なぜその仕組みが必要なのか
  • Webアプリ全体の中でどういう役割を持っているのか
  • PHP以外でも同じような考え方があるのか

といった部分が、まだうまくつながっていません。

自分なりに考えていること

PHPの文法だけではなく、以下のようなWeb技術の基礎を学ぶ必要があるのではないかと考えています。

  • HTTP
  • リクエスト / レスポンス
  • GET / POST
  • Cookie
  • Session
  • フォーム送信
  • 認証
  • セキュリティ

質問したいこと

PHPなどのWebアプリ開発を学ぶ初学者が、$_POST$_SESSION、Cookie、HTTP、フォーム送信、認証などの「なぜ必要なのか」を体系的に理解するには、どのような教材・学習方法がおすすめでしょうか?

書籍でも構いませんが、できればUdemyなどの動画教材を優先して探しています。

文法の説明だけでなく、Webアプリの仕組みや設計時の考え方につながる教材があれば知りたいです。

0 likes

1Answer

(書籍中心になってしまいますが)Webの足回りについてはWebを支える技術 ―⁠― HTTP,URI,HTML,そしてRESTが個人的によかったです。
セッション、認証、セキュリティについてはWebブラウザセキュリティ ― Webアプリケーションの安全性を支える仕組みを整理するなどでしょうか。

これらを押さえると、PHPのセッション処理のページはよい便覧になっていると思います。

実際にアプリを作成して学習されていることはよいことです。ちょっとリスクもありますが、自宅のルータをいじって簡単なWebサーバーを立てて動かしてみるのもよいかもしれません(Apache HTTPDやNginxなども理解しやすくなっているはずです)。

0Like

Comments

  1. @mmmochiii

    Questioner

    回答ありがとうございます。

    PHPの $_SESSION などを学んでいて、「使い方」よりも「なぜこの仕組みが必要なのか」「Webアプリ全体の中でどういう役割を持っているのか」が気になっていたので、Web技術の基礎として学ぶのがよさそうだと分かり、納得できました。

    動画教材については自分でも探してみたのですが、やはりこのあたりを体系的に扱っているものはあまり多くなさそうですね。

    教えていただいた書籍は読む候補には入っていたのですが、どういう理由でおすすめされるのかまでは分かっていなかったので、とても参考になりました。

    まずは今進めているPHPの学習を一通り終わらせてから、教えていただいた書籍も読んでみようと思います。

    ルーター周りを触って簡単なWebサーバーを立てる学習については、今の自分にはまだ少し早そうなので、もう少し基礎を進めてから挑戦してみようと思います。

Your answer might help someone💌