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