Slide 1

Slide 1 text

1 COOKIEͱSESSIONͷҧ͍ ٕज़తഎܠͱ໰୊఺ 2021.07.18 ߨٛ in PHPษڧձ

Slide 2

Slide 2 text

ຊ೔ͷ SUMMERLY )551ͱ3&45 4UBUF-FTTͱ4UBUF'VMMͷҧ͍ 4UBUF'VMMͷ࣮ݱ$PPLJFͷ஀ੜ $PPLJFͷ໰୊఺ 4FTTJPOɾηογϣϯ؅ཧ ηογϣϯ؅ཧͷ࢓૊Έ ·ͱΊ 2

Slide 3

Slide 3 text

ຊ೔ͷ SUMMERLY )551ͱ3&45 4UBUF-FTTͱ4UBUF'VMMͷҧ͍ 4UBUF'VMMͷ࣮ݱ$PPLJFͷ஀ੜ $PPLJFͷ໰୊఺ 4FTTJPOɾηογϣϯ؅ཧ ηογϣϯ؅ཧͷ࢓૊Έ ·ͱΊ 2

Slide 4

Slide 4 text

1. HTTPͱREST

Slide 5

Slide 5 text

)551͸ݩʑϑΝΠϧసૹઐ༻ϓϩτίϧ

Slide 6

Slide 6 text

)551͸ݩʑϑΝΠϧసૹઐ༻ϓϩτίϧ

Slide 7

Slide 7 text

)551͸ݩʑϑΝΠϧసૹઐ༻ϓϩτίϧ )5.-΍9.-ͳͲ ϋΠύʔςΩετͷΈͷసૹΛߦ͍ͬͯͨ

Slide 8

Slide 8 text

Architectural Style REST ఆٛɿγεςϜͷΞʔΩςΫνϟΛܾఆ͢Δࡍͷઃܭࢦ਑΍੍໿ ɹ1. ΫϥΠΞϯτ/αʔόɹɹɹ ΫϥΠΞϯτͱαʔόͰ௨৴ͷ΍ΓͱΓɹɹɹ ɹ ɹ2. εςʔτϨεαʔό → Ϣʔβͷঢ়ଶΛαʔόͰ؅ཧ͠ͳ͍ ɹ3. Ωϟογϡɹɹɹɹɹɹɹɹ αʔόʔͱͷ௨৴ճ਺ΛݮΒ͢ ɹ4. ౷ҰΠϯλʔϑΣʔεɹɹ ɹ௨৴ͷϧʔϧΛ౷Ұ ɹ5. ֊૚ԽγεςϜɹɹɹɹɹɹ γεςϜΛ֊૚ʹ෼཭ ɹ6. ίʔυΦϯσϚϯυɹɹɹ ϓϩάϥϜΛαʔό͔ΒDL࣮ͯ͠ߦ ex.

Slide 9

Slide 9 text

UniformInterface-Layered-CodeOnDemand-Client-Cache-StatelessServer ౷Ұ/֊૚Խ/ίʔυΦϯσϚϯυ/ΫϥΠΞϯτ/Ωϟογϡ/εςʔτϨεαʔό ΫϥΠΞϯτ ʢˈʣ ΫϥΠΞϯτ ΫϥΠΞϯτ ʢcacheʣ εςʔτϨε αʔό εςʔτϨε αʔό ϓϩΩγ ϨΨγʔ γεςϜ UI୲౰ ϦΫΤετຖʹશ৘ใૹ৴ ΫϥΠΞϯτͷ ηογϣϯঢ়ଶΛ ؅ཧ͠ͳ͍ ಉ͡ϦΫΤετ݁Ռ Λ࠶ར༻͢Δ શαʔό͕ಉҰ ΠϯλʔϑΣʔε࠾༻ ΠϯλʔϑΣʔεͷҟͳΔϨΨγʔγεςϜͱ઀ଓͰ͖Δ γεςϜΛෳࡶ֊૚ʹ෼ׂ αʔόఏڙίʔυΛΫϥΠΞϯτ্Ͱ࣮ߦ ex.JavaScript

Slide 10

Slide 10 text

ຊ೔ͷ SUMMERLY )551ͱ3&45 4UBUF-FTTͱ 4UBUF'VMMͷҧ͍ 4UBUF'VMMͷ࣮ݱ$PPLJFͷ஀ੜ $PPLJFͷ໰୊఺ 4FTTJPOɾηογϣϯ؅ཧ ηογϣϯ؅ཧͷ࢓૊Έ ·ͱΊ 2

Slide 11

Slide 11 text

2. STATELESSͱ STATEFULLͷҧ͍

Slide 12

Slide 12 text

ͱ͋ΔϚΫυ˓ϧυͰͷ஫จ෩ܠ

Slide 13

Slide 13 text

ͱ͋ΔϚΫυ˓ϧυͰͷ஫จ෩ܠ

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

Կނ?

Slide 17

Slide 17 text

)551͸45"5&-&44ͳϓϩτίϧ

Slide 18

