佐伯のメモ書き

やったことの覚え書きとか

セッションについて考える。

おはようございます。絶妙にやる気のない佐伯です。
本日の佐伯は昼から本気を出すと思う。

今回はセッションについて考えたいと思います。
セッションというとオタクにとっても、オタクじゃない人にとっても結構馴染み深いワードなんじゃないでしょうか。
バンドとかで合わせるのもセッションだし、TRPGで卓を回すのもセッションって言いますもんね。
正しい意味としては『〔公的機関の〕委員会、総会、議会、法廷』という意味らしいんですけど。まあようするに人が集まってなんかやるくらいのニュアンスなんですかね、日本だと。

このセッションというやつはプログラムでもよく出て来るワードなので、自己理解も併せて紐解きたいと思います。

いうて先に結論

プログラミングにおけるセッションとは『ページを跨って値を保持すること』を言います。

『セッションを渡す』『セッションを保持する』なんてワードがちらほら飛び出してきます。
前述の意味を考えると集まったものを解散せずにそのまま…?みたいなイメージになりますね。

基本的には設定した値はそのページ限りのものです。
まあそりゃそうよね、WEBサイトも元はHTMLファイルなんだもの。HTMLファイルでどっかの数字をインポートとかなかなか出来ないですよね。

ただし自分でサイトを作ったことがある人はご存知のはず。
メールフォームだったり拍手機能だったり、入力したものを送信するシステムがあるじゃないですか?
あれが『セッションを渡している』という状況なわけです。

じゃあ『セッションの保持って?』となるかもしれません。
皆さんamazonやら楽天やら通販サイトは使ったことがあるかと思います。
あれって注文するのに会員登録とログインが必要ですよね。
で、ログインしたあと何処にいっても右上辺りに『〇〇さん』とか自分が設定した名前が表示されているんじゃないですか?
それがログインの保持です。違った、『セッションの保持』というやつです。

なんでセッションの話?

フォロワーに名前変換小説書いてる女が多いからです。
あれも、ページが変わっても設定した名前が反映され続けますよね。
つまるところ『セッションの保持が行われている』わけです。

ところがどっこい、ちょいとお待ちよ!

そもそも、セッションの保持ってどこで行われてるんでしょう。
プログラム内という答えは半分正解半分外れです。
何故ならばプログラムは随時書き換えを行うわけではなく、出来上がったものを使います。
つまり『ここに入力される言葉を保持』はという指示は出来ても『入力された〇〇という言葉を保持』ということは出来ないわけですよね。プログラムを作る時には何が入力されるかなんてわかんないわけですから。はい目から鱗一枚ぽろり~!!

ここで原点に戻ると『じゃあどうやって値の受け渡しをしているのか』という話になります。
もったいぶらずに正解を言うと『URLで受け渡しをしている』です。

.htaccessで表示しないようにしてる可能性もあるので具体的にこうこうとは言えませんが凡そ『(URL~)?hoge=foobar』みたいなことが書いてあったら?以降の部分が受け渡してるセッションです。
因みにURLはUTF-8で出来ているのでセッションの中身が日本語とかだとなんじゃこれ!?!?みたいな文字の羅列になっていたりなどします。

どうやって渡してどうやって受け取る

こういう時に画像を作るのがベストなのは重々承知ですけど面&倒なので文字だけ書くと

     渡す          受け取る
ページ -----> サーバー -----> ページ

と一回サーバーを介すわけです。ページ⇒ページというのは当然出来ません。
まあこの辺はちょっと説明が怠いので後日需要があればというアレで。
取り敢えず一回サーバーを介さなければならないと。
そしてサーバー内で通じるのはまた別の言葉なんですよね。サーバー内部は外国。

そんなわけで出て来るのがPHPという言語なわけですね。
多分jsでも出来るんだろうけど己はPHP使った方が楽だと思う。

終わり

プログラムやり始めて気付いたことは当たり前のことでも案外面倒なことが多かったりすること。
「こういうのしてよ~!簡単でしょ~?」と言われても全然簡単じゃないことって多々ある。
わたしはjsにわかだからjsで書いてあることをPHPで出来るなら全部PHPでやりたい。

けど流石に食わず嫌いでどうこういうのはなんか違うと思いますので夢小説変換スクリプトのDreamMakerを見てみようと思います。
リンク貼ろうと思ったけど応援リンクみたいなんあってやべえや!!となったので気になる人は調べてくれ。
そんで見たら使い方とメリデメリちゃんまとめると思うけど、はよして欲しい人いたら連絡下さい。

ていうか絶妙に寒いからマジで眠気に抗うのに必死なんですが。