inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

HTTP API 설계 예시

post 관련 질문드립니다.

158

jung

작성한 질문수 34

0

안녕하세요! 항상 좋은 강의 감사드립니다 ^^

post 와 put 신규등록을 하는 경우가 헷갈리는데요

클라이언트가 등록될 리소스의 uri를 모르는 상황이라고 설명해주셨는데 예를들어 회원을 가입할 때 회원 id는 유니크 해야되고  사용자가 회원 id를 입력을 합니다 ( ex: testid)

클라이언트는 본인이 입력한 id이기 때문에 알고  있습니다.

/member/testid

그리고 거꾸로 파일을 등록할땐 (ex : test.jpg)를 등록하면 서버에는 동일한 파일명이 존재할 수 있으니 식별자를 알 수 없고등록후에 test.jpg와 매핑된 아이디를 전달받아야 됩니다. 이런 상황이라면  예시와  똑같은 업무지만 post와 put 을 거꾸로 적용하면 될까요?

network

답변 1

0

김영한

안녕하세요. jung님

이 부분에서는 2가지 기준을 가지고 판단을 해야 합니다.

1. 리소스를 식별할 수 있는 기준을 클라이언트(PUT)가 가지고 있는가 서버(POST)가 가지고 있는가

2. 리소스를 변경할 때 클라이언트가 해당 리소스의 모든 데이터를 다 보낼 수 있는가(PUT)

예시로 들어주신 member의 경우 1번은 맞지만, 2번에서 (실제 수정하는 상황을 떠올려 보면)애매합니다. 따라서 POST를 사용하는 것이 더 나은 선택이라 생각합니다.

예시로 들어주신 파일의 경우 식별자를 서버에서 만들기 때문에 1번에서 기준이 애매하므로 POST를 사용하시면 됩니다.

1번만 생각해보면 PUT을 사용해도 될 것 같지만, 2번 때문에 실제 프로젝트에서 PUT을 사용하는 일은 매우 적고, 대부분 POST로 진행하게 됩니다.

(파일 업로드를 하면서 클라이언트가 지정한 파일명을 기준으로 리소스 URI가 생성된다면 PUT이 적합합니다.)

감사합니다.

캐시 관련 질문입니다.

0

615

1

ETag 질문입니다.

0

725

1

캐시의 설정 주체

0

533

1

영속쿠키 질문입니다.

0

502

1

협상(accept-language)

0

684

1

에러 코드의 구현 주체

0

436

1

웹서버가 구현?

0

594

1

필수헤더?

1

557

1

Host와 Port

0

771

1

다른 도메인이 같은 포트를 사용하는 경우

0

1257

1

표준 헤더와 임의 헤더

0

529

1

POST 등록 후 Location 헤더

0

566

1

프로세스의 상태가 변경되는 경우에 Post 사용

1

1807

1

지속연결에 대해서.

0

689

1

제가 아는 쿼리 파라미터 개념이 맞는지 확인 부탁드립니다.

0

590

1

캐시 내용중 no cache 일때

0

355

1

DNS 서버 관련 질문

1

744

1

캐시로 저장된 파일의 유효기간은 얼마나 되나요?

0

656

1

웹브라우저 요청흐름 질문입니다.

0

844

1

캐시 무효화 질문드립니다

0

558

1

리다이렉트와 리다이렉션 차이?

0

2589

1

쿠키 및 세션 관련 질문드립니다

0

584

1

HTTP 메서드 ( HTTP 메서드의 속성 파트 ) 강의의 멱등 내용에 대하여 질문드립니다.

0

1639

1

header 나 gzip으로 데이터 보낼떄 데이터는 base64로 인코딩되서 가는 건가요?

0

478

1