Slide 18 text

)551͸45"5&-&44ͳϓϩτίϧ

Slide 19

Slide 19 text

)551͸45"5&-&44ͳϓϩτίϧ αʔό͕ΫϥΠΞϯτͷ Ϣʔβ৘ใʢঢ়ଶʣΛอ࣋͠ͳ͍ w w w w w w w w w w w w w

Slide 20

Slide 20 text

STATELESSͱ͸ ୭͕Ͳͷ༷ͳঢ়ଶ͔Λอ࣋͠ͳ͍

Slide 21

Slide 21 text

45"5&-&44 લͷ௨৴ΛҾ͖ܧ͕ͳ͍ɻ̍ͭͷ௨৴͕ಠཱɻ

Slide 22

Slide 22 text

STATEFULLͱ͸??

Slide 23

Slide 23 text

STATEFULLͱ͸?? Ϣʔβ͕Ͳͷ༷ͳঢ়ଶ͔Λอ࣋͢Δ

Slide 24

Slide 24 text

45"5&'6-- લͷ௨৴ΛҾ͖ܧ͙ɻϙςτ͕஫จ͞Εͨ͜ͱΛೝࣝ͢Δɻ

Slide 25

Slide 25 text

1. COOKIE 2. SESSION StateFullΛ࣮ݱ͢Δํ๏ αʔό͕௨৴ه࿥ͷ͋Δ ɹ ΫϥΠΞϯτΛ൑ผՄೳʹ͢Δ

Slide 26

Slide 26 text

ຊ೔ͷ SUMMERLY )551ͱ3&45 4UBUF-FTTͱ4UBUF'VMMͷҧ͍ 4UBUF'VMMͷ࣮ݱ $PPLJFͷ஀ੜ $PPLJFͷ໰୊఺ 4FTTJPOɾηογϣϯ؅ཧ ηογϣϯ؅ཧͷ࢓૊Έ ·ͱΊ 2

Slide 27

Slide 27 text

3. STATEFULL ͷ࣮ݱ -COOKIEͷ஀ੜ-

Slide 28

Slide 28 text

1. HTTP͸ຊདྷϑΝΠϧసૹͷͨΊͷϓϩτίϧ ࣮ࡍ͸ίϯϐϡʔλͷѻ͑ΔσʔλͰ͋Ε͹ԿͰ΋సૹग़དྷΔ(͍ͯ͠Δ) 2. HTTP͸ΫϥΠΞϯτɾαʔόؒͷ௨৴ঢ়ଶΛ೺ѲͰ͖ͳ͍ 3. ಈతίϯςϯπΛఏڙ͍ͨ͠ͱ͍͏χʔζ͕ੜ͡Δ ηογϣϯঢ়ଶʹରԠͯ͠ҟͳΔϖʔδΛද͍ࣔͨ͠ 4. HTTP͚ͩͰͷηογϣϯ؅ཧ͸ܽ఺͕زͭ΋༗ͬͨ URLʹࣝผ৘ใΛؚΊΔํ๏Ͱηογϣϯ؅ཧͳͲ Cookieͷ஀ੜ·ͰͷܦҢ

Slide 29

Slide 29 text

1994೥ʹωοτεέʔϓίϛϡχέʔγϣϯζࣾʹΑͬ ͯCOOKIE ͕ఏҊɾ࣮૷͞ΕͨɻCOOKIEͰ͸࣍ͷΑ ͏ʹαʔόͱΫϥΠΞϯτؒͷSESSIONΛ؅ཧ͢Δɻ

Slide 30

Slide 30 text

ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ΫοΩʔΛ༻͍ͨεςʔτϑϧͳ௨৴ͷྲྀΕ 1. Cookieͷ࣮ଶ͸HTTPϔομʹ֨ೲͰ͖ΔςΩετϑΝΠϧ 2. ΫϥΠΞϯτͷϒϥ΢βʹอଘ͞ΕΔͷ͕ಛ௃

Slide 31

Slide 31 text

ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ΫοΩʔΛ༻͍ͨεςʔτϑϧͳ௨৴ͷྲྀΕ 1. Cookieͷ࣮ଶ͸HTTPϔομʹ֨ೲͰ͖ΔςΩετϑΝΠϧ 2. ΫϥΠΞϯτͷϒϥ΢βʹอଘ͞ΕΔͷ͕ಛ௃

Slide 32

Slide 32 text

ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ᶃcookieΛ ͍࣋ͬͯͳঢ়ଶͰ ϦΫΤετ ΫοΩʔΛ༻͍ͨεςʔτϑϧͳ௨৴ͷྲྀΕ 1. Cookieͷ࣮ଶ͸HTTPϔομʹ֨ೲͰ͖ΔςΩετϑΝΠϧ 2. ΫϥΠΞϯτͷϒϥ΢βʹอଘ͞ΕΔͷ͕ಛ௃

Slide 33

