1 λΆ„ μ†Œμš”

πŸ“˜ μš”μ²­ 방식에 λŒ€ν•΄μ„œβ€¦

데이터λ₯Ό 주고받을 λ•ŒλŠ” μš”μ²­(Request)κ³Ό 응닡(Response)이 μžˆλ‹€.
λΈŒλΌμš°μ €μ—μ„œ μ„œλ²„μ— μš”μ²­μ„ ν•˜λ©΄, μ„œλ²„λ‘œλΆ€ν„° 그에 λ§žλŠ” 응닡을 λΈŒλΌμš°μ €μ— λ‹€μ‹œ μ „μ†‘ν•œλ‹€.


1. GET

μ„œλ²„μ— 쑰회λ₯Ό ν•˜κΈ° μœ„ν•œ λ°©μ‹μœΌλ‘œ, url에 데이터가 ν¬ν•¨λ˜μ–΄ 있음
즉, μ„œλ²„μ— 정보λ₯Ό μš”μ²­ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” λ©”μ†Œλ“œμž„

  • QueryString을 μ‚¬μš©ν•¨
    • QueryStringμ΄λž€ μš”μ²­ν•  데이터λ₯Ό url μ£Όμ†Œ 끝에 νŒŒλΌλ―Έν„°λ‘œ ν¬ν•¨μ‹œμΌœ μ „μ†‘ν•˜λŠ” 방식

      ?ν‚€=κ°’&ν‚€=값…
      url 맨 뒀에 ?λ₯Ό λΆ™μ—¬ 이 λ’€λΆ€ν„°λŠ” μš”μ²­ν•˜λŠ” λ°μ΄ν„°λ‘œ 간주함
      μš”μ²­ν•  νŒŒλΌλ―Έν„°κ°€ μ—¬λŸ¬ 개이면 &둜 μ—°κ²°ν•  수 있음

GET의 νŠΉμ§•

  • GET방식을 ν†΅ν•œ μš”μ²­μ€ 였직 데이터λ₯Ό 읽을 λ•Œλ§Œ μ‚¬μš©ν•˜κ³ , μˆ˜μ •ν•  λ•Œμ—λŠ” μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • 데이터 μˆ˜μ •μ„ ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ, 데이터 λ³€ν˜•μ˜ μœ„ν—˜μ΄ μ—†μ–΄ μ•ˆμ „ν•˜λ‹€.

GET μš”μ²­μ— λŒ€ν•œ 참고사항

  • url에 νŒŒλΌλ―Έν„°μ˜ λ‚΄μš©μ΄ λ…ΈμΆœλ˜κΈ° λ•Œλ¬Έμ— λ―Όκ°ν•œ 데이터λ₯Ό λ‹€λ£° λ•ŒλŠ” μ‚¬μš©ν•˜λ©΄ μ•ˆλœλ‹€. (ex) νšŒμ›μ˜ κ°œμΈμ •λ³΄ 쑰회 μ‹œ 등…)
  • GETμš”μ²­μ€ λΈŒλΌμš°μ € 기둝에 λ‚¨λŠ”λ‹€.
  • GET μš”μ²­μ€ 데이터 길이에 λŒ€ν•œ μ œν•œμ΄ β€œμžˆλ‹€β€.
  • μš”μ²­ 성곡 μ‹œ, 200(OK)μ½”λ“œλ₯Ό xml, json, txtλ“±μ˜ μ—¬λŸ¬ ν˜•μ‹μ˜ 데이터와 ν•¨κ»˜ λ°˜ν™˜ν•œλ‹€.
  • GETμš”μ²­μ€ λΆλ§ˆν¬μ— μΆ”κ°€κ°€ κ°€λŠ₯ν•˜λ‹€.
  • idempotent : 연산을 μ—¬λŸ¬λ²ˆ μˆ˜ν–‰ν•΄λ„ κ²°κ³Όκ°€ κ°™λ‹€.

2. POST

