17
2014 年には役に立たない セッションの昔話 OGATA Tetsuji (@xtetsuji) 2014/06/ 21 Hachioji.pm#41

2014年には役に立たないセッションの昔話 #hachiojipm

Embed Size (px)

DESCRIPTION

2014/6/21に行われた Hachioji.pm#41 で発表したLTのスライドです。

Citation preview

Page 1: 2014年には役に立たないセッションの昔話 #hachiojipm

2014年には役に立たない セッションの昔話

OGATA Tetsuji (@xtetsuji) 2014/06/21 Hachioji.pm#41

Page 2: 2014年には役に立たないセッションの昔話 #hachiojipm

自己紹介

• 尾形 鉄次 (OGATA Tetsuji)

• Twitter: @xtetsuji

• Blog: http://post.tetsuji.jp/

Page 3: 2014年には役に立たないセッションの昔話 #hachiojipm

先日 「シニアエンジニアによるガラケー大戦回顧録」

というイベントをやりました

Page 4: 2014年には役に立たないセッションの昔話 #hachiojipm
Page 5: 2014年には役に立たないセッションの昔話 #hachiojipm

ひっそりとやろうと思ったら なんかバズった

Page 6: 2014年には役に立たないセッションの昔話 #hachiojipm

ガラケー懐かし話満載

Page 7: 2014年には役に立たないセッションの昔話 #hachiojipm

ガラケー時代はセッションも 苦労した

Page 8: 2014年には役に立たないセッションの昔話 #hachiojipm

ガラケー時代のセッション

• Cookie使えない!

• なのでURLにセッションを入れる

• その引き回し方に各社各人の秘伝のタレがあった

• セキュリティに詳しい人は「あれリファラから漏れるんじゃないの?」っていうけど、そこは低機能な柔軟性のあるガラケー、リファラは送りません

Page 9: 2014年には役に立たないセッションの昔話 #hachiojipm

ガラケー時代のセッション

• でもVodafone(Softbank)の「P型端末」という2G機種はCookieが使えないのにリファラを送るという最低最悪な端末でした(既にこの世から消え去りました)

Page 10: 2014年には役に立たないセッションの昔話 #hachiojipm

引き回し方法• 既存の枠組みに任せる。PHPだとCookieが使えない場合にPHPSESSIDがクエリ引数に自動でついてまわる機能があってガラケー時代に大ブーム

• 自分で作る場合にはプログラム側で「どこか」に入れたセッションをURLからURLへ渡すようにする(a要素やform要素を全て書き換える)

• 静的ページを挟む場合に面倒

Page 11: 2014年には役に立たないセッションの昔話 #hachiojipm

僕は考えた

• フォルダのように見せかけたセッションだったら、静的ページをはさんでも相対リンク遷移だと大丈夫?

• e.g. /s=ZYX321abc987/path/to/foo.html

Page 12: 2014年には役に立たないセッションの昔話 #hachiojipm

今以上に知識がない当時

• Apache一択時代

• これ、mod_rewriteを使えば環境変数に入れられるんじゃないか?

Page 13: 2014年には役に立たないセッションの昔話 #hachiojipm

mod_rewrite例• RewriteRule ^/s=([^/]*)(/.*)$ $2 [QSA, E=session:$1]!

• だいぶ忘れちゃったけど、雰囲気こんな感じ

• あとはmod_perlのレスポンスハンドラとか、mod_actionなどで、静的ファイルを処理するふりをして後ろで処理するPHPやPerl CGIを置いておけばよい

• 自力対処で困るのは206 Partial Contentの場合

Page 14: 2014年には役に立たないセッションの昔話 #hachiojipm

206 Partial Content

• HTTPの部分リクエスト。ダウンロードレジューム機能やPDFのページ飛ばしとか、色々裏で使われている

• ガラケー時代はその性能の貧弱さゆえ、着メロのダウンロードとかにこれを必須にしていた(RFCでは努力項目)

• Apacheだと標準の出力ハンドラ(default-handler)が処理してくれるけど、PHPでfopenとかするプログラムを裏に据えてもこれを認識しないのでツライ

Page 15: 2014年には役に立たないセッションの昔話 #hachiojipm

左側セッション

• この「パスの左側にセッション文字列をディレクトリのように見せかけて後で処理」方法を自分では「左側セッション」って社内で呼んでいた

• mod_perl覚えたて時代にうまくいったプロジェクトもあった

• ただ、ガラケー衰退とともに忘れ去られていきました

Page 16: 2014年には役に立たないセッションの昔話 #hachiojipm

Cookie最高!

Page 17: 2014年には役に立たないセッションの昔話 #hachiojipm

おしまい