Slide 33 text

ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ᶃcookieΛ ͍࣋ͬͯͳঢ়ଶͰ ϦΫΤετ ΫοΩʔΛ༻͍ͨεςʔτϑϧͳ௨৴ͷྲྀΕ 1. Cookieͷ࣮ଶ͸HTTPϔομʹ֨ೲͰ͖ΔςΩετϑΝΠϧ 2. ΫϥΠΞϯτͷϒϥ΢βʹอଘ͞ΕΔͷ͕ಛ௃

Slide 34

Slide 34 text

ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ᶄ௨৴ঢ়ଶΛ ֨ೲͨ͠CookieΛ Ϩεϙϯε͢Δ ᶃcookieΛ ͍࣋ͬͯͳঢ়ଶͰ ϦΫΤετ ΫοΩʔΛ༻͍ͨεςʔτϑϧͳ௨৴ͷྲྀΕ 1. Cookieͷ࣮ଶ͸HTTPϔομʹ֨ೲͰ͖ΔςΩετϑΝΠϧ 2. ΫϥΠΞϯτͷϒϥ΢βʹอଘ͞ΕΔͷ͕ಛ௃

Slide 35

Slide 35 text

ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ᶅΫϥΠΞϯτͷ ϒϥ΢βʹ cookie͕อଘ͞ΕΔ ᶄ௨৴ঢ়ଶΛ ֨ೲͨ͠CookieΛ Ϩεϙϯε͢Δ ᶃcookieΛ ͍࣋ͬͯͳঢ়ଶͰ ϦΫΤετ ΫοΩʔΛ༻͍ͨεςʔτϑϧͳ௨৴ͷྲྀΕ 1. Cookieͷ࣮ଶ͸HTTPϔομʹ֨ೲͰ͖ΔςΩετϑΝΠϧ 2. ΫϥΠΞϯτͷϒϥ΢βʹอଘ͞ΕΔͷ͕ಛ௃

Slide 36

Slide 36 text

ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ೋճ໨Ҏ߱HTTPϦΫΤετ ᶅΫϥΠΞϯτͷ ϒϥ΢βʹ cookie͕อଘ͞ΕΔ ᶄ௨৴ঢ়ଶΛ ֨ೲͨ͠CookieΛ Ϩεϙϯε͢Δ ᶃcookieΛ ͍࣋ͬͯͳঢ়ଶͰ ϦΫΤετ ΫοΩʔΛ༻͍ͨεςʔτϑϧͳ௨৴ͷྲྀΕ 1. Cookieͷ࣮ଶ͸HTTPϔομʹ֨ೲͰ͖ΔςΩετϑΝΠϧ 2. ΫϥΠΞϯτͷϒϥ΢βʹอଘ͞ΕΔͷ͕ಛ௃

Slide 37

Slide 37 text

ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ೋճ໨Ҏ߱HTTPϦΫΤετ ᶅΫϥΠΞϯτͷ ϒϥ΢βʹ cookie͕อଘ͞ΕΔ ᶄ௨৴ঢ়ଶΛ ֨ೲͨ͠CookieΛ Ϩεϙϯε͢Δ ᶃcookieΛ ͍࣋ͬͯͳঢ়ଶͰ ϦΫΤετ ΫοΩʔΛ༻͍ͨεςʔτϑϧͳ௨৴ͷྲྀΕ 1. Cookieͷ࣮ଶ͸HTTPϔομʹ֨ೲͰ͖ΔςΩετϑΝΠϧ 2. ΫϥΠΞϯτͷϒϥ΢βʹอଘ͞ΕΔͷ͕ಛ௃

Slide 38

Slide 38 text

ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ೋճ໨Ҏ߱HTTPϦΫΤετ ᶅΫϥΠΞϯτͷ ϒϥ΢βʹ cookie͕อଘ͞ΕΔ ᶄ௨৴ঢ়ଶΛ ֨ೲͨ͠CookieΛ Ϩεϙϯε͢Δ ᶃcookieΛ ͍࣋ͬͯͳঢ়ଶͰ ϦΫΤετ ᶆϒϥ΢β͕cookieΛ HTTPϔομʹ֨ೲ͠ ௨৴Λ͢Δ ΫοΩʔΛ༻͍ͨεςʔτϑϧͳ௨৴ͷྲྀΕ 1. Cookieͷ࣮ଶ͸HTTPϔομʹ֨ೲͰ͖ΔςΩετϑΝΠϧ 2. ΫϥΠΞϯτͷϒϥ΢βʹอଘ͞ΕΔͷ͕ಛ௃

Slide 39

Slide 39 text

ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ೋճ໨Ҏ߱HTTPϦΫΤετ ᶅΫϥΠΞϯτͷ ϒϥ΢βʹ cookie͕อଘ͞ΕΔ ᶄ௨৴ঢ়ଶΛ ֨ೲͨ͠CookieΛ Ϩεϙϯε͢Δ ᶃcookieΛ ͍࣋ͬͯͳঢ়ଶͰ ϦΫΤετ ᶆϒϥ΢β͕cookieΛ HTTPϔομʹ֨ೲ͠ ௨৴Λ͢Δ ΫοΩʔΛ༻͍ͨεςʔτϑϧͳ௨৴ͷྲྀΕ 1. Cookieͷ࣮ଶ͸HTTPϔομʹ֨ೲͰ͖ΔςΩετϑΝΠϧ 2. ΫϥΠΞϯτͷϒϥ΢βʹอଘ͞ΕΔͷ͕ಛ௃

