[μ»΄ν“¨ν„°λ„€νŠΈμ›Œν¬] GET λ©”μ„œλ“œμ™€ POST λ©”μ„œλ“œ

πŸ§ͺ Computer Science/Computer Network


GET λ©”μ„œλ“œμ™€ POST λ©”μ„œλ“œ λ‘˜ λ‹€ HTTP ν”„λ‘œν† μ½œμ„ μ΄μš©ν•΄ μ„œλ²„μ— 데이터(μš”μ²­ 정보)λ₯Ό 전달할 λ•Œ μ‚¬μš©ν•˜λŠ” 방식이닀.

GET λ©”μ„œλ“œ 방식

  • κ°œλ…

    • 정보λ₯Ό μ‘°νšŒν•˜κΈ° μœ„ν•œ λ©”μ„œλ“œ
    • μ„œλ²„μ—μ„œ μ–΄λ–€ 데이터λ₯Ό κ°€μ Έμ™€μ„œ 보여주기 μœ„ν•œ μš©λ„μ˜ λ©”μ„œλ“œ
    • κ°€μ Έμ˜€λŠ” 것(Select)
  • μ‚¬μš© 방법

    • URL의 끝에 '?'κ°€ λΆ™κ³ , μš”μ²­ 정보가 key=value ν˜•νƒœμ˜ μŒμ„ 이루어 '?' 뒀에 μ΄μ–΄μ„œ λΆ™μ–΄ μ„œλ²„λ‘œ μ „μ†‘ν•œλ‹€.
    • μš”μ²­ 정보가 μ—¬λŸ¬ 개일 κ²½μš°μ—λŠ” '&'둜 κ΅¬λΆ„ν•œλ‹€.
    • Ex) www.example.com?name1=value1&name2=value2
  • νŠΉμ§•

    • URL에 μš”μ²­ 정보λ₯Ό λΆ™μ—¬μ„œ μ „μ†‘ν•œλ‹€.
    • URL에 μš”μ²­ 정보가 이어뢙기 λ•Œλ¬Έμ— 갈이 μ œν•œμ΄ μžˆμ–΄ λŒ€μš©λŸ‰μ˜ 데이터λ₯Ό μ „μ†‘ν•˜κΈ° μ–΄λ ΅λ‹€.
      • ν•œ 번 μš”μ²­ μ‹œ 전솑 데이터(μ£Όμ†Ÿκ°’+νŒŒλΌλ―Έν„°)의 양은 255자둜 μ œν•œλœλ‹€.
    • μš”μ²­ 정보λ₯Ό μ‚¬μš©μžκ°€ μ‰½κ²Œ 눈으둜 확인할 수 μžˆλ‹€.
      • POST 방식보닀 λ³΄μ•ˆμƒ μ·¨μ•½ν•˜λ‹€.
    • HTTP νŒ¨ν‚·μ˜ bodyλŠ” λΉ„μ–΄μžˆλŠ” μƒνƒœλ‘œ μ „μ†‘ν•œλ‹€.
      • 즉, body의 데이터 νƒ€μž…μ„ ν‘œν˜„ν•˜λŠ” 'Content-Type' ν•„λ“œλ„ HTTP Request Header에 듀어가지 μ•ŠλŠ”λ‹€.
    • POST 방식보닀 λΉ λ₯΄λ‹€.
      • GET 방식은 캐싱을 μ‚¬μš©ν•  수 μžˆμ–΄ GET μš”μ²­κ³Ό 그에 λŒ€ν•œ 응닡이 λΈŒλΌμš°μ €μ— μ˜ν•΄ μΊμ‰¬λœλ‹€.

POST λ©”μ„œλ“œ 방식

  • κ°œλ…
    • μ„œλ²„μ˜ κ°’μ΄λ‚˜ μƒνƒœλ₯Ό λ°”κΎΈκΈ° μœ„ν•œ μš©λ„μ˜ λ©”μ„œλ“œ
    • μˆ˜ν–‰ν•˜λŠ” 것(Insert, Update, Delete)
  • μ‚¬μš© 방법
    • μš”μ²­ 정보λ₯Ό HTTP νŒ¨ν‚·μ˜ body μ•ˆμ— μˆ¨κ²¨μ„œ μ„œλ²„λ‘œ μ „μ†‘ν•œλ‹€.
    • Request Header의 'Content-Type'에 ν•΄λ‹Ή 데이터 νƒ€μž…μ΄ ν‘œν˜„λ˜λ©°, μ „μ†‘ν•˜κ³ μž ν•˜λŠ” 데이터 νƒ€μž…μ„ 적어주어야 ν•œλ‹€.
      • Default: application/octet-stream
      • λ‹¨μˆœ txt의 경우: text/plain
      • 파일의 경우: multipart/form-date
  • νŠΉμ§•
    • body μ•ˆμ— μˆ¨κ²¨μ„œ μš”μ²­ 정보λ₯Ό μ „μ†‘ν•˜κΈ° λ•Œλ¬Έμ— λŒ€μš©λŸ‰μ˜ 데이터λ₯Ό μ „μ†‘ν•˜κΈ°μ— μ ν•©ν•˜λ‹€.
    • ν΄λΌμ΄μ–ΈνŠΈ μͺ½μ—μ„œ 데이터λ₯Ό μΈμ½”λ”©ν•˜μ—¬ μ„œλ²„λ‘œ μ „μ†‘ν•˜κ³ , 이λ₯Ό 받은 μ„œλ²„ μͺ½μ΄ ν•΄λ‹Ή 데이터λ₯Ό λ””μ½”λ”©ν•œλ‹€.
    • GET 방식보닀 λ³΄μ•ˆμƒ μ•ˆμ „ν•˜λ‹€.