🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

HTTP 에러 코드, 메시지

21.08.12 00:55 작성 조회수 128

0

안녕하세요. HTTP  에러코드, 메시지에 대해서 궁금합니다.

정해진 에러코드(404, 304 등 )에 대해서 강의를 통해서 잘 들었습니다. 그런데 프로젝트를 하다보면 이렇게 정해진 코드 이외에 팀원들끼리 약속해서 새로운 에러코드(ex. 450), 메시지(ex. 필수 파라미터 안 넣었음) 를 약속할 수 있잖아요?

그렇다면,

강의에서 말씀하신 정해진 에러코드를 커스텀 ? 또는 어느 상황때에 우리가 정해진 에러코드를 반환해줘야 한다 => 이 말은 정해진 코드들 역시 저희가 임의대로 다 조작을 할 수가 있다는 말인가요?

즉, 404 Not Found 라는 메시지는 다른 문맥적 의미(해당하는 리소스가 없다는 이외의 의미) 로 반환을 할 수가(기능적인 가능성에 대해서 궁금합니다. 물론 그럴일은 없겠지만) 있다는 말인가요?

흠, 요지는 우리가 인터넷에서 보는 흔한 404 Not Found 라는 메시지는 각각의 수많은 서버들이 모두다 공통적으로 임의로 약속해서 일부러 그런 코드를 반환하는 것인지, 아니면 이미 내부스펙으로 정의를 해놔서 (약속을 따로 하지 않아도) 자동으로 HTTP 에서 내뱉는 코드인지 궁금합니다.

이해가 잘 안되어서 오히려 질문도 좀 뒤죽박죽이네요. 죄송합니다. 아 그리고 강의는 언제나 감사하게 잘 듣고 있습니다. 감사합니다. 

답변 1

답변을 작성해보세요.

1

codesweaver님의 프로필

codesweaver

2021.08.12

안녕하세요, 허강준 님. 공식 서포터즈 codesweaver 입니다.
.
결론부터 말씀드리면 사용자가 임의의 코드값을 반환할 수 있습니다. 다만 앞번호 (2xx, 3xx, 4xx, 5xx)에 따른 정의는 이미 내정되어 있기에 이것의 의미까지 바꿀순 없습니다. 그리고 404 코드 처럼 이미 그 행동이 브라우저와 서버에 정의되어 있는경우, 사용자가 임의로 뜻을 바꾸어 사용하거나 추가 행동을 하는등의 처리는 적절하지 않습니다.

.

서버는 사실 웹서버 + 웹어플리케이션 간의 커뮤니케이션으로 작동하고 있습니다. 이 때 클라이언트의 요청은 우선 웹서버로 전달됩니다. 그리고 보통은 이 웹서버에서 웹 애플리케이션의 상태를 파악하여 HTTP 상태값을 결정하게 됩니다. (물론, 웹 어플리케이션에서 강제로 HTTP 상태값을 결정할 수도 있습니다). 우리가 어느 사이트를 이용하든 동일한 응답값을 받는이유는 이런 웹서버들이 같은 HTTP 규칙을 준수하고 있기 때문입니다.
.
감사합니다.

highjune님의 프로필

highjune

질문자

2021.08.12

아하! 이해가 조금 되었어요! 

그러면 "웹서버들이 같은 HTTP 규칙을 준수하고 있다" 라는 말은 각각의 웹서버(톰캣 등)이 이미 저러한 코드, 메시지 등을 내부적으로 구현하고 있다는 말인거죠?

codesweaver님의 프로필

codesweaver

2021.08.12

네 서버는 주로 상태코드를 HTTP헤더에 실어 보내게 되고, 

브라우저는 이 헤더를 받아서 적절하게 처리하게 됩니다.

채널톡 아이콘