[네트워크] HTTP 응답 코드

opixxx·2024년 3월 6일
0

네트워트

목록 보기
3/14

이 글은 보초님 깃허브 레포를 참고해서 공부한 글입니다

HTTP 응답코드에 대해 설명해 주세요.

HTTP 응답코드란

서버가 클라이언트의 요청에 대해 응답하는 방식을 나타내는 숫자 코드이다.
요청이 성공했는지, 추가 조치가 필요한지, 클라이언트 오류가 발생했는지, 서버 오류가 발생했는지 나타낸다.

1xx(정보)

  • 서버가 요청을 잘 받았으며 해당 프로세스를 계속 이어가며 처리하는 것을 의미한다.
상태 코드상태 텍스트의미
100Continue계속 진행하라

2xx(성공)

  • 서버가 요청을 잘 받았고, 클라이언트에게 성공적으로 데이터를 보낸 것을 의미한다.
상태 코드상태 텍스트의미
200Ok요청이 성공적으로 되었습니다.
201Created요청이 성공적이었으며 그 결과로 새로운 리소스가 생성되었습니다.

3xx(리다이렉션)

  • 서버가 클라이언트의 요청에 대해 완료를 위해 추가 작업 조치가 필요한 것을 의미한다.
상태 코드상태 텍스트의미
301Moved Permanently지정한 리소스가 새로운 URI 로 이동하였다.

4xx(클라이언트 오류)

  • 클라이언트가 요청한 페이지를 제공할 수 없거나 요청이 잘못되어 결과적으로 요청을 처리할 수 없습니다.
상태 코드상태 텍스트의미
400Bad Request요청의 구문이 잘못 되었다.
401Unauthorized요청한 리소스에 대한 액세스 권한이 없다.
403Forbidden요청한 리소스에 대한 액세스가 금지되었다.
404Not Found요청 리소스를 찾을 수 없다.

5xx(서버 오류)

  • 서버가 클라이언트의 요청을 처리하지 못하는 상태를 의미한다.
상태 코드상태 텍스트의미
500Internal Sever Error서버에 오류가 있다.
502Bad Gateway게이트웨이 또는 프록시서버가 오류가 생겼다.
504Gateway Timeout게이트웨이 또는 프록시서버가 정해진 Timeout 시간동안 클라이언트의 요청을 처리하지 못했다.

401(Unauthorized) 와 403(Forbidden)은 의미적으로 어떤 차이가 있나요?

401(Unauthorized)

클라이언트의 요청이 인증을 필요로 함을 의미한다.
요청한 리소스를 얻기 위해서는 먼저 인증이 필요하다는 것을 나타낸다.
ex) 웹 사이트에 로그인을 하지 않고 로그인을 필요한 페이지에 접근하려 할 때

403(Forbidden)

클라이언트의 요청을 서버가 이해했지만, 클라이언트가 요청한 행동을 수행할 권한이 없음을 나타낸다.
ex) 관리자 전용 페이지에 일반 사용자가 접근하려고 할 때

401 과 403 의 차이점

  • 401 은 올바른 인증 정보가 제공되면 요청이 승인될 수 있지만 403 은 이미 인증 과정을 거쳤지만 접근 권한이 없음을 나타낸다.

200(ok) 와 201(created) 의 차이에 대해 설명해 주세요.

200, 201 둘다 클라이언트의 요청이 성공적으로 이뤄졌다는 의미이지만, 201 은 성공과 동시에 새로운 리소스가 생성되었다는 의미를 포함한다.
POST, PUT 에 대한 응답에 주로 사용된다.

필요하다면 저희가 직접 응답코드를 정의해서 사용할 수 있을까요? 예를 들어 285번 처럼요.

기술적으로 서버가 클라이언트에게 어떤 HTTP 응답 코드를 반환할지 결정할 수 있지만, 호환성,가독성,유지 보수 측면에서 생각해봐야 할 부분이 많다.

호환성

  • 대부분의 클라이언트는 표준 HTTP 응답 코드를 기대 하고 이를 기반으로 동작한다. 비표준 응답 코드를 사용하면 클라이언트에서 예상치 못한 방식으로 반응할 수 있다.

가독성과 유지보수

  • 비표준 응답 코드는 개발자난 다른 이해 관계자에게 혼란을 줄 수 있다. 표준 응답 코드는 널리 알려져 있고 문서화가 되어있어 이해하기 쉽지만 비표준 응답 코드는 그렇지 않을 수 있다.
profile
개발공부저장소

0개의 댓글

관련 채용 정보