인프런 커뮤니티 질문&답변

장민욱님의 프로필 이미지

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

HTTP API 설계 예시

HTML Form에서 GET/POST만 지원하는 이유

해결된 질문

작성

·

1.1K

1

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]

http://haah.kr/2017/05/23/rest-http-method-in-html-form

 - 해당 글을 읽어 봤는데 잘 이해가 되지 않습니다.

- DELETE는 form 을 통해 값을 전달할게 없다는것은 알겠는데

- 위 블로그 글에서 PUT 의 내용이 이해가 안되네요..

- 그래서 GET/POST만 지원하는 궁극적인 이유가 무엇인가요~?

아래는 PUT 내용입니다.

- PUT도 전송해야할 것은 대상 리소스를 대체할 representation 그 자체인데, 대상 리소스더러 조각난 form 데이터를 처리하라고 보낼 수는 없는 노릇

답변 1

2

안녕하세요, 장민욱 님. 공식 서포터즈 codesweaver 입니다.
.
장민욱님 질문덕에 저도 한번 곰곰히 생각해보았습니다.

웹 요청을 크게 URI 와 페이로드로 구분하면, 

URI는 요청, 페이로드는 요청의 상세 항목(혹은 조건)이라고 볼 수 있습니다.

 

GET은 URI 에서 어떤 리소스를 가져올 것인지 지정하고, 페이로드 에서 어떤 조건의 리소스를 가져올 것인지 제한할 필요가 있으니 Form 에서 지원합니다.

POST는 URI로 처리를 요청하는 것이니, 어떤 처리를 원하는지 명시(페이로드)할 필요가 있습니다.

DELETE는 URI에 해당하는 리소스를 제거하는 요청입니다. 이 때 GET처럼 어떤 리소스를 제거할 것인지, 사용자가 상세 내역을 명시해야 한다라고 생각하면 DELETE 또한 페이로드를 갖는게 맞습니다. 그러나 '이안'의 생각은 DELETE는 '리소스에 대한 제거'만 가능하며 조건부 제거는 DELETE 메서드에 부합하지 않는다. 그러니 페이로드를 가질 이유가 없다라고 말한것 같습니다.

PUT도 URI에서 지정한 리소스 자체를 통째로 대체할 뿐이기에, 페이로드로 이러쿵 저러쿵 조건을 명시할 이유가 없다고 보는것 같습니다. '페이로드에 이런 저런 값을 붙여도 그 값은 어차피 무효하며 클라이언트가 전송한 리소스로 대체된다'고 설명하는 것 같습니다.

..
감사합니다.

장민욱님의 프로필 이미지
장민욱
질문자

답변 정말 감사합니다!!

답변감사합니다!