Skip to main content Link Menu Expand (external link) Document Search Copy Copied

HTTP 메서드의 특징

Table of contents

  1. HTTP 메서드 종류
    1. GET
    2. POST
    3. PUT
    4. PATCH
    5. DELETE
  2. HTML FORM 사용

URI는 리소스만 식별하면 되지, 행위를 알 필요는 없다. 행위는 HTTP 메서드를 통해 식별한다.

HTTP 메서드 종류


  • GET: 리소스 조회
  • POST: 요청 데이터 처리 (주로 등록에 사용)
  • PUT: 리소스를 대체, 해당 리소스가 없으면 생성 (덮어쓰는 느낌)
  • PATCH: 리소스 부분 변경
  • DELETE: 리소스 삭제

GET


  • 리소스를 조회한다. 서버에 전달하고 싶은 데이터는 query()를 통해서 전달한다.
  • 데이터를 조회하고 싶을때 GET메세지를 전달하면, 원하는 데이터를 응답받는다.
  • 응답 결과 리소스를 캐시해서 사용할 수 있다.

POST

  • 메세지 바디를 통해 서버로 요청 데이터를 전달한다. 그러면 서버는 요청 데이터를 처리한다. 주로, 신규 리소스 등록, 프로세스 처리 등에 사용된다.(단순히 값을 변경하는 것을 넘어 프로세스의 상태를 변경)
  • 💡 응답 서버로부터 URI가 지정된다.
  • 다른 메서드들과는 다르게, 여러번 호출하게 되면, 다른 결과를 일으킬 수 있다.

PUT

  • 리소스가 이미 있으면 기존 리소스는 삭제하고 대체한다. 없으면 생성 (덮어 쓰기, 부분적으로 수정은 할 수 없다.)
  • 💡 클라이언트가 리소스의 위치를 알고 URI를 지정한다.

PATCH

  • PUT과 다르게, 부분적으로 리소스를 변경할 수 있다.

DELETE

  • 리소스를 제거한다.

HTML FORM 사용


<form action = "/save" method = "post"> 
    <input type = "text" name = "username" />
    <input type = "text" name = "age" />
    <button type = "submit">
        전송
    </button>
</form>

위와 같은 HTML의 form tag를 사용해서 데이터를 전송해야하는 경우가 있을 수 있다.

  • HTML FORM은 GET, POST만 지원한다. form 태그 첫 줄에 method 를 지정하면 된다.

  • 파일을 전송하고 싶은 경우에는 <form action = "/save" method = "post" enctype="multipart/form-data"> 와 같이 enctype을 추가해주어야 한다.

  • HTML FORM을 사용해서 delete 와 같은 동작을 하기 위해서는 AJAX 같은 컨트롤 URI을 활용해서 해결한다. (동사를 직접 사용) -> /new, /edit, /delete …

    예시) /members/{id}/delete


참고하면 좋은 URI 설계 개념 : https://restfulapi.net/resource-naming/

-> 시간 있을 때, 번역해서 참고해봐야겠다.