Slide 40

Slide 40 text

ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ೋճ໨Ҏ߱HTTPϦΫΤετ ᶅΫϥΠΞϯτͷ ϒϥ΢βʹ cookie͕อଘ͞ΕΔ ᶄ௨৴ঢ়ଶΛ ֨ೲͨ͠CookieΛ Ϩεϙϯε͢Δ ᶇड͚औͬͨcookie͔Β ΫϥΠΞϯτΛ൑ผ͠ ؔ࿈ͨ͠Ҏલͷ ௨৴ঢ়ଶͱؔ࿈ͤ͞Δ ᶃcookieΛ ͍࣋ͬͯͳঢ়ଶͰ ϦΫΤετ ᶆϒϥ΢β͕cookieΛ HTTPϔομʹ֨ೲ͠ ௨৴Λ͢Δ ΫοΩʔΛ༻͍ͨεςʔτϑϧͳ௨৴ͷྲྀΕ 1. Cookieͷ࣮ଶ͸HTTPϔομʹ֨ೲͰ͖ΔςΩετϑΝΠϧ 2. ΫϥΠΞϯτͷϒϥ΢βʹอଘ͞ΕΔͷ͕ಛ௃

Slide 41

Slide 41 text

ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ೋճ໨Ҏ߱HTTPϦΫΤετ ᶅΫϥΠΞϯτͷ ϒϥ΢βʹ cookie͕อଘ͞ΕΔ ᶄ௨৴ঢ়ଶΛ ֨ೲͨ͠CookieΛ Ϩεϙϯε͢Δ ಈతίϯςϯπΛHTTPϨεϙϯε ᶇड͚औͬͨcookie͔Β ΫϥΠΞϯτΛ൑ผ͠ ؔ࿈ͨ͠Ҏલͷ ௨৴ঢ়ଶͱؔ࿈ͤ͞Δ ᶃcookieΛ ͍࣋ͬͯͳঢ়ଶͰ ϦΫΤετ ᶆϒϥ΢β͕cookieΛ HTTPϔομʹ֨ೲ͠ ௨৴Λ͢Δ ΫοΩʔΛ༻͍ͨεςʔτϑϧͳ௨৴ͷྲྀΕ 1. Cookieͷ࣮ଶ͸HTTPϔομʹ֨ೲͰ͖ΔςΩετϑΝΠϧ 2. ΫϥΠΞϯτͷϒϥ΢βʹอଘ͞ΕΔͷ͕ಛ௃

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

1. Webαʔό͕Webϒϥ΢βʹͦͷঢ়ଶΛ۠ผ͢ΔࣝผࢠΛHTTPϔομʹؚΊΔܗͰϨεϙϯε͢Δ 2. ϒϥ΢β͸࣍ʹͦͷαʔόͱ௨৴͢Δࡍʹɺ༩͑ΒΕͨࣝผࢠΛHTTPϔομʹؚΊͯϦΫΤετ͢Δ 3. αʔό͸ͦͷࣝผࢠΛݩʹίϯςϯπͷ಺༰ΛϢʔβʹ߹ΘͤͯΧελϚΠζ͠ɺϒϥ΢βʹ౉͢ ɹɹඞཁ͕͋Ε͹৽ͨͳࣝผࢠ΋HTTPϔομʹؚΊΔɻ Ҏ߱2ɺ3ͷ܁Γฦ͠ɻ HTTP cookie Ҿ༻ݩɿhttps://ja.wikipedia.org/wiki/HTTP_cookie Λଟগฤू

Slide 45

Slide 45 text

•ϩάΠϯ •γϣοϐϯάΧʔτ •ήʔϜͷείΞ •·ͨ͸ͦͷଞͷαʔόʔ͕͓֮͑ͯ͘΂͖΋ͷ HTTP Cookie ͷ࢖༻ Cookie ͸ओʹɺҎԼͷ༻్Ͱ࢖༻(ηογϣϯ؅ཧͷ৔߹) Ҿ༻ݩɿhttps://developer.mozilla.org/ja/docs/Web/HTTP/Cookies

Slide 46

Slide 46 text

HTTP Cookieɿcookieͷத਎ Ҿ༻ݩɿinfraexpert.com/study/tcpip16.6.html

Slide 47

Slide 47 text

ຊ೔ͷ SUMMERLY )551ͱ3&45 4UBUF-FTTͱ4UBUF'VMMͷҧ͍ 4UBUF'VMMͷ࣮ݱ$PPLJFͷ஀ੜ $PPLJFͷ໰୊఺ 4FTTJPOɾηογϣϯ؅ཧ ηογϣϯ؅ཧͷ࢓૊Έ ·ͱΊ 2

