query_stringのはなし / how to use query string

De5126556e3d1afdb0f920497e2f99cb?s=47 ryo kato
October 18, 2018
690

query_stringのはなし / how to use query string

De5126556e3d1afdb0f920497e2f99cb?s=128

ryo kato

October 18, 2018
Tweet

Transcript

  1. query_stringͷ͸ͳ͠ ୈճ&MBTUJDTFBSDIษڧձɹݕࡧฤ

  2. About me Ճ౻ྒྷ 3ZP,BUP  ೔ຊܦࡁ৽ฉࣾ "1*ɾݕࡧ %KBOHP &MBTUJDTFBSDI 

  3. agenda

  4. w ೔ܦిࢠ൛Ͱͷ&MBTUJDTFBSDIݕࡧʹ͍ͭͯ w RVFSZTUSJOHʹ͍ͭͯ෮श w ฐࣾͰRVFSZTUSJOHΛ࢖͏্Ͱࠔͬͨ఺

  5. ೔ܦిࢠ൛ʹ͍ͭͯ

  6. ೔ܦిࢠ൛Ͱͷ&MBTUJDTFBSDIͷར༻ ɾݕࡧ هࣄݕࡧ اۀݕࡧ ۀछݕࡧ τϐοΫɾ࿈ࡌ໊ͷݕࡧ ɹΧςΰϦ΍ηΫγϣϯͰͷهࣄҰཡऔಘ ɾϩά෼ੳ ೔ܦిࢠ൛ͷΞϓϦ։ൃΛࢧ͑Δϩά׆༻ज़ ɹɹIUUQTTQFBLFSEFDLDPNCVOHPVNFOJLLFJMPH

  7. ݕࡧ"1*पΓͷγεςϜ DMJFOU "1*(8 TFBSDI"1* TFBSDIBENJO 3FEJT &MBTUJDTFBSDI EKBOHP ΞϓϦέʔγϣϯ ࣙॻ؅ཧ

  8. ෳࡶͳΫΤϦʹରԠ͢Δ ྫ͑͹ ɹɹDPNQBOZ͕ʮ೔ຊܦࡁ৽ฉࣾʯͷهࣄͱ ɹɹUJUMFʹʮ"*ʯΛؚΈDBUFHPSZ͕ʮܦࡁʯͰͳ͍هࣄͱɹ ɹɹUZQF͕ʮே༦ץʯͷهࣄ ͷΑ͏ͳ৚݅ͰݕࡧͰ͖Δඞཁ͕͋Δɻ ݕࡧཁ݅̍

  9. "*03ࢲͷཤྺॻ03 "*ਓ޻஌ೳ/05DBUFHPSZܦࡁ 03 ग़൛03 ຊ԰/05 ൜ࡑ03ສҾ͖ 03 DPNQBOZ೔ຊܦࡁܦࡁ03 DPNQBOZ೔ܦ#1 /05DBUFHPSZܦࡁ

     ˞ΠϝʔδͰ͢ɻ ྫ
  10. ݕࡧ݁Ռ͸࠶ݱ཰Λ༏ઌͯ͠ είΞϦϯάͰ͸ͳ͘ɺهࣄͷ഑৴࣌ࠁͰιʔτ ࠷৽ͷهࣄΛ༏ઌͯ͠ग़͢ඞཁ͕͋Δɻ ݕࡧཁ݅̎

  11. ࣗલͷRVFSZQBSTFS RVFSZTUSJOHRVFSZΛ࠾༻ Ҏ্ͷཁ݅Λ౿·͑ɺ࣮૷ͷ଎͞Λ༏ઌͯ͠

  12. query string queryʹ͍ͭͯ෮श

  13. w NBUDIBMMRVFSZ w DPNQPVOERVFSJFT CPPMRVFSZ GVODUJPO@TDPSF w UFSNMFWFMTRVFSZ w GVMMUFYURVFSJFT

    &MBTUJDTFBSDIͷRVFSZ
  14. w NBUDI w NBUDIQISBTFNBUDIQISBTFQSFpY w NVMUJ@NBUDI w DPNNPO w RVFSZ@TUSJOH

    w TJNQMFRVFSZTUSJOH GVMMUFYURVFSJFT
  15. NBUDIRVFSZ యܕతͳશจݕࡧ༻్Ͱ࢖͏

  16. RVFSZTUSJOHRVFSZ ݕࡧ৚݅ʹMVDFOFγϯλοΫεͷݕࡧࣜΛ௚઀هࡌͰ͖Δ

  17. RVFSZTUSJOHRVFSZ w ΤΩεύʔτϢʔβʔ޲͚ w -VDFOFγϯλοΫεͷݕࡧࣜΛ௚઀هࡌͰ͖Δ w ݕࡧΫΤϦ͕؆ܿʹ͔͚Δ

  18. w 'JFMEOBNF w XJMEDBSET w SFHVMBSFYQSFTTJPO w SBOHF w CPPMFBO

    w HSPVQJOH -VDFOFγϯλοΫε
  19. -VDFOFγϯλοΫεpFMEOBNF ࢦఆͨ͠pFMEҎ֎ͷpMFEΛݕࡧର৅ʹͰ͖Δ ˠUJUMF"*03CPEZ"*03DPNQBOZ೔ຊܦࡁ৽ฉࣾ

  20. RVFSZTUSJOHRVFSZͷpFMEࢦఆ ɾEFGBVMU@pFMEύϥϝʔλ ࢦఆͨ͠ϑΟʔϧυΛݕࡧର৅ʹ͢Δɻ ࢦఆ͕ͳ͍৔߹͸͢΂ͯͷpFMEΛର৅ʹ͢Δɻ ɾpFMETύϥϝʔλ ෳ਺ϑΟʔϧυΛࢦఆͰ͖ΔɻɹFYpFMET<UJUMF lCPEZ> XJMEDBSE΋࢖͑ΔɻɹFYpFMET<lDJUZ z>

  21. RVFSZTUSJOH NBUDI lUZQFzl5FSN2VFSZz lEFTDSJQUJPOzlCPEZ"*z -VDFOFΠϯσοΫεʹର࣮ͯ͠ߦ͞ΕΔΫΤϦ lUZQFzl5FSN2VFSZz lEFTDSJQUJPOzlCPEZ"*z 1SPpMF 1SPpMF

  22. RVFSZTUSJOH NVMUJ@NBUDI UZQF%JTKVODUJPO.BY2VFSZ  EFTDSJQUJPO CPEZ"*cUJUMF"*  -VDFOFΠϯσοΫεʹର࣮ͯ͠ߦ͞ΕΔΫΤϦ 1SPpMF 1SPpMF

    UZQF%JTKVODUJPO.BY2VFSZ  EFTDSJQUJPO CPEZ"*cUJUMF"* 
  23. RVFSZTUSJOHUZQFCFTU@pFMET RVFSZTUSJOHUZQFNPTU@pFMET UZQF%JTKVODUJPO.BY2VFSZ  EFTDSJQUJPO CPEZ"*cUJUMF"*  UZQF#PPMFBO2VFSZ  EFTDSJQUJPOCPEZ"*UJUMF"*

    -VDFOFΠϯσοΫεʹର࣮ͯ͠ߦ͞ΕΔΫΤϦ 1SPpMF 1SPpMF
  24. MVDFOFγϯλοΫεCPPMFBO "/% 03 /05   c͕࢖͑Δ

  25. ಉ༷ͷ৚݅ΛCPPMΛ࢖͏ͱ ɾݕࡧର৅ͷϑΟʔϧυ͕ݻఆͰͳ͍৔߹ ಈతʹ௥Ճ͢Δඞཁ͕͋Δ ɾ৚͕݅ෳࡶʹͳΔͱ֊૚͕ਂ͘ͳΔ ɾΫΤϦʹΑͬͯNBUDI@QISBTFͱ͔ ɹNVMUJ@NBUDI ɾύʔαʔΛॻ͍ͨΓ͢Δ͜ͱͰରԠ͕ ɹඞཁɹ㱺ɹෳࡶͰͭΒ͔ͬͨ

  26. RVFSZTUSJOHύϥϝʔλ w EFGBVMUpFME w EFGBVMU@PQFSBUPS w GV[[JOFTT w BOBMZ[FS w

    IUUQTXXXFMBTUJDDPHVJEFFOFMBTUJDTFBSDISFGFSFODFDVSSFOU RVFSZETMRVFSZTUSJOHRVFSZIUNM WFSTJPOʹΑͬͯ૿͑ͨΓݮͬͨΓ͠·͢
  27. w ΫΤϦͷهड़ָ͕ w ։ൃ଎౓͕͸΍͍ RVFSZTUSJOHͷར఺

  28. w ύϥϝʔλʹΑͬͯੜ੒͞ΕΔΫΤϦ͕େ͖͘มΘΔͷͰEFTDSJQUJPOΛ֬ೝ ͢Δ w pFME͸ࢦఆ͢Δ w ෳࡶͳΫΤϦΛ࡞Γ์୊ w WFSTJPOʹΑͬͯ࢓༷͕มΘΔ RVFSZTUSJOHͷؾΛ͚ͭΔϙΠϯτ

  29. ୅ସҊͱͯ͠

  30. TJNQMFRVFSZTUSJOH RVFSZTUSJOHͷγϯϓϧͳߏจΫΤϦFY  c lz ΫΤϦͷهड़ϛε͕͋ͬͯ΋Τϥʔ͕ൃੜ͠ͳ͍

  31. TJNQMFRVFSZTUSJOH UZQF#PPMFBO2VFSZ  EFTDSJQUJPOUJUMF"*UJUMF"/%UJUMFDPNQBOZ೔ຊܦࡁ৽ฉࣾ -VDFOFγϯλοΫε͸࢖͑ͣΩʔϫʔυʹͳΔͨΊ஫ҙ

  32. ฐࣾͰͷࠔͬͨ఺ɾղܾࡦ

  33. ̍ɽʮ""/%#03$ʯ

  34. ໰୊ w FMBTUJDTFBSDI -VDFOF ͷύʔεϧʔϧͰ͸03͕༏ઌ͞ΕΔ UZQF#PPMFBO2VFSZ  EFTDSJQUJPO l CPEZB

    CPEZCCPEZD
  35. #PPMFBOPQFSBUPS͸-VDFOFಠࣗͷॲཧ͕ߦΘΕΔͨΊ ҰൠతͳCPPMFBOPQFSBUJPOͱ͸ҟͳΔɻ 03"/%/05Ͱ༏ઌ͞ΕΔɻ ΫΤϦ""/%#03$ Ϣʔβʔͷҙਤɿ ""/%# 03$ ࣮ࡍɹɹɹɹɹɿ""/% #03$ 

    IUUQTMVDJEXPSLTDPNXIZOPUBOEPSBOEOPU ݪҼ
  36. ղܾࡦ w ʮ ""/%# 03$ʯʹͳΔΑ͏ʹΫΤϦΛύʔε w ݕࡧ݁ՌΛΩʔϫʔυͷ׬શҰகΛ༏ઌͯ͠هࣄͷ഑৴࣌ࠁͰιʔτ͢Δඞ ཁ͕͋ΔͨΊɺύʔαʔͰରԠ͢Δ͔͠ͳ͔ͬͨɻ w IUUQTRJJUBDPNPTBNVONVOJUFNTBFEBECDG

  37. ஫ҙ w ʮ"/% 03ʯΑΓʮ ʯͷ΄͏͕ਪ঑͞Ε͍ͯΔͷͰۃྗʮ ʯΛ࢖͍· ͠ΐ͏ɻ w IUUQTXXXFMBTUJDDPHVJEFFOFMBTUJDTFBSDISFGFSFODFDVSSFOU RVFSZETMRVFSZTUSJOHRVFSZIUNM@CPPMFBO@PQFSBUPST

  38. UZQF#PPMFBO2VFSZ  EFTDSJQUJPO l CPEZB CPEZC CPEZD

  39. ̎ɽBVUP@HFOFSBUF@QISBTF@RVFSJFTΦϓγϣϯ͕EFQSFDBUFE

  40. ໰୊ w FT̑ͰBVUP@HFOFSBUF@QIBSBTF@RVFSJFTύϥϝʔλΛ࢖͍͕ͬͯͨFTͰ EVQMJDBUF͞Εͨɻ w ୅ΘΓʹೖྗจࣈྻʹzzΛ͚ͭͳ͚Ε͹͍͚ͳ͍Β͍͠ w &Yʮ"*"/%ਓ޻஌ೳʯ㱺ʮz"*z"/%lਓ޻஌ೳzʯ w ͨͩ͠ɺ-VDFOFγϯλοΫεͱ͔ߟྀ͢Δඞཁ͕͋ͬͯ໘౗ͩͳͱ͍͏ײ͡

    ͩͬͨɻ
  41. w υΩϡϝϯτʹ͸ ͨͿΜ ॻ͍ͯͳ͍͚Ͳɺύϥϝλͱ͔ͪΐͬͱ޻෉ͨ͠Β ͍͚ΔͬΆ͍ ղܾࡦ

  42. FT EFTDSJQUJPO TQBO0S <TQBO/FBS <CPEZ౦ژ CPEZλϫʔ>  USVF CPEZ౦ژλϫʔ> 

    CPEZ౦ژ౎
  43. UZQFQISBTFΦϓγϣϯ໌ࣔతʹPQFSBUPS௥Ճ FT

  44. RVFSZl౦ژλϫʔ౦ژ౎z EFTDSJQUJPO TQBO/FBS <TQBO0S <TQBO/FBS <CPEZ౦ژ CPEZλϫʔ>  USVF 

    CPEZ౦ژλϫʔ> CPEZ౦ژ CPEZ౎>  USVF  㱺l౦ژλϫʔ౦ژ౎zͷϑϨʔζݕࡧ RVFSZl౦ژλϫʔ"/%౦ژ౎z EFTDSJQUJPO +spanOr([spanNear([body:౦ژ, body:λϫʔ], 0, true), body:౦ژλϫʔ]) +body:"౦ژ ౎” 㱺 “౦ژλϫʔ” ͱ”౦ژ౎”ͷϑϨʔζݕࡧ
  45. w εϖʔε͚ͩͰ͸ɺεϖʔεؚΜͩϑϨʔζݕࡧʹͳΔ w ෳ਺ΩʔϫʔυΛͦΕͧΕϑϨʔζݕࡧ͍ͨ͠৔߹͸PQFSBUPS͕ඞཁ w ฐࣾͰ͸ɺEFGBVMU@PQFSBUPS͕"/%ͷͨΊɺεϖʔε͕࢖ΘΕ͍ͯΔͱ ͜Ζʹ Λ௥Ճ͍ͯ͠Δɻ w FYʮ౦ژλϫʔɹ౦ژ౎ʯˠʮ౦ژλϫʔɹ

    ౦ژ౎ʯ
  46. ·ͱΊ

  47. ϝϦοτ ɾগ͠ෳࡶͳ৚݅ͷΫΤϦͰ΋؆ܿʹهड़Ͱ͖Δ ɾ։ൃ଎౓͸ૣ͍ͷͰ։ൃॳظͰ࢖͏ͷ͸ಛʹ͓͢͢Ί σϝϦοτ ɾύϥϝʔλͷ࢖͍ํ΍ੜ੒͞ΕΔΫΤϦͳͲ ɹͳΜͱͳ͘Ͱ࢖͏ͱҙਤ͠ͳ͍ݕࡧ݁ՌʹͳΔ ɾ࢓༷͕݁ߏมΘΔ ɾύʔαʔͱ͔ͰؤுΔඞཁ͕ग़ͯ͘Δ

  48. RVFSZ@TUSJOHRVFSZ͸ ༻๏༻ྔकͬͯਖ਼͘͠࢖͍·͠ΐ͏