Slide 1

Slide 1 text

)551଎शձ!8BOUFEMZ  /BP.JOBNJ !TPVUI

Slide 2

Slide 2 text

ࣗݾ঺հ

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

w )551ͱ͸ʁ w )551͕ੜ·Εͨഎܠ w )551ͷػೳ w <ϋϯζΦϯ>)551ରԠαʔόʔ)0Λಈ͔ͯ͠ΈΔ w ·ͱΊ ࠓ೔଎श͢Δ಺༰

Slide 6

Slide 6 text

w )551ͱ͸ʁ w )551͕ੜ·Εͨഎܠ w )551ͷػೳ w <ϋϯζΦϯ>)551ରԠαʔόʔ)0Λಈ͔ͯ͠ΈΔ w ·ͱΊ ࠓ೔଎श͢Δ಺༰

Slide 7

Slide 7 text

)551ͱ͸ʁ w *&5'͕ఏএ͢Δ)551ϓϩτίϧͷ࠷৽൛ w ೥݄ʹɺਖ਼ࣜʹঝೝʂ w ʢ೥Ҏདྷ೥ͿΓͷόʔδϣϯΞοϓʣ w 8FCͷޮ཰Խɺߴ଎Խʹओ؟ʂʂ

Slide 8

Slide 8 text

)551ͱ͸ʁ w )551ͷηϚϯςΟΫε͸มߋ͠ͳ͍ w ओཁͳػೳ w ଟॏԽ w ϔομѹॖ w ༏ઌ౓੍ޚ w αʔόʔϓογϡ

Slide 9

Slide 9 text

)551ͱ͸ʁ w )551ͷηϚϯςΟΫε͸มߋ͠ͳ͍ w ओཁͳػೳ w ଟॏԽ w ϔομѹॖ w ༏ઌ౓੍ޚ w αʔόʔϓογϡ )551஀ੜͷഎܠʹ͸ɺ)551ͷ՝୊

Slide 10

Slide 10 text

w )551ͱ͸ʁ w )551஀ੜͷഎܠ w )551ͷػೳ w <ϋϯζΦϯ>)551ରԠαʔόʔ)0Λಈ͔ͯ͠ΈΔ w ·ͱΊ ࠓ೔଎श͢Δ಺༰

Slide 11

Slide 11 text

)551஀ੜͷഎܠ w )551஀ੜͷഎܠʹ͸ɺ)551ͷ՝୊ w Ͱ͸ɺ)551ͱ͸ͦ΋ͦ΋ͲΜͳ΋ͷͩͬͨʁ

Slide 12

Slide 12 text

)551 w ͭͷ5$1ίωΫγϣϯ্ͰͭͷSFRVFTUʹରͯ͠ ͭͷSFTQPOTFΛฦ͢γϯϓϧͳϓϩτίϧ GET / HTTP/1.1 Host: example.com Connection: keep-alive HTTP/1.1 200 OK Content-Type: text/html Server: Nginx Content-Length: 1024 sample …… request response UFYUϕʔεͷIFBEFS ༷ʑͳNJNFUZQFͷCPEZ

Slide 13

Slide 13 text

)551 w ͭͷ5$1ίωΫγϣϯ্ͰͭͷSFRVFTUʹରͯ͠ ͭͷSFTQPOTFΛฦ͢γϯϓϧͳϓϩτίϧ $MJFOU 4FSWFS NT NT

Slide 14

Slide 14 text

)551ͷ՝୊ w )FBEPG-JOF#MPDLJOH )0-#MPDLJOH  w ͭͷ5$1ίωΫγϣϯ্ͰɺSFRVFTUॱʹ͔͠ SFTQPOTFΛฦͤͳ͍ w )FBEFSͷૹ৴ʹແବ͕ଟ͍ w ςΩετϕʔε͔ͭѹॖෛՙͰඇޮ཰ w ࣅͨ಺༰ΛԿ౓΋ૹΔ

Slide 15

Slide 15 text

)551ͷ՝୊ w )FBEPG-JOF#MPDLJOH )0-#MPDLJOH  w ͭͷ5$1ίωΫγϣϯ্ͰɺSFRVFTUॱʹ͔͠ SFTQPOTFΛฦͤͳ͍ w )FBEFSͷૹ৴ʹແବ͕ଟ͍ w ςΩετϕʔε͔ͭѹॖෛՙͰඇޮ཰ w ࣅͨ಺༰ΛԿ౓΋ૹΔ

Slide 16