Slide 48

Slide 48 text

4. COOKIEͷ໰୊఺

Slide 49

Slide 49 text

1. ػີੑͷߴ͍৘ใΛ௨৴͢Δ౓ʹHTTPϔομʹઃఆ ௨৴ͷ౓ʹ৘ใ࿙Ӯͷةݥੑ 2. ΫϥΠΞϯτଆͰվ᜵Մೳ πʔϧΛ࢖͑͹Ӿཡɾฤू͸؆୯ 3. ϔομʹ࣋ͨͤΕΔ༰ྔ͕গͳ͍ ηοτ͢Δ஋ͷ௕͕͞4096BYTEҎ্ͷ৔߹͸ແࢹ͞ΕΔ Cookieͷ໰୊఺

Slide 50

Slide 50 text

ຊ೔ͷ SUMMERLY )551ͱ3&45 4UBUF-FTTͱ4UBUF'VMMͷҧ͍ 4UBUF'VMMͷ࣮ݱ$PPLJFͷ஀ੜ $PPLJFͷ໰୊఺ 4FTTJPOͱηογϣϯ ηογϣϯ؅ཧͷ࢓૊Έ ·ͱΊ 2

Slide 51

Slide 51 text

5. SESSIONͱηογϣϯ؅ཧ

Slide 52

Slide 52 text

ɾ௨৴઀ଓΛཱ֬ʙ੾அ·Ͱ ɾϩάΠϯ͔ΒϩάΞ΢τ·Ͱ ɾηογϣϯҰఆظؒͷ׆ಈ ϙΠϯτ͸zҰ࿈zͷྲྀΕ

Slide 53

Slide 53 text

͜ͷҰ࿈ͷྲྀΕͷؒ͸໪࿦

Slide 54

Slide 54 text

εςʔτϑϧ Ϣʔβͷ৘ใʢঢ়ଶʣ͸อ࣋

Slide 55

Slide 55 text

֓೦ͱͯ͠ͷηογϣϯ͸ ঢ়ଶΛࢦ͠·͢ɻ

Slide 56

Slide 56 text

͜ΕΛηογϣϯঢ়ଶɺ ΋͘͠͸ ΞϓϦέʔγϣϯঢ়ଶͱݺͼ·͢ɻ

Slide 57

Slide 57 text

WebΛηογϣϯঢ়ଶʹ͢Δ୅ද֨͸Cookieܕʢଞʹ3छ΄Ͳʣ Cookieܕ = Cookie + Session ID + DB ΫϥΠΞϯτ ʢˈʣ WebClientᶃ WebServer WebClientᶄ Session ID Ϣʔβ ID ϩάΠϯ ஫จ඼ ஫จ׬ྃ 218751o f i324 kato OK ถ ✔ 43298utjfoi2 gyaga OK —— —— —— —— —— —— —— —— —— —— Session ID 218751o f i324 Session ID 43298utjfoi2 Session ID 43298utjfoi2 Session ID 218751o f i324 Server͕؅ཧ͢Δηογϣϯঢ়ଶ

Slide 58

Slide 58 text

ηογϣϯΛར༻ͯ͠ ηογϣϯঢ়ଶΛ؅ཧ͢Δ͜ͱΛ zηογϣϯ؅ཧzͱݺͿ

Slide 59

Slide 59 text

ຊ೔ͷ SUMMERLY )551ͱ3&45 4UBUF-FTTͱ4UBUF'VMMͷҧ͍ 4UBUF'VMMͷ࣮ݱ$PPLJFͷ஀ੜ $PPLJFͷ໰୊఺ 4FTTJPOɾηογϣϯ؅ཧ ηογϣϯ؅ཧͷ࢓૊Έ ·ͱΊ 2

Slide 60

Slide 60 text

6. ηογϣϯ؅ཧͷ࢓૊Έ

Slide 61

Slide 61 text

1. ηογϣϯ͸ΫϥΠΞϯτͱαʔόͷ௨৴ঢ়ଶΛεςʔτϑϧʹ͢Δ 2. αʔόଆͰ͸ηογϣϯID(͋Δηογϣϯͱඥ෇͍ͨΩʔ)ͱηογϣϯ(ঢ়ଶ)Λอଘ ηογϣϯIDͷΈԿΒ͔ͷखஈͰΫϥΠΞϯτʹ౉͢ 1. ΫοΩʔΛར༻͢Δํ๏ 2. URLͷΫΤϦετϦϯά 3. HIDDENଐੑʹ౉͢ 3. ηΩϡϦςΟͷ؍఺͔ΒҰൠతʹ͸ΫοΩʔΛ࢖͏͜ͱ͕ଟ͍ɽ Session

Slide 62

Slide 62 text

