HTTP 상태코드와 메서드 : POST 메서드 응답 코드 질문
안녕하세요 큰돌님 ㅎㅎ 언제나 강의 잘 보고 있습니다. HTTP 상태코드와 메서드 강의를 보고 궁금한 점이 생겨서 질문드립니다.
저는 API 를 만들고 POST 메서드에 대해서도 작업이 성공하면 200 코드를 내려줬었는데요, 이번에 큰돌님 강의를 보고 201로 고쳐야 하나? 싶은 생각에 자료를 더 찾아봤습니다.
RFC 7231 HTTP/1.1 문서를 찾았고, 거기서 200 응답코드는 메서드마다 각기다른 응답 payload 를 반환하며, POST 에 대해서도 반환하는 paylaod 가 있는것을 확인했습니다.
이 규칙만 지킨다면 POST 요청에 대해서도 200을 반환해도 문제가 없는건지 궁금합니다.
참고한 문서 링크입니다.
답변 1
1
안녕하세요. ㅎㅎ
Status code를 200에서 201로 바꾼다고 하셨을 때 많은 코스트가 들면…
고민해볼만하지만 왠만하면 새로운 리소스를 생성했을 때 201로 하시는게 더 “명시적”입니다.
둘 다 비슷하게도 “성공”에 대한 메시지이지만 201이 조금 더 자세한 설명이 된다고 보시면 됩니다.
201은 리소스가 생성되었다 + 해당 리소스에 대한 링크를 단다. 라는 점이 다릅니다.
좀 더 얘기를 하자면 201에는 Location 헤더를 붙여주어야 합니다.
새로이 생성된 리소스에 관한 헤더인데요.
예를 들어 큰돌.com의 1번째 북이라는 리소스가 새로이 생성되었다라고 하면
Location: http://큰돌.com/books/1
이런식으로 헤더를 붙여야 합니다.
만약에 헤더를 못 붙이는 경우 해당 리소스 반환값에
link를 달아주어야 합니다. (이는 REST API의 HATEOS 특성이기도 해요.)
{
“link” : “http://큰돌.com/books/1”
}
* 참고로 Location 헤더는 3xx 리다이렉션에도 붙여야 합니다.
감사합니다.
안녕하세요 선생님, API 실습 2 강의를 듣다 궁금한 점이 생겨 질문 드립니다.
0
555
2
JSON으로 사이트맵
0
503
1
브라우저 렌더링 부분 교재 관련 질문입니다!
0
477
2
교제를 따로 사야하나요?
0
1975
1
클라우드 아키텍쳐에서 토폴로지 설계
1
720
1
로컬스토리지, 세션 스토리지 용량 초과하면 어떻게 되나요?
0
1560
1
학습 순서가 정해져있는건지 궁금합니다.
0
522
1
TCP/IP 4계층, OSI 7계층에 대해 질문드립니다.
0
975
1
서브넷마스크 할당 퀴즈가 헷갈립니다
1
477
1
Linked List의 시간 복잡도에 대한 질문입니다
0
486
1
HTTP 메서드 #1. 질문있습니다.
0
519
1
jwt 토큰
0
757
1
해당 질문에 대한 답변 예시 중에 제가 본 것 중 제일 고품질이네요
0
445
2
UDP의 고정길이에 대하여 질문이 있습니다.
0
322
1
팩토리 패턴의 의존성 주입과 관련해서 질문이 있습니다!
0
695
1
질문 잇워오
0
389
1
안녕하세요 axios DIP 사례의 화살표가 잘 이해가 되지 않아 질문드립니다
0
316
1
동적배열 질문있어요
0
246
1
책과 강의 교안.. 어떤 것에 비중을 두어야 하나요?
0
499
1
HTTP3 UDP통신
0
979
1
[오탈자 문의]
0
269
1
attribute, field, property의 명확한 차이점이 궁금합니다.
1
1467
1
싱글톤 패턴에서 정적 멤버 방식과 정적 블록 방에서 정적 블록 방식은 final이 없는 이유
0
340
1
Json이 프로그래밍 언어와 플랫폼에 독립적인 이유가 뭔가요?
0
440
1