Slide 16 text

)551ͷ՝୊ w )FBEPG-JOF#MPDLJOH )0-#MPDLJOH  w ͭͷ5$1ίωΫγϣϯ্ͰɺSFRVFTUॱʹ͔͠ SFTQPOTFΛฦͤͳ͍ $MJFOU 4FSWFS NT NT NT ͕͔͔࣌ؒΓ͗͢Δʂ ϦΫΤετ਺ʷNT 355

Slide 17

Slide 17 text

)0-#MPDLJOHճආͷͨΊͷΞϓϩʔν w ϒϥ΢β͔ΒͷฒྻϦΫΤετ w )551ύΠϓϥΠϯ w )551ϦΫΤετ਺ΛݮΒͨ͢ΊͷϋοΫ

Slide 18

Slide 18 text

)0-#MPDLJOHճආͷͨΊͷΞϓϩʔν w ϒϥ΢β͔ΒͷฒྻϦΫΤετ w )551ύΠϓϥΠϯ w )551ϦΫΤετ਺ΛݮΒͨ͢ΊͷϋοΫ

Slide 19

Slide 19 text

ϒϥ΢β͔ΒͷฒྻϦΫΤετ w ϒϥ΢β͸ͭͷϗετʹ͖ͭͭͷ5$1ίωΫγϣϯ w ฒྻͰϦΫΤετΛૹΔ $MJFOU 4FSWFS NT NT ͋Δఔ౓͸ղܾ

Slide 20

Slide 20 text

w ϒϥ΢β͸ͭͷϗετʹ͖ͭͭͷ5$1ίωΫγϣϯ w ฒྻͰϦΫΤετΛૹΔ $MJFOU 4FSWFS NT NT ز͔ͭ໰୊͸࢒Δ w ͭ໨ͷSFRVFTU͸CMPDL w UDQTPDLFU౳ͷϦιʔε ࿘අʹͭͳ͕Δ ϒϥ΢β͔ΒͷฒྻϦΫΤετ

Slide 21

Slide 21 text

)0-#MPDLJOHճආͷͨΊͷΞϓϩʔν w ϒϥ΢β͔ΒͷฒྻϦΫΤετ w )551ύΠϓϥΠϯ w )551ϦΫΤετ਺ΛݮΒͨ͢ΊͷϋοΫ

Slide 22

Slide 22 text

w ͭͷ5$1ίωΫγϣϯͰɺSFTQPOTFΛ଴ͨͣʹ SFRVFTUΛૹΔ )551ύΠϓϥΠϯ $MJFOU 4FSWFS NT NT Ұݟྑͦ͞͏ɻɻʁʁʁ

Slide 23

Slide 23 text

w ͭͷ5$1ίωΫγϣϯͰɺSFTQPOTFΛ଴ͨͣʹ SFRVFTUΛૹΔ )551ύΠϓϥΠϯ $MJFOU 4FSWFS NT NT 4FSWFSॲཧͷ஗ԆͰ໰୊ )5.- $44 )5.- $44 $44 )5.- w SFTQPOTF͸SFRVFTUॱ w ஗͍ͭʹҾ͖ͣΒΕΔ

Slide 24

Slide 24 text

)0-#MPDLJOHճආͷͨΊͷΞϓϩʔν w ϒϥ΢β͔ΒͷฒྻϦΫΤετ w )551ύΠϓϥΠϯ w )551ϦΫΤετ਺ΛݮΒͨ͢ΊͷϋοΫ

Slide 25

Slide 25 text

w %PNBJO4IBSEJOH w ϗετ͝ͱʹฒྻͳΒɺϗετͷ਺Λ૿΍͢ w $44 +4ͳͲͷBTTFUTΛDPODBUͯͭ͠ͷϑΝΠϧʹ w BTTFUTϑΝΠϧͷϦΫΤετ਺ΛݮΒ͢ w $444QSJUF w খ͞ͳͨ͘͞Μͷը૾Λ݁߹ͯ͠ຕͷେ͖ͳը૾ʹ w FUD )551ϦΫΤετ਺ΛݮΒ͢ϋοΫ

Slide 26

Slide 26 text