ηογϣϯঢ়ଶͷ؅ཧ֓ཁ ඞཁͳཁ݅ɺ࣮ݱ͢ΔͨΊͷ৚݅ ɾϢʔβ͸Session IDΛऔಘग़དྷΔΑ͏ͳঢ়ଶʹ͢Δ ɾϢʔβ͸ຖճHTTPϦΫΤετ࣌ʹSession IDΛ෇༩͠Serverʹૹ৴ ɾServer͸HTTPϦΫΤετʹ෇༩͞ΕͨSession IDΛݟͯɺϢʔβΛ൑ผ͢Δ ɾෳ਺Ϣʔβ͔ΒͷϦΫΤετ࣌Ͱ΋ಉ͡Ϣʔβ͔ΒͷϦΫΤετΛ൑ผ͍ͨ͠ ɾෳ਺Ϣʔβ͕ಉ࣌ʹ࢖͍ͬͯͯ΋ݸผʹηογϣϯঢ়ଶΛ؅ཧ͍ͨ͠ ɾෳ਺Ϣʔβ࢖༻தʹɺผͷϢʔβ৘ใ͸ݟΕͳ͍Α͏ʹ͢Δ ཁ ݅ ৚ ݅

Slide 63

Slide 63 text

ηογϣϯঢ়ଶͷ؅ཧ֓ཁ ඞཁͳཁ݅ɺ࣮ݱ͢ΔͨΊͷ৚݅ ɾϢʔβ͸Session IDΛऔಘग़དྷΔΑ͏ͳঢ়ଶʹ͢Δ ɾϢʔβ͸ຖճHTTPϦΫΤετ࣌ʹSession IDΛ෇༩͠Serverʹૹ৴ ɾServer͸HTTPϦΫΤετʹ෇༩͞ΕͨSession IDΛݟͯɺϢʔβΛ൑ผ͢Δ ɾෳ਺Ϣʔβ͔ΒͷϦΫΤετ࣌Ͱ΋ಉ͡Ϣʔβ͔ΒͷϦΫΤετΛ൑ผ͍ͨ͠ ɾෳ਺Ϣʔβ͕ಉ࣌ʹ࢖͍ͬͯͯ΋ݸผʹηογϣϯঢ়ଶΛ؅ཧ͍ͨ͠ ɾෳ਺Ϣʔβ࢖༻தʹɺผͷϢʔβ৘ใ͸ݟΕͳ͍Α͏ʹ͢Δ ཁ ݅ ৚ ݅

Slide 64

Slide 64 text

ηογϣϯঢ়ଶͷ؅ཧ֓ཁ ඞཁͳཁ݅ɺ࣮ݱ͢ΔͨΊͷ৚݅ ɾϢʔβ͸Session IDΛऔಘग़དྷΔΑ͏ͳঢ়ଶʹ͢Δ ɾϢʔβ͸ຖճHTTPϦΫΤετ࣌ʹSession IDΛ෇༩͠Serverʹૹ৴ ɾServer͸HTTPϦΫΤετʹ෇༩͞ΕͨSession IDΛݟͯɺϢʔβΛ൑ผ͢Δ ɾෳ਺Ϣʔβ͔ΒͷϦΫΤετ࣌Ͱ΋ಉ͡Ϣʔβ͔ΒͷϦΫΤετΛ൑ผ͍ͨ͠ ɾෳ਺Ϣʔβ͕ಉ࣌ʹ࢖͍ͬͯͯ΋ݸผʹηογϣϯঢ়ଶΛ؅ཧ͍ͨ͠ ɾෳ਺Ϣʔβ࢖༻தʹɺผͷϢʔβ৘ใ͸ݟΕͳ͍Α͏ʹ͢Δ ཁ ݅ ৚ ݅

Slide 65

Slide 65 text

ηογϣϯঢ়ଶͷ؅ཧ֓ཁ ඞཁͳཁ݅ɺ࣮ݱ͢ΔͨΊͷ৚݅ ɾϢʔβ͸Session IDΛऔಘग़དྷΔΑ͏ͳঢ়ଶʹ͢Δ ɾϢʔβ͸ຖճHTTPϦΫΤετ࣌ʹSession IDΛ෇༩͠Serverʹૹ৴ ɾServer͸HTTPϦΫΤετʹ෇༩͞ΕͨSession IDΛݟͯɺϢʔβΛ൑ผ͢Δ ɾෳ਺Ϣʔβ͔ΒͷϦΫΤετ࣌Ͱ΋ಉ͡Ϣʔβ͔ΒͷϦΫΤετΛ൑ผ͍ͨ͠ ɾෳ਺Ϣʔβ͕ಉ࣌ʹ࢖͍ͬͯͯ΋ݸผʹηογϣϯঢ়ଶΛ؅ཧ͍ͨ͠ ɾෳ਺Ϣʔβ࢖༻தʹɺผͷϢʔβ৘ใ͸ݟΕͳ͍Α͏ʹ͢Δ ཁ ݅ ৚ ݅

Slide 66

Slide 66 text

