까꿍
883
2021-09-01 16:50:46 작성 2021-09-01 16:52:40 수정됨
3
127

GET, POST 외 허용하지 않음 HTTP 응답


GET, POST 메서드는 사용하지만

그 외의 메서드 PUT, DELETE 등이 시도되면 실패를 응답하고자 합니다.


그런데, 검색을 해보아도 헷갈리기만 할 뿐 정답을 찾을 수 없어 질문을 드립니다.


저의 경우 특정 URL 뿐만 아니라 모든 PUT, DELETE 의 요청을 차단 또는 거절하고자 합니다.


몇몇 블로그에서는 이런 경우에 405를 사용한다고 합니다.

하지만, Mozilla 에서는 GET 은 허용해야한다고 합니다.

https://developer.mozilla.org/ko/docs/Web/HTTP/Status




이럴 때 501을 사용하다는 글도 확인해보았지만

https://developer.mozilla.org/ko/docs/Web/HTTP/Status/501


위 링크에 작성되어 있듯이 500번대 Error 는 서버에 오류가 있음을 안내하기 때문에 부적절하다고 판단이 됩니다.


혹시 이럴때 어느 응답코드가 맞을까요?

0
  • 답변 3

  • 팩트폭행범
    2k
    2021-09-01 17:09:29

    http 통신오류는 405 사용을 많이 하는거같네여  

    보안오류라던지, 기타 통신오류라던지 경험상 405 뜨더라고요


  • 마사키군
    1k
    2021-09-01 17:41:54

    1. 특정 URL의 특정 메서드만을 거부할 생각이시라면 405가 적당할 것 같습니다.

    2. 그런데 GET은 허용해야 한다는 의미가 잘 이해가 가지 않네요. 특정 URL에 대해, GET은 항상 허용해야 한다는 의미인가요? 전 처음 듣는 내용이라...

    제 경우엔 쓰기 전용 API를 만들고 나서, POST만 허용하고 PUT이나 DELETE는 물론, GET까지 모두 거부한 적이 있습니다.

    3. 모든 PUT과 DELETE를 거부하려고 한다고 하셨는데, 애시당초 존재하지 않는 URL로 요청되었다면 그냥 PUT이건 GET이건 그냥 404를 반환하시는게 제일 적당할 것 같은데요.

  • 까꿍
    883
    2021-09-02 10:06:29

    답변 감사합니다. 

  • 로그인을 하시면 답변을 등록할 수 있습니다.