2014年には役に立たないセッションの昔話 #hachiojipm
DESCRIPTION
2014/6/21に行われた Hachioji.pm#41 で発表したLTのスライドです。TRANSCRIPT
![Page 1: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/1.jpg)
2014年には役に立たない セッションの昔話
OGATA Tetsuji (@xtetsuji) 2014/06/21 Hachioji.pm#41
![Page 2: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/2.jpg)
自己紹介
• 尾形 鉄次 (OGATA Tetsuji)
• Twitter: @xtetsuji
• Blog: http://post.tetsuji.jp/
![Page 3: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/3.jpg)
先日 「シニアエンジニアによるガラケー大戦回顧録」
というイベントをやりました
![Page 4: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/4.jpg)
![Page 5: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/5.jpg)
ひっそりとやろうと思ったら なんかバズった
![Page 6: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/6.jpg)
ガラケー懐かし話満載
![Page 7: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/7.jpg)
ガラケー時代はセッションも 苦労した
![Page 8: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/8.jpg)
ガラケー時代のセッション
• Cookie使えない!
• なのでURLにセッションを入れる
• その引き回し方に各社各人の秘伝のタレがあった
• セキュリティに詳しい人は「あれリファラから漏れるんじゃないの?」っていうけど、そこは低機能な柔軟性のあるガラケー、リファラは送りません
![Page 9: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/9.jpg)
ガラケー時代のセッション
• でもVodafone(Softbank)の「P型端末」という2G機種はCookieが使えないのにリファラを送るという最低最悪な端末でした(既にこの世から消え去りました)
![Page 10: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/10.jpg)
引き回し方法• 既存の枠組みに任せる。PHPだとCookieが使えない場合にPHPSESSIDがクエリ引数に自動でついてまわる機能があってガラケー時代に大ブーム
• 自分で作る場合にはプログラム側で「どこか」に入れたセッションをURLからURLへ渡すようにする(a要素やform要素を全て書き換える)
• 静的ページを挟む場合に面倒
![Page 11: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/11.jpg)
僕は考えた
• フォルダのように見せかけたセッションだったら、静的ページをはさんでも相対リンク遷移だと大丈夫?
• e.g. /s=ZYX321abc987/path/to/foo.html
![Page 12: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/12.jpg)
今以上に知識がない当時
• Apache一択時代
• これ、mod_rewriteを使えば環境変数に入れられるんじゃないか?
![Page 13: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/13.jpg)
mod_rewrite例• RewriteRule ^/s=([^/]*)(/.*)$ $2 [QSA, E=session:$1]!
• だいぶ忘れちゃったけど、雰囲気こんな感じ
• あとはmod_perlのレスポンスハンドラとか、mod_actionなどで、静的ファイルを処理するふりをして後ろで処理するPHPやPerl CGIを置いておけばよい
• 自力対処で困るのは206 Partial Contentの場合
![Page 14: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/14.jpg)
206 Partial Content
• HTTPの部分リクエスト。ダウンロードレジューム機能やPDFのページ飛ばしとか、色々裏で使われている
• ガラケー時代はその性能の貧弱さゆえ、着メロのダウンロードとかにこれを必須にしていた(RFCでは努力項目)
• Apacheだと標準の出力ハンドラ(default-handler)が処理してくれるけど、PHPでfopenとかするプログラムを裏に据えてもこれを認識しないのでツライ
![Page 15: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/15.jpg)
左側セッション
• この「パスの左側にセッション文字列をディレクトリのように見せかけて後で処理」方法を自分では「左側セッション」って社内で呼んでいた
• mod_perl覚えたて時代にうまくいったプロジェクトもあった
• ただ、ガラケー衰退とともに忘れ去られていきました
![Page 16: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/16.jpg)
Cookie最高!
![Page 17: 2014年には役に立たないセッションの昔話 #hachiojipm](https://reader033.vdocuments.net/reader033/viewer/2022052600/557816a0d8b42ab40c8b49fe/html5/thumbnails/17.jpg)
おしまい