ηογϣϯঢ়ଶͷ؅ཧ֓ཁ ඞཁͳཁ݅ɺ࣮ݱ͢ΔͨΊͷ৚݅ ɾϢʔβ͸Session IDΛऔಘग़དྷΔΑ͏ͳঢ়ଶʹ͢Δ ɾϢʔβ͸ຖճHTTPϦΫΤετ࣌ʹSession IDΛ෇༩͠Serverʹૹ৴ ɾServer͸HTTPϦΫΤετʹ෇༩͞ΕͨSession IDΛݟͯɺϢʔβΛ൑ผ͢Δ ɾෳ਺Ϣʔβ͔ΒͷϦΫΤετ࣌Ͱ΋ಉ͡Ϣʔβ͔ΒͷϦΫΤετΛ൑ผ͍ͨ͠ ɾෳ਺Ϣʔβ͕ಉ࣌ʹ࢖͍ͬͯͯ΋ݸผʹηογϣϯঢ়ଶΛ؅ཧ͍ͨ͠ ɾෳ਺Ϣʔβ࢖༻தʹɺผͷϢʔβ৘ใ͸ݟΕͳ͍Α͏ʹ͢Δ ཁ ݅ ৚ ݅

Slide 67

Slide 67 text

ηογϣϯঢ়ଶͷ؅ཧ֓ཁ ඞཁͳཁ݅ɺ࣮ݱ͢ΔͨΊͷ৚݅ ɾϢʔβ͸Session IDΛऔಘग़དྷΔΑ͏ͳঢ়ଶʹ͢Δ ɾϢʔβ͸ຖճHTTPϦΫΤετ࣌ʹSession IDΛ෇༩͠Serverʹૹ৴ ɾServer͸HTTPϦΫΤετʹ෇༩͞ΕͨSession IDΛݟͯɺϢʔβΛ൑ผ͢Δ ɾෳ਺Ϣʔβ͔ΒͷϦΫΤετ࣌Ͱ΋ಉ͡Ϣʔβ͔ΒͷϦΫΤετΛ൑ผ͍ͨ͠ ɾෳ਺Ϣʔβ͕ಉ࣌ʹ࢖͍ͬͯͯ΋ݸผʹηογϣϯঢ়ଶΛ؅ཧ͍ͨ͠ ɾෳ਺Ϣʔβ࢖༻தʹɺผͷϢʔβ৘ใ͸ݟΕͳ͍Α͏ʹ͢Δ ཁ ݅ ৚ ݅

Slide 68

Slide 68 text

WebΛηογϣϯঢ়ଶʹ͢Δ୅ද֨͸Cookieܕʢଞʹ3छ΄Ͳʣ Cookieܕ = Cookie + Session ID + DB ΫϥΠΞϯτ ʢˈʣ WebClient WebServer

Slide 69

Slide 69 text

WebΛηογϣϯঢ়ଶʹ͢Δ୅ද֨͸Cookieܕʢଞʹ3छ΄Ͳʣ Cookieܕ = Cookie + Session ID + DB ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ɾSession IDΛอଘ͢Δ৔ॴ͕Cookie ɾSession IDΛอ࣋͢Δ৔ॴ͕Session

Slide 70

Slide 70 text

WebΛηογϣϯঢ়ଶʹ͢Δ୅ද֨͸Cookieܕʢଞʹ3छ΄Ͳʣ Cookieܕ = Cookie + Session ID + DB ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ

Slide 71

Slide 71 text

WebΛηογϣϯঢ়ଶʹ͢Δ୅ද֨͸Cookieܕʢଞʹ3छ΄Ͳʣ Cookieܕ = Cookie + Session ID + DB ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ HTTPϨεϙϯε

Slide 72

Slide 72 text

WebΛηογϣϯঢ়ଶʹ͢Δ୅ද֨͸Cookieܕʢଞʹ3छ΄Ͳʣ Cookieܕ = Cookie + Session ID + DB ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ HTTPϨεϙϯε

Slide 73

Slide 73 text

WebΛηογϣϯঢ়ଶʹ͢Δ୅ද֨͸Cookieܕʢଞʹ3छ΄Ͳʣ Cookieܕ = Cookie + Session ID + DB ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ᶃServer͔Β SessionIDΛൃߦ͠ Cookieʹ֨ೲ HTTPϨεϙϯε

Slide 74

Slide 74 text

WebΛηογϣϯঢ়ଶʹ͢Δ୅ද֨͸Cookieܕʢଞʹ3छ΄Ͳʣ Cookieܕ = Cookie + Session ID + DB ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ೋճ໨Ҏ߱HTTPϦΫΤετ ᶃServer͔Β SessionIDΛൃߦ͠ Cookieʹ֨ೲ

Slide 75

Slide 75 text

WebΛηογϣϯঢ়ଶʹ͢Δ୅ද֨͸Cookieܕʢଞʹ3छ΄Ͳʣ Cookieܕ = Cookie + Session ID + DB ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ೋճ໨Ҏ߱HTTPϦΫΤετ ᶄSession IDΛ ֨ೲͨ͠CookieΛ Serverʹฦ͢ ᶃServer͔Β SessionIDΛൃߦ͠ Cookieʹ֨ೲ

