Re: [問題] 菜鳥發問
※ 引述《p52189 (皮爺)》之銘言:
: 謝謝
: 不好意思這個問題問得不太好
: 我想問的是
: 一個session屬於一個客戶端這個我可以理解
: 但是在伺服器上哪些程式或頁面可以使用這個session
: 最大的權限範圍到哪裡呢?
: 如果有多個程式或頁面可以使用這個session
: 比如同一個Web App也許(我沒有實作過)可以共用這個session
: 那麼session存活的時間是否跟使用它的程序有關?
這就要稍微了解一下 session 的機制了
基本上在 session 的處理當中 使用者會有一個 session id
伺服器端是靠這個 session id 辨認這些資料是這個使用者的
第一次接上時使用者會拿到一個 session id
在後續的處理當中使用者會告訴伺服器我的 session id 是這個值
那伺服器就能由這個 id 讀出屬於這個使用者的 session 資料
而有效期限是伺服器端定的 和個別程式無關
打個比方就是推文說的遊樂園的門票 或者恰當一點比喻叫一日全區通行票
在遊樂園入口(第一次連接)買了這票之後
去其他區只要亮出這張票(session id) 園區就會知道是你來了
如果園區有電腦連線的話
某區的工作人員(其他程式)甚至可以知道你先前去過哪些區(session data)
而你所需要的就只是這張門票而已
之所以有「一日」也就是代表
園區將這張門票的有效期限(這個 session 的存活期限)定為一整天
時間過了這張門票就失效了
---
那麼 session id 到使用者手上的方法有兩種
一種是有時候你會在 URL 上看到的 &session_id=1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d
後面那一串十六進位數字就是 session id
但有時候可能不希望這個 session id 掛在 URL 上
這時會用另一個方法: cookie (你沒看錯是 cookie)
這種方法裡雖然還是需要用到 cookie
但是存的東西就不是使用者資料而是 session id
如果你有機會/能夠看到瀏覽器的 cookie 列表的話
你會發現不少網站都會有一或兩個 cookie 裡面是一長串字
也許是像 1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d 這樣整齊的十六進位數字
也許是像 prOuyWlkt3ymszEyOGJpdA== 這樣經過 base64 編碼的字元
這都是這些網站的 session id
這樣只需要在使用者瀏覽器裡記一小段資料就能達到 session 的效果
--
いああオレたちには見えてるモノがあるbデ きっと誰にも奪われないモノがあるはずさ
け 開口一番一虚一実跳梁跋扈形影相弔yュL羊頭狗肉東奔西走国士無双南柯之夢 歪も
ぶ 意味がないと思えるコトがある ラPきっとでも意図はそこに必ずある んの
く 依依恋恋空前絶後疾風怒濤有無相生 ラH急転直下物情騷然愚者一得相思相愛 だが
ろ 無意味じゃない ラ6あの意図が 恋た
で 有為転変死生有命蒼天已死黄天當立 !!6五里霧中解散宣言千錯万綜則天去私 のり
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.28.91
推
12/23 14:36, , 1F
12/23 14:36, 1F
討論串 (同標題文章)