401, 403 그리고 404?!
Http Response Code 401, 403
우선 헷갈리는 401
, 403
Response code 이다.
두 응답코드를 확실히 비교해보자.
<br>
401 Unauthorized:
If the request already included Authorization credentials, then the 401 response indicates that authorization has been refused for those credentials
401
은 쉽게 말해 인증을 요구하는 상태이다
즉 로그인을 하지 않은 상태에서 접근 시 응답한다.
<br>
<br>
403 Forbidden
The server understood the request, but is refusing to fulfill it.
403
은 권한이 없음을 나타낸다.
로그인을 하였지만, 권한이 없을 경우 응답한다.
<br>
<br>
404?!
404 Not Found
재밌는것은 404
이다
404
는 자주 볼 수 있는 응답 코드이다.
리소스를 찾을 수 없을때 404
로 응답하게된다.
하지만 404
를 다른 용도로도 사용할 수 있다
한 예로, Github이 그렇다.
<img src="https://static.podo-dev.com/blogs/images/2019/09/30/origin/bb6c3c5f-0108-4fbb-b8a8-a5dbce755c10.PNG" style="width:720px;">
Github의 Private Repository를
권한이 없는 상태에서 접근하면
403
이 아닌, 404
로 응답해준다.
?!
왜 404
로 응답할까?
존재 자체를 드러내기 싫을때 404
를 사용하는 것이다.
403
으로 응답한다면,
클라이언트는
'해당 리소스는 있어, 근데 너는 권한이 없단다' 로 이해한다.
따라서 해당 리소스가 있음을 알 수 있다.
하지만 404
로 응답한다면
해당 리소스의 존재 자체를 부정할 수 있다.
더 강력한 보안을 보장 할 수 있는것이다. (똑똑!)
<br>
<br>
한 줄 요약
404
는 더 강력한 보안을 보장 할 수있다!!