Slide 76

Slide 76 text

WebΛηογϣϯঢ়ଶʹ͢Δ୅ද֨͸Cookieܕʢଞʹ3छ΄Ͳʣ Cookieܕ = Cookie + Session ID + DB ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ೋճ໨Ҏ߱HTTPϦΫΤετ ᶄSession IDΛ ֨ೲͨ͠CookieΛ Serverʹฦ͢ ᶃServer͔Β SessionIDΛൃߦ͠ Cookieʹ֨ೲ

Slide 77

Slide 77 text

WebΛηογϣϯঢ়ଶʹ͢Δ୅ද֨͸Cookieܕʢଞʹ3छ΄Ͳʣ Cookieܕ = Cookie + Session ID + DB ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ೋճ໨Ҏ߱HTTPϦΫΤετ ᶅCookie͔Β Session IDΛऔΓग़͠ ϢʔβΛ൑ผ ᶄSession IDΛ ֨ೲͨ͠CookieΛ Serverʹฦ͢ ᶃServer͔Β SessionIDΛൃߦ͠ Cookieʹ֨ೲ

Slide 78

Slide 78 text

WebΛηογϣϯঢ়ଶʹ͢Δ୅ද֨͸Cookieܕʢଞʹ3छ΄Ͳʣ Cookieܕ = Cookie + Session ID + DB ΫϥΠΞϯτ ʢˈʣ WebClient WebServer ॳճHTTPϦΫΤετ ೋճ໨Ҏ߱HTTPϦΫΤετ ᶄSession IDΛ ֨ೲͨ͠CookieΛ Serverʹฦ͢ ᶃServer͔Β SessionIDΛൃߦ͠ Cookieʹ֨ೲ HTTPϨεϙϯε ᶅCookie͔Β Session IDΛऔΓग़͠ ϢʔβΛ൑ผ

Slide 79

Slide 79 text

ຊ೔ͷ SUMMERLY )551ͱ3&45 4UBUF-FTTͱ4UBUF'VMMͷҧ͍ 4UBUF'VMMͷ࣮ݱ$PPLJFͷ஀ੜ $PPLJFͷ໰୊఺ 4FTTJPOɾηογϣϯ؅ཧ ηογϣϯ؅ཧͷ࢓૊Έ ·ͱΊ 2

Slide 80

Slide 80 text

7. ·ͱΊ

Slide 81

Slide 81 text

1. HTTP͸εςʔτϑϧ → ݩʑϑΝΠϧసૹͷҝͷϓϩτίϧ εςʔτϨεͱ͸ಛఆϢʔβͷҰ࿈ͷ௨৴ঢ়ଶΛ೺Ѳ͍ͯ͠ͳ͍ 2. εςʔτϑϧʹ͢Δํ๏͸COOKIEͱSESSIONͷ2ͭ εςʔτϑϧͱ͸ηογϣϯঢ়ଶΛอ࣋͠ɺͦΕΛ؅ཧͰ͖Δ͜ͱ 3. ηογϣϯঢ়ଶͱ͸ಛఆϢʔβͷ௨৴ͷ֬཰ʙ੾அؒͰͷߦಈཤྺͷΑ͏ͳ΋ͷ ηογϣϯঢ়ଶͷอ࣋͸COOKIEͰ͸HTTPϔομͰߦ͍ɺSESSIONͰ͸αʔόͰߦ͏ 4. ηογϣϯ؅ཧͱ͸ηογϣϯঢ়ଶΛ؅ཧ͢Δ͜ͱ ෳ਺ͷHTTP௨৴ͱಛఆͷϢʔβΛඥ෇͚ɺεςʔτϨεͳαʔό͕ϢʔβΛࣝผग़དྷΔΑ͏ʹ͢Δ 5. COOKIEͱSESSION͸໌֬ʹҟͳΔ SESSIONΛ༻͍ͨηογϣϯ؅ཧʹ͓͍ͯखஈͱͯ͠COOKIE͕͋ΔɻSESSIONʹ͸ٕज़ͱ֓೦ͷೋछྨ͕͋ΔͷͰࠞཚ͢Δ 6. COOKIE͸αʔό͕ΫϥΠΞϯτʹࣝผࢠ/Ϣʔβ৘ใΛอଘ͠εςʔτϑϧΛ࣮ݱ͢Δ COOKIE͸HTTPϔομʹ֨ೲͰ͖ΔςΩετϑΝΠϧ → ηΩϡϦςΟʹ໰୊͕͋ΔͷͰCOOKIEͷΈͰ͸࢖༻͠ͳ͍ 7. SESSION͸ηογϣϯIDͱηογϣϯঢ়ଶΛαʔόʹอଘͯ͠εςʔτϑϧΛ࣮ݱ͢Δ IDͱηογϣϯঢ়ଶ͕ඥͮ͘ɻαʔό͸ηογϣϯID ΛԿΒ͔ͷํ๏ͰΫϥΠΞϯτʹ౉͢ ·ͱΊ