w %PNBJO4IBSEJOH w ϗετ͝ͱʹฒྻͳΒɺϗετͷ਺Λ૿΍͢ w $44 +4ͳͲͷBTTFUTΛDPODBUͯͭ͠ͷϑΝΠϧʹ w BTTFUTϑΝΠϧͷϦΫΤετ਺ΛݮΒ͢ w $444QSJUF w খ͞ͳͨ͘͞Μͷը૾Λ݁߹ͯ͠ຕͷେ͖ͳը૾ʹ w FUD )551ϦΫΤετ਺ΛݮΒ͢ϋοΫ )0-#MPDLJOH͕ແ͘ͳΕ͹ɺ͜ΜͳϋοΫ͸ඞཁͳ͍ʂ

Slide 27

Slide 27 text

)551

Slide 28

Slide 28 text

w )551ͱ͸ʁ w )551஀ੜͷഎܠ w )551ͷػೳ w <ϋϯζΦϯ>)551ରԠαʔόʔ)0Λಈ͔ͯ͠ΈΔ w ·ͱΊ ࠓ೔଎श͢Δ಺༰

Slide 29

Slide 29 text

w )551ͷηϚϯςΟΫε͸มߋ͠ͳ͍ w ओཁͳػೳ w ଟॏԽ w ϔομѹॖ w ༏ઌ౓੍ޚ w αʔόʔϓογϡ )551ͷػೳ

Slide 30

Slide 30 text

w )551ͷηϚϯςΟΫε͸มߋ͠ͳ͍ w ओཁͳػೳ w ଟॏԽ w ϔομѹॖ w ༏ઌ౓੍ޚ w αʔόʔϓογϡ )551ͷػೳ

Slide 31

Slide 31 text

ଟॏԽ w ͭͷ5$1ίωΫγϣϯ্Ͱɺෳ਺ͷSFRVFTUɺ SFTQPOTFΛ΍ΓऔΓͰ͖ΔΑ͏ʹͳͬͨ w )0-#MPDLJOHղফʂ w ਺ʹ੍ݶ΋ͳ͍ʂ $MJFOU 4FSWFS NT NT )551࣌୅ͷଟ͘ͷ໰୊͕ղܾ

Slide 32

Slide 32 text

ଟॏԽ͸Ͳ͏࣮ݱͯ͠Δͷ͔ʁ w ετϦʔϜΛར༻ w ͭͷUDQίωΫγϣϯ্ʹෳ਺ͷετϦʔϜ w SFRVFTUSFTQPOTFʹɺετϦʔϜΛׂΓ౰ͯ ͭͷ5$1ίωΫγϣϯ ετϦʔϜ ετϦʔϜ SFRVFTU SFTQPOTF $MJFOU 4FSWFS

Slide 33

Slide 33 text

ଟॏԽ͸Ͳ͏࣮ݱͯ͠Δͷ͔ʁ w σʔλૹ৴ͷ୯Ґ͸όΠφϦͷϑϨʔϜ w ϑϨʔϜͷγʔέϯε͕ϝοηʔδ w ͭͷSFRVFTU ͭͷSFTQPOTF͕ϝοηʔδ HEADERS ϑϨʔϜ HEADERS ϑϨʔϜ DATA ϑϨʔϜ ετϦʔϜ SFRVFTUϝοηʔδ SFTQPOTFϝοηʔδ

Slide 34

Slide 34 text

ଟॏԽ͸Ͳ͏࣮ݱͯ͠Δͷ͔ʁ w ͭͷ5$1ίωΫγϣϯ্Ͱɺ༷ʑͳετϦʔϜͷ ϑϨʔϜ͕ࠞͬͯ͟ૹΒΕΔ ετϦʔϜ1 DATA ϑϨʔϜ ͭͷ5$1ίωΫγϣϯ ετϦʔϜ2 HEADERS ϑϨʔϜ ετϦʔϜ1 HEADERS ϑϨʔϜ

Slide 35

Slide 35 text

ଟॏԽ͸Ͳ͏࣮ݱͯ͠Δͷ͔ʁ w ϑϨʔϜΛσίʔυͨ͠಺༰͸)551ͱมΘΒͣ )&"%&34ϑϨʔϜ NFUIPE(&5 QBUIJOEFYIUNM TDIFNFIUUQT BVUIPSJUZXXXFYBNQMFDPN )551ͷηϚϯςΟΫε͸มߋ͠ͳ͍

Slide 36

Slide 36 text

w )551ͷηϚϯςΟΫε͸มߋ͠ͳ͍ w ओཁͳػೳ w ଟॏԽ w ϔομѹॖ w ༏ઌ౓੍ޚ w αʔόʔϓογϡ )551ͷػೳ

Slide 37

Slide 37 text

