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://file.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는 더 강력한 보안을 보장 할 수있다!!

0
이전 댓글 보기
등록
TOP