데이터λ₯Ό μž‘μ„±(μˆ˜μ •)ν•˜κΈ° μœ„ν•œ 방식
POST방식은 GET방식보닀 더 μ€λ°€ν•œ λ°©μ‹μœΌλ‘œ μ „μ†‘λœλ‹€ image

POST의 νŠΉμ§•

  • GETκ³Ό λ‹€λ₯΄κ²Œ url이 μ•„λ‹Œ payloadμ•ˆμ— κ°μΆ°μ Έμ„œ 전솑됨

    예) λΈ”λ‘œκ·Έ ν¬μŠ€νŒ…μ„ μƒκ°ν•˜λ©΄ νŽΈν•¨! ν¬μŠ€νŒ…μ΄ μž‘μ„±ν•˜λŠ” κ²ƒμ΄λ‹ˆβ€¦

  • 전솑할 데이터λ₯Ό http의 body에 λ‹΄μ•„μ„œ μ „μ†‘ν•œλ‹€.
  • κ·Έ body의 νƒ€μž…μ€ μš”μ²­ ν—€λ”μ˜ content-type에 μ˜ν•΄ κ²°μ •λœλ‹€.
  • http의 bodyλŠ” 길이의 μ œν•œμ΄ μ—†μœΌλ―€λ‘œ, POSTμš”μ²­μ€ 길이의 μ œν•œμ΄ μ—†λ‹€.
  • http의 body λ‚΄μš©μ€ λˆˆμ— 보이지 μ•Šμ•„ μ•”ν˜Έν™” ν–ˆμ„ κ²½μš°μ—λŠ” GETμš”μ²­λ³΄λ‹€ λ³΄μ•ˆμ μΈ 츑면에선 더 μ•ˆμ „ν•˜λ‹€.
  • POSTμš”μ²­μ€ λΈŒλΌμš°μ €μ˜ 개발자 도ꡬ, Fiddler와 같은 툴둜 bodyλ‚΄μš©μ„ λ³Ό 수 μžˆμœΌλ―€λ‘œ λ―Όκ°ν•œ λ°μ΄ν„°λŠ” μ•”ν˜Έν™”κ°€ ν•„μš”ν•˜λ‹€.

POST μš”μ²­μ— λŒ€ν•œ 참고사항

  • POSTμš”μ²­μ€ μΊμ‹œλ˜μ§€ μ•ŠλŠ”λ‹€.
  • μš”μ²­μ€ λΈŒλΌμš°μ € 기둝에 남지 μ•ŠλŠ”λ‹€.
  • μš”μ΄μ„ λΆλ§ˆν¬μ— μΆ”κ°€ν•  수 μ—†λ‹€.
  • λ°μ΄ν„°μ˜ 길이에 μ œν•œμ΄ μ—†λ‹€.
  • μš”μ²­ 쀑 μžμ› 생성은 201(Create) 응닡 μ½”λ“œλ₯Ό λ°˜ν™˜ν•œλ‹€
  • Non-idempotent : 연산을 μ—¬λŸ¬ 번 μˆ˜ν–‰ν•˜λ©΄ κ²°κ³Όκ°€ λ‹¬λΌμ§ˆ μˆ˜λ„ μžˆλ‹€.

3. GET/POST 차이점

νŠΉμ§• GET POST
μΊμ‹œ ⭕️ ❌
λΈŒλΌμš°μ € 기둝 ⭕️ ❌
븍마크 μΆ”κ°€ ⭕️ ❌
데이터 길이 μ œν•œ ⭕️ ❌
μ›…λ‹΅μ½”λ“œ 200 201
μš”μ²­ 상황 λ¦¬μ†ŒμŠ€ μš”μ²­ λ¦¬μ†ŒμŠ€ 생성
λ¦¬μ†ŒμŠ€ 전달 방식 쿼리슀트링 http body
idempotent ⭕️ ❌

νƒœκ·Έ:

μΉ΄ν…Œκ³ λ¦¬:

μ—…λ°μ΄νŠΈ:

λŒ“κΈ€λ‚¨κΈ°κΈ°