Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web技術の基本 4回目 / Introduction to Web technologies 4th class

muttan
January 18, 2018

Web技術の基本 4回目 / Introduction to Web technologies 4th class

muttan

January 18, 2018
Tweet

More Decks by muttan

Other Decks in Technology

Transcript

  1. HTTP/1.1ͷ΍ΓͱΓʢ෮शʣ • HTTP/1.1͸1997೥ॳ಄ʹެ։͞Εͨ • ࠓ·Ͱʹ2౓վఆ͞Ε͍ͯΔ ‣ 1999೥1݄ʹൃߦ͞ΕͨRFC2616 ‣ 2014೥6݄ʹൃߦ͞ΕͨRFC7230 •

    HTTP/1.1ͷओͳಛ௃͸࣍ͷ௨Γ ‣ HTTPΩʔϓΞϥΠϒ ‣ HTTPύΠϓϥΠϯ ໰ɿ2ͭͷػೳͱ͸ԿͩͬͨͰ͠ΐ͏͔
  2. HTTP/1.1ͷ΍ΓͱΓʢ෮शʣ • HTTPΩʔϓΞϥΠϒ
 ͦͷͨΊ, HTTP/1.1Ҏ߱Ͱ͸ίωΫγϣϯΛܧଓͯ͠ར༻͢Δ͜ͱ͕Մ ೳʹͳͬͨ. ίωΫγϣϯཱ֬ ϦΫΤετ Ϩεϙϯε ίωΫγϣϯ੾அ

    ίωΫγϣϯཱ֬ ϦΫΤετ Ϩεϙϯε ίωΫγϣϯ੾அ ίωΫγϣϯཱ֬ ϦΫΤετ Ϩεϙϯε ϦΫΤετ Ϩεϙϯε ίωΫγϣϯ੾அ ඇHTTPΩʔϓΞϥΠϒ HTTPΩʔϓΞϥΠϒ
  3. HTTP/1.1ͷ΍ΓͱΓʢ෮शʣ • HTTPύΠϓϥΠϯ ίωΫγϣϯཱ֬ ϦΫΤετ Ϩεϙϯε ϦΫΤετ Ϩεϙϯε ίωΫγϣϯ੾அ ίωΫγϣϯཱ֬

    ίωΫγϣϯ੾அ ϦΫΤετ Ϩεϙϯε ϦΫΤετ Ϩεϙϯε ϨεϙϯεΛ଴ͨͣʹ
 ϦΫΤετΛૹ৴͢Δ HTTP/1.0Ҏલ HTTP/1.1Ҏ߱ ࣌ؒ୹ॖ
  4. HTTP/2ͷ΍ΓͱΓʢετϦʔϜʹΑΔଟॏԽʣ • ετϦʔϜʹΑΔଟॏԽ ‣ HTTP/1.0Ҏલ
 HTTPϦΫΤετ͸, HTTPϨεϙϯεΛ଴ͬͨޙʹૹ৴ ՄೳͱͳΔ ‣ HTTP/1.1


    ύΠϓϥΠϯʹΑΓ, ಉ࣌ʹෳ਺ͷϦΫΤετΛૹ৴͢ Δ͜ͱ͕Մೳʹͳͬͨ → ʮHTTPϦΫΤετͷॱ൪ͰϨεϙϯεΛฦ͢ʯͱ͍ ͏੍໿͕͍͍ͭͯͨ
  5. HTTP/2ͷ΍ΓͱΓʢετϦʔϜʹΑΔଟॏԽʣ ϦΫΤετᶃ Ϩεϙϯεᶃ Ϩεϙϯεᶄ HTTPύΠϓϥΠϯ ετϦʔϜʹΑΔଟॏԽ ࣌ؒ୹ॖ ϦΫΤετᶄ ϦΫΤετᶅ ॲཧ଴ͪ

    Ϩεϙϯεᶅ ϦΫΤετᶃ ϦΫΤετᶄ ϦΫΤετᶅ Ϩεϙϯεᶃ Ϩεϙϯεᶄ Ϩεϙϯεᶅ ϦΫΤετͷॱ൪Ͱ
 ϨεϙϯεΛฦ͢ඞཁ͋Γ ετϦʔϜ͕ҟͳΕ͹ 
 Ϩεϙϯεͷॱ൪͸
 ੍ݶ͞Εͳ͍ ෮श͓ΘΓ
  6. HTTP/2Ͱͷվྑ఺ʢόΠφϦܗࣜͷར༻ʣ • HTTP/1.1ҎલͰ͸, શͯͷσʔλ͕ςΩετܗࣜͰಉ࣌ ʹૹΒΕ͍ͯͨ ‣ HTTP/2Ͱ͸, όΠφϦϑϨʔϜͱݺ͹ΕΔ୯Ґʹ෼ׂ ͞Εૹ৴͞ΕΔ )PTUFYBNQMFDPN

    $POUFOU5ZQFJNBHFKQFH 6TFS"HFOU.P[JMMB .FTTBHF 1045VQMPBE)551 .FTTBHF NFUIPE1045 TDIFNFIUUQT BVUIPSJUZFYBNQMFDPN QBUIVQMPBE DPOUFOUUZQFJNBHFKQFH VTFSBHFOU.P[JMMB HTTPϦΫΤετʢςΩετσʔλʣ HEADERSϑϨʔϜʢόΠφϦσʔλʣ DATAϑϨʔϜʢόΠφϦσʔλʣ
  7. HTTP/2Ͱͷվྑ఺ʢϔομʔѹॖʣ • HTTP͸εςʔτϨεͳϓϩτίϧͳͷͰ, ඞཁͳ৘ใ͸ ຖ౓ૹΔඞཁ͕͋Δ ‣ Ұ౓ૹͬͨ৘ใΛ࠶ͼૹΔඞཁ͕͋Γ, ৑௕ - ϒϥ΢βͷछྨ,

    WebαʔόͷόʔδϣϯͳͲ • HTTP/1.xͰ͸, ͜ͷσʔλ͕ϓϨʔϯςΩετͰૹ৴͞ Ε͓ͯΓ, సૹ1ճ͋ͨΓ500ʙ800όΠτ΄Ͳ͔͔Δ ‣ ΑΖ͍͠ͳΒ͹ѹॖͩ
  8. HTTP/2Ͱͷվྑ఺ʢϔομʔѹॖʣ • HTTP/2Ͱ͸, ϔομʔ৘ใͷࠩ෼͚ͩΛૹ৴͢Δ HPACKͱ͍͏ѹॖํࣜΛར༻͍ͯ͠Δ NFUIPE(&5 TDIFNFIUUQT BVUIPSJUZFYBNQMFDPN QBUIJOEFYIUNM DPOUFOUUZQFUFYUIUNM

    VTFSBHFOU.P[JMMB NFUIPE(&5 TDIFNFIUUQT BVUIPSJUZFYBNQMFDPN QBUIJNBHFKQH DPOUFOUUZQFJNBHFKQFH VTFSBHFOU.P[JMMB 1ճ໨ͷHTTPϦΫΤετ 2ճ໨ͷHTTPϦΫΤετ ͜ͷ෦෼ͷΈૹ৴
  9. HTTP/2Ͱͷվྑ఺ʢϔομʔѹॖʣ • ಈతςʔϒϧ(Dynamic Table)
 લճૹ৴ͨ͠ϔομʔ໊ͱ஋ͷϖΞΛΠϯσοΫεԽͨ͠ Ϧετ • ੩తςʔϒϧ(Static Table)
 ૹ৴͞ΕΔස౓ͷߴ͍ϔομʔ໊ͱ஋ͷϖΞ.

    ΫϥΠΞϯτ ͱαʔόͷ྆ํͰอ࣋͞Ε͓ͯΓ, ૹ৴͢Δϔομʹςʔϒ ϧͷ಺༰ؚ͕·Ε͍ͯΔ৔߹͸, ΠϯσοΫεΛૹ৴͢Δ • ͔ͭͯ͸Reference setͱݴ͏΋ͷ͕͋Γ·ͯ͠…
  10. HTTP/2Ͱͷվྑ఺ʢϔομʔѹॖʣ NFUIPE(&5 TDIFNFIUUQT BVUIPSJUZFYBNQMFDPN QBUI DPOUFOUUZQFUFYUIUNM VTFSBHFOU.P[JMMB 1ճ໨ͷHTTPϦΫΤετ Reference set

    JE ϔομʔ໊ ஋  NFUIPE (&5  TDIFNF )5514  QBUI   BVUIPSJUZ Static table ᶃࠩ෼֬ೝ ᶄݕࡧ   FYBNQMFDPN  DPOUFOUUZQFUFYUIUNM VTFSBHFOU.P[JMMB ᶅΤϯίʔυ
  11. HTTP/2Ͱͷվྑ఺ʢϔομʔѹॖʣ NFUIPE(&5 TDIFNFIUUQT BVUIPSJUZFYBNQMFDPN QBUIIPHFIUNM DPOUFOUUZQFUFYUIUNM VTFSBHFOU.P[JMMB 1ճ໨ͷHTTPϦΫΤετ Reference set

    JE ϔομʔ໊ ஋  NFUIPE (&5  TDIFNF )5514  QBUI   BVUIPSJUZ Static table ᶃࠩ෼֬ೝ ᶄݕࡧ IPHFIUNM ᶅΤϯίʔυ : method GET : scheme https : authority example.com : path / content-type text/html user-agent Mozilla/5.0 ݱࡏ͸Reference set͸࢓༷͔Β࡟আ͞Ε͍ͯΔ →ڞ༗͕େม, ॲཧ͕൥ࡶ
  12. HTTP/2Ͱͷվྑ఺ʢαʔόʔϓογϡʣ HTTPϦΫΤετ JOEFYIUNMΛ͍ͩ͘͞ αʔόʔϓογϡᶃ αʔόʔϓογϡᶄ HTTPϨεϙϯε KQH DTT IUNM JOEFYIUNMΛදࣔ͢ΔͨΊʹ

    ඞཁͳJNBHFKQHΛૹΓ·͢ TUZMFDTT΋ඞཁͳͷͰૹΓ·͢ JOEFYIUNMΛૹΓ·͢ Webαʔό Webϒϥ΢β HTTP/2Ͱͷվྑ఺ ऴྃ ↑ຊདྷͷϨεϙϯε
  13. HTTPSͷ࢓૊Έ • HTTPS(HTTP over SSL/TLS)
 SSL(Secure Sockets Layer)΍TLS(Transport Layer Security)্ͰߦΘΕΔηΩϡΞͳHTTP௨৴ͷ͜ͱ

    • SSL/TLS
 ௨৴࿏҉߸ԽͷͨΊͷϓϩτίϧ. SSLͱTLS͸େ࿮ͱ ͯ͠͸ಉ͡΋ͷͰ͸͋Δ͕, ݫີʹ͸ผ෺(TLS͸SSL ΛҾ͖ܧ͍ͩ࣍ੈ୅ن֨) ࢀߟϦϯΫɿhttps://ssl.sakura.ad.jp/column/ssl_tls/
  14. HTTPSͷ࢓૊Έʢվ͟Μ๷ࢭʣ • ௨৴࿏্Ͱσʔλ͕վ͟Μ͞Εͯ͠·͏ͷ͸ࠔΔ ‣ ωοτόϯΩϯάͷৼࠐઌΛม͑ΒΕΔͱ͔ • ରࡦͱͯ͠, ϝοηʔδμΠδΣετ͕ར༻͞ΕΔ ‣ ϋογϡ஋Λ࢖ͬͨվ͟Μ๷ࢭ

    ৼࠐɿѼઌ #͞Μ ৼࠐɿѼઌ "͞Μ BCD μΠδΣετ ᶄվ͟Μ͞ΕΔ ৼࠐɿѼઌ #͞Μ BCD DEF ᶅड͚औͬͨσʔλ͔Β ϋογϡ஋Λܭࢉͯ͠ൺֱ ᶃϝοηʔδμΠδΣετΛར༻ͯ͠, ૹ৴͢Δσʔλͷϋογϡ஋ΛٻΊΔ ϝοηʔδμΠδΣετʹΑΔվ͟Μ๷ࢭ
  15. HTTPSͷ΍ΓͱΓ 3. 伴ͷަ׵ • σʔλసૹʹར༻͢Δʮڞ௨伴ʯΛަ׵͢Δ • ͜ͷڞ௨伴Λ༻͍ͯσʔλΛ҉߸Խ, ෮߸͢Δ • ͜ͷ伴͸Ͳ͏ૹ৴͢Δͷ͔ʢ҉߸Խແ͠͸ةݥʣ

    ‣ ެ։伴҉߸ํࣜΛ༻͍ͯ҉߸Խ͠ૹ৴͢Δ • HTTPS͸, ެ։伴҉߸ํࣜͱڞ௨伴҉߸ํࣜΛ྆ํ ࢖ͬͨϋΠϒϦουํࣜ
  16. HTTPSͷ΍ΓͱΓ ʲClient Helloʳ͜Μͳ҉߸Խํ͕ࣜར༻ՄೳͰ͢ ʲServer Helloʳ͜ͷ҉߸ԽํࣜΛར༻͠·͠ΐ͏ ҉߸Խํࣜͷܾఆ ʲServer CertificateʳࢲͷSSLαʔόূ໌ॻͰ͢ ʲServer Hello

    Doneʳ͢΂ͯͷ৘ใΛૹΓ·ͨ͠ ௨৴૬खͷূ໌ ʲClient Key Exchangeʳڞ༗伴ΛૹΓ·͢ 伴ͷަ׵ ʲFinishedʳ४උOKͰ͢ ʲFinishedʳ४උOKͰ͢ ʲChange Cipher Specʳ͜ͷ҉߸ԽํࣜΛ࢖͍·͠ΐ͏ ʲChange Cipher Specʳ͜ͷ҉߸ԽํࣜͰOKͰ͢ ҉߸Խํࣜͷ֬ೝ
  17. εςʔτϑϧͱεςʔτϨε εςʔτϑϧͷྫ ٬: ϋϯόʔΨʔηοτΛ͓ئ͍͠·͢ ళһ: αΠυϝχϡʔ͸Կʹͳ͍͞·͔͢? ٬: ϙςτͰ ళһ: υϦϯΫ͸Կʹͳ͍͞·͔͢?

    ٬: δϯδϟʔΤʔϧͰ ళһ: +50ԁͰυϦϯΫΛLαΠζʹͰ͖·͕͍͔͕͢Ͱ͔͢? ٬: MͰ͍͍Ͱ͢ ళһ: Ҏ্ͰΑΖ͍͠Ͱ͔͢? ٬: ͸͍ ళһ: ͔͜͠·Γ·ͨ͠ Ҿ༻ɿhttp://yohei-y.blogspot.jp/2007/10/blog-post.html
  18. εςʔτϑϧͱεςʔτϨε εςʔτϨεͷྫ ٬: ϋϯόʔΨʔηοτΛ͓ئ͍͠·͢ ళһ: αΠυϝχϡʔ͸Կʹͳ͍͞·͔͢? ٬: ϋϯόʔΨʔηοτΛϙςτͰ͓ئ͍͠·͢ ళһ: υϦϯΫ͸Կʹͳ͍͞·͔͢?

    ٬: ϋϯόʔΨʔηοτΛϙςτͱδϯδϟʔΤʔϧͰ͓ئ͍͠·͢ ళһ: +50ԁͰυϦϯΫΛLαΠζʹͰ͖·͕͍͔͕͢Ͱ͔͢? ٬: ϋϯόʔΨʔηοτΛϙςτͱδϯδϟʔΤʔϧ(M)Ͱ͓ئ͍͠·͢ ళһ: Ҏ্ͰΑΖ͍͠Ͱ͔͢? ٬: ϋϯόʔΨʔηοτΛϙςτͱδϯδϟʔΤʔϧ(M)Ͱ͓ئ͍͠·͢ɻҎ্ ళһ: ͔͜͠·Γ·ͨ͠ Ҿ༻ɿhttp://yohei-y.blogspot.jp/2007/10/blog-post.html
  19. Cookie • Web͕ਐԽ͢Δʹ͚ͭͯ, εςʔτϨεͩͱෆศΛײ͡Δ৔ ໘͕૿͑ͨ ‣ γϣοϐϯάαΠτͷʮ঎඼ΛબͿʯʮങ͍෺͔͝ʹೖ ΕΔʯʮ͔͝ͷத਎Λ֬ೝ͢Δʯʮܾࡁ͢Δʯͱ͍ͬͨ ಈ࡞͸, Webαʔόతʹ͸ҟͳΔϦΫΤετͰ΋,

    Webϒ ϥ΢βଆͰ͸ؔ࿈ͷ͋Δ1࿈ͷૢ࡞ - ങ͍෺͔͝ʹ঎඼ΛೖΕͯ΋, ʮങ͍෺͔͝ʹ͍Εͨʯ ͱ͍͏ಈ࡞͕อ࣋͞Εͳ͍ͨΊ, ͔͝ͷத਎͕ແ͍ঢ়ଶ ʹͳͬͯ͠·͏
  20. Cookie ᶃ࠷ॳͷWebαʔό΁ͷ઀ଓ ᶄCookie΋ಉ࣌ʹૹ৴ ᶅ2ճΊͷWebαʔό΁ͷ઀ଓ ʜ 4FU$PPLJFOBNFWBMVFFYQJSFTEBUFEPNBJO%*."*/@/".& ʜ .FTTBHF 1045VQMPBE)551 HTTPϨεϙϯε

    ॳճͷHTTPϨεϙϯεͷ ϝοηʔδϔομʔʹ CookieΛؚΊͯૹ৴ ʜ $PPLJFOBNFWBMVF ʜ .FTTBHF 1045VQMPBE)551 HTTPϦΫΤετ CookieΛड͚औͬͨ͋ͱ͸, CookieΛHTTPϦΫΤετϔομʔʹ ؚΊͯૹ৴͢Δ
  21. Cookie • Set-Cookieϔομ͸Cookieͷ஋Λઃఆ͢Δ͚ͩͰͳ͘, Cookieͷ༗ޮ ظݶ΍HTTPSͰͷΈ΍ΓऔΓΛߦͳ͏(Secure Cookie)ઃఆΛ͢Δ͜ͱ ͕Ͱ͖Δ. ‣ Secure CookieΛ࢖ͬͨ৔߹Ͱ΋,

    ػີ৘ใ͸ૹड৴ͯ͠͸͍͚ͳ͍ • ༗ޮظݶΛઃఆ͠ͳ͍CookieΛηογϣϯCookieͱ͍͏ʢWebϒϥ ΢βΛফ͢ͱಉ࣌ʹফڈ͞ΕΔʣ ‣ ༗ޮظݶΛઃఆ͢Δͱͦͷظؒ͸࢒ΔͨΊ, γϣοϐϯάαΠτͳ ͲͰ͸҆શੑͷ؍఺͔ΒηογϣϯCookieΛ࢖͍ͬͯΔͱ͜Ζ͕ ଟ͍
  22. Cookie ໊લ ಺༰ OBNFWBMVF $PPLJFʹ෇͚Δ໊લͱͦͷ஋ FYQJSFTEBUF $PPLJFͷ༗ޮظݶ͜ͷଐੑ͕ͳ͍৔߹ ηογϣϯ$PPLJFͱͯ͠ѻ͏ NBYBHFTFDPOET $PPLJFͷੜଘ࣌ؒΛඵ਺Ͱࢦఆ

    TFDVSF )5514Ͱ௨৴ͯ͠Δ৔߹ͷΈ$PPLJFΛૹ৴ IUUQPOMZ +BWB4DSJQU͔Βͷ$PPLJF΁ͷࢀর੍ݶʢ944Λ๷͙ͨΊʣ EPNBJO%0."*/@/".& $PPLJF͕ར༻͞ΕΔυϝΠϯ໊ QBUI1"5) $PPLJF͕ར༻͞ΕΔαʔό্ͷύε Set-CookieϔομϑΟʔϧυʹهड़͢Δଐੑ
  23. ηογϣϯ • ෳ਺ͷΫϥΠΞϯτ͔ΒΞΫηε͞ΕΔWebαʔό͸, ηο γϣϯΛͲͷΑ͏ʹ؅ཧ͢Δͷ͔ʁ ‣ CookieΛ༻͍ͯηογϣϯΛ؅ཧ͢Δ ‣ Cookie͕࢖͑ͳ͍৔߹͸URLʹؚΊΔͱ͖΋͋Δ͕, ηΩϡ

    ϦςΟͷ໘͔Βਪ঑͞Εͳ͍ํ๏Ͱ͋Δ • ηογϣϯ؅ཧʹ͓͍ͯ, Webϒϥ΢βΛࣝผ͢ΔͨΊͷࣝผ ࢠ(id)ΛηογϣϯIDͱݺͿ ‣ ηογϣϯID͸WebαʔόͰੜ੒͞Ε, CookieʹؚΊͯWeb ϒϥ΢βʹૹ৴͞ΕΔ
  24. ηογϣϯ 4*%BBBBBB 4*%CCCCCC webαʔό webϒϥ΢βB webϒϥ΢βA ηογϣϯ*% Ϣʔβʔ ϩάΠϯ ങ͍෺͔͝

    BBBBBB TBUP 536& Ξ΢λʔº γϟπº CCCCCC HVFTU '"-4& γϡʔζº දɿWebαʔό͕อଘ͍ͯ͠Δηογϣϯσʔλ
  25. ηογϣϯ webαʔό webϒϥ΢βA Set-Cookie:SID=aaaaaa Cookie:SID=aaaaaa CookieʹؚΊͯ౉͢ ϦϯΫͷURLʹؚΊΔ webαʔό webϒϥ΢βA http://example.com/cart?SID=aaaaaa

    ͱ͍͏ϦϯΫ෇͖ͷWebϖʔδΛૹ৴ ϦϯΫ͕ΫϦοΫ͞ΕΔͱ, ηογϣϯID෇͖ ͰWebαʔό΁ϦΫΤετ͕ૹ৴͞ΕΔ http://example.com/cart?SID=aaaaaa ηογϣϯIDΛURLͷύϥϝʔλͱͯ͠ૹ৴
  26. URI • URI(Uniform Resource Identifier)
 ৘ใ΍σʔλͱ͍ͬͨϦιʔεΛࣝผ͢Δهड़ํ๏ ‣ ಛʹ, Ϧιʔε͕ଘࡏ͢Δ৔ॴΛࣔ͢΋ͷΛ URL(Uniform

    Resource Locator)ͱ͍͏ • URIͷ͏ͪ, ৔ॴ͸໰ΘͣʹϦιʔεͷ໊લΛࣔ͢΋ͷΛ URN(Uniform Resource Name)ͱ͍͏ URIͷҰൠతͳදݱܗࣜ ʢεΩʔϜ໊ʣɿʢεΩʔϜ͝ͱͷදݱܗࣜʣ
  27. URI εΩʔϜ εΩʔϜ͝ͱͷදݱܗࣜ IUUQ FYBNQMFDPNOFXTJOEFYIUNM
 FYBNQMFDPNʹ͋ΔOFXϑΥϧμ಺ͷJOEFYIUNMϑΝΠϧ GUQ FYBNQMFDPNEPDTOFXTEPD
 FYBNQMFDPNʹ͋ΔEPDTϑΥϧμ಺ͷOFXEPDϑΝΠϧ VSO

    JTCO JTCOίʔυͰࣔ͞ΕΔॻྨ VSO JFUGSGD JFUGʹΑͬͯ؅ཧ͞Ε͍ͯΔ3'$ͷॻྨ URIͷྫ εΩʔϜ໊ɿεΩʔϜ͝ͱͷදݱܗࣜ
  28. URI • ϦΫΤετURI
 HTTPʹ͓͍ͯ΋, ϦιʔεΛಛఆ͢ΔͨΊʹURIΛར༻ ͍ͯ͠Δ. ઈରURIܗࣜͱ૬ରURIܗ͕ࣜ͋Δ ઈରURIͰͷදه ૬ରURIͰͷදه (&5IUUQFYBNQMFDPNOFXTJOEFYIUNM)551

    )PTUFYBNQMFDPN http͔Β࢝·ΔURIͰ, ϗετ໊ٴͼύε໊ͷશ͕ͯϦΫΤετߦʹهड़͞ΕΔ. HTTPϦΫΤετ͕ϓϩΩγαʔόΛܦ༝͢Δ৔߹, ઈରURI͕ར༻͞ΕΔ. (&5OFXTJOEFYIUNM)551 )PTUFYBNQMFDPN /͔Β࢝·ΔURIͰ, ύε໊ͷΈϦΫΤετߦʹهड़͞ΕΔ ௨ৗ͸૬ରURIΛར༻ͯ͠HTTPϦΫΤετ͕ૹ৴͞ΕΔ
  29. URI • ύʔηϯτΤϯίʔσΟϯά
 URLͰར༻Ͱ͖Δจࣈ͸ఆΊΒΕ͓ͯΓ, ʮ༧໿จࣈʯ ͱʮඇ༧໿จࣈʯ͕ଘࡏ͢Δ. ‣ ༧໿จࣈ
 ҎԼͷΑ͏ͳ஋. ۠੾ΓͳͲͰ࢖ΘΕΔ

    reserved = gen-delims / sub-delims gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@" sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" Ҿ༻ɿhttps://tools.ietf.org/html/rfc3986#page-11
  30. URI • ඇ༧໿จࣈ
 ਺ࣈ΍ΞϧϑΝϕοτͳͲࣗ༝ʹURIʹ࢖༻Ͱ͖ΔจࣈͰ, Ξϧ ϑΝϕοτͷେจࣈখจࣈ, ਺ࣈ, ϋΠϑϯ, υοτ, Ξϯμʔε

    ίΞ, νϧμؚ͕·ΕΔ
 • URIͰ͸ඇ༧໿จࣈ͔ࣗ͠༝ʹ࢖͏͜ͱ͕Ͱ͖ͳ͍ ‣ ༧໿จࣈ, ඇ༧໿จࣈҎ֎ͷจࣈΛURIͰར༻͢Δ৔߹, ύʔ ηϯτΤϯίʔσΟϯάͱ͍͏ํ๏Λ༻͍ͯΤϯίʔυ͢ Δඞཁ͕͋Δ unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
  31. URI • ύʔηϯτΤϯίʔσΟϯάͰ͸, ʮ%ʯʹ͍ͭͮͯจ ࣈίʔυΛ16ਐ਺Ͱදͨ͠ܗʹม׵͞ΕΔ จࣈίʔυ ύʔηϯτΤϯίʔσΟϯάޙ 4IJGU+*4 ""7#$ &6$+1

    """"$##" 65' &&&" &&% “͍͍ఱؾ”ΛύʔηϯτΤϯίʔσΟϯά͢Δྫ
  32. ༨ஊ • ͳΜͰHTTP/2.0͡Όͳͯ͘HTTP/2ͳͷʁ
 The Working Group decided to drop the

    minor version (“.0”) because it has caused a lot of confusion in HTTP/1.x. In other words, the HTTP version only indicates wire compatibility, not feature sets or “marketing.” ‣ ϓϩτίϧͷޓ׵ੑ͚ͩΛද͢ͱ͸Ͳ͏͍͏͜ͱͳΜ Ͱ͠ΐ͏͔ʁ ‣ ͋ͱͲΜͳޡղ͕͋ͬͨΜͩΖ͏… Ҿ༻ɿhttps://http2.github.io/faq/#is-it-http20-or-http2
  33. ࢀߟαΠτ౳ • HTTP/2 Frequently Asked Questions
 https://http2.github.io/faq/ • HTTP/2ͷ֓ཁ
 https://developers.google.com/web/fundamentals/

    performance/http2 • HPACK:Header Compression for HTTP/2
 https://tools.ietf.org/html/rfc7541 • HTTP/2 ೖ໳
 https://techblog.yahoo.co.jp/infrastructure/http2/ introduction_to_http2/
  34. ࢀߟαΠτ౳ • SSLͱTLSͷҧ͍ͱ͸
 https://ssl.sakura.ad.jp/column/ssl_tls/ • SSLΛཧղ͢ΔͨΊͷجૅωΰγΤʔγϣϯ[PDF]
 https://www.jp.websecurity.symantec.com/welcome/pdf/ wp_ssl_negotiation.pdf • HTTPSͷৄࡉ


    http://www.atmarkit.co.jp/ait/articles/1704/13/news030.html • Uniform Resource Identifier(URI): Generic Syntax
 https://tools.ietf.org/html/rfc3986