ϔομѹॖ w ϔομϑϨʔϜ͸)1"$,Ͱѹॖ w )V⒎NBOූ߸Խ w සग़ϔομ͸ڞ༗ w ૹ৴ࡁΈσʔλ࠶ར༻ w ৄ͘͠஌Γ͍ͨํ͸3'$ HEADERS ϑϨʔϜ SFRVFTUϝοηʔδ

Slide 38

Slide 38 text

w )551ͷηϚϯςΟΫε͸มߋ͠ͳ͍ w ओཁͳػೳ w ଟॏԽ w ϔομѹॖ w ༏ઌ౓੍ޚ w αʔόʔϓογϡ )551ͷػೳ

Slide 39

Slide 39 text

༏ઌ౓੍ޚ w ଟॏԽ͞ΕͨSFTQPOTFΛ༏ઌ౓ʹԠͯ͡ฦ͢ w ʮॏΈ෇͚ʯͱʮґଘؔ܎ʯͰࢦఆ w DG)5.-͸࠷༏ઌɺ͕࣍$44ͱ+4ɺը૾͸༏ઌ౓௿ w ϒϥ΢β౳ͷ$MJFOU͕ࢦఆ w ҰൠϢʔβʔ͕΍ΕΔ͜ͱ͸͋·Γແ͍ɻɻɻ

Slide 40

Slide 40 text

w )551ͷηϚϯςΟΫε͸มߋ͠ͳ͍ w ओཁͳػೳ w ଟॏԽ w ϔομѹॖ w ༏ઌ౓੍ޚ w αʔόʔϓογϡ )551ͷػೳ

Slide 41

Slide 41 text

αʔόʔϓογϡ w ͭͷSFRVFTUʹରͯ͠ɺෳ਺SFTQPOTFΛฦͤΔʂ w ͭ໨Ҏ߱͸αʔόʔ͔Βૹ৴͢Δαʔόʔϓογϡ w $44΍+4ͳͲɺͲ͏ͤඞཁʹͳΔ΋ͷͳΒૹͬͯ͠·͏ ετϦʔϜ ϓογϡετϦʔϜ $MJFOU 4FSWFS ίϯςϯπΛϓογϡʂ

Slide 42

Slide 42 text

w ओཁͳػೳ w ଟॏԽ w ϔομѹॖ w ༏ઌ౓੍ޚ w αʔόʔϓογϡ )551ͷػೳ·ͱΊ )551ͷ໰୊఺Λղܾ͢ΔͨΊͷػೳ 8FCΛޮ཰Խɾߴ଎Խ͢ΔͨΊͷػೳ

Slide 43

Slide 43 text

w )551ͱ͸ʁ w )551஀ੜͷഎܠ w )551ͷػೳ w <ϋϯζΦϯ>)551ରԠαʔόʔ)0Λಈ͔ͯ͠ΈΔ w ·ͱΊ ࠓ೔଎श͢Δ಺༰

Slide 44

Slide 44 text

ηοτΞοϓ $ git clone https://github.com/south37/http2-sokusyukai $ cd http2-sokusyukai $ docker run -p "8080:80" -ti south37/h2o-http2-demo-server

Slide 45

Slide 45 text

λεΫ w IPDPOGٴͼ഑৴͢ΔϑΝΠϧΛม͑ͯɺڍಈΛݟΔ w )FMMP8PSME w )5514ʢ)551ʣ w .VMUJQMFYJOHʢଟॏԽʣ w 4FSWFS1VTI w "OENPSF

Slide 46

Slide 46 text

w )551ͱ͸ʁ w )551஀ੜͷഎܠ w )551ͷػೳ w <ϋϯζΦϯ>)551ରԠαʔόʔ)0Λಈ͔ͯ͠ΈΔ w ·ͱΊ ࠓ೔଎श͢Δ಺༰

Slide 47

Slide 47 text

w ޮ཰Խɾߴ଎ԽΛ໨ࢦͯ͠ɺ)551͕ࡦఆ͞Εͨ w )551ͷηϚϯςΟΫε͸ม͑ͳ͍ w ଟॏԽ΍ϔομѹॖ౳ɺ)551ͷ໰୊఺Λղܾ ·ͱΊ w )551ରԠ8FCαʔόʔΛಋೖ͢Ε͹ɺ͙͢ಈ͘ w )0ͳͲɺ)551ͷQFSGPSNBODF΋ྑ͍࣮૷ )551Ͱޮ཰తɾߴ଎ͳ8FCΛ࣮ݱ͠Α͏ʂ