--- title: 12th 鐵人賽 Day_07 session ? tags: 12th 鐵人賽 --- # 12th 鐵人賽 Day_07 session ? 嗨!各位朋友大家好,打給後,歹嘎吼,胎尬喉,我是阿圓,有請今天的 one piece:  (突然發現我居然沒有放過魯夫的正面!囧) 之前上課時,有關於session與cookie的概念一直弄的很模糊,想到之後在部落格上可能會用到,所以嘗試來解釋一下! ## session ? 先來延續之前[MVC架構](https://ithelp.ithome.com.tw/articles/10235343)的比喻,當我對餐廳點菜的時候,相當於我發了一個request,而廚房,也就是server,會回復我一個response。 但是!http是不存在狀態一說的,也就是說,我每次到餐廳點菜,對於廚房來說,我就是一個新的顧客,即使我每次都點一樣的菜,我還是沒辦法跟廚房說:“給我來一份老樣子!”,因為廚房根本不記得我是誰,也不會記得我平常點了什麼,因為他記不住我的狀態!  更極端一點的例子是,當我點了第一道菜,想要再點第二道的時候,廚房就認不出我了!  而為了讓我們的 server 記住我的狀態,session 就出現了! session 是什麼?他是能夠讓 request 變成有狀態的一種機制,有點像廚房發了張紙條給我,裡面記了我點的所有菜,最後只要把這張紙條交給廚房,這樣他就知道我點了哪些東西了。 而實作 session 機制的方法有很多,以下介紹兩種: #### 第一種是把狀態附在網址裡,一起送給 server 先來看一個網站 [GitHub Jobs](https://jobs.github.com/) ,上面會有兩個條件分別可以打入關鍵字和工作所在的地區,用來讓你搜尋想要的工作。  而當我輸入搜尋條件,並按下送出:  有看到網址的變化嗎? #### 使用cookie 與 session 來做搭配 而第二種,也是很常使用的一種,所謂 cookie,有點像是你去餐廳點餐後的明細單,他記錄了你點的所有菜,可以給服務生來做確認。 今天先簡單講到這裡我們明天再來細細說明!  感謝各位看到這邊,若有任何建議,請各位不吝指教!我們明天見!  ---- #### 參考文章 [白話 Session 與 Cookie:從經營雜貨店開始](https://bre.is/E3onkFYt)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up