[Chapter8] 스테이터스 코드

웹을 지탱하는 기술을 공부하며 정리한 글입니다.
틀린 부분은 지적해주시면 감사드리겠습니다 😀

이전 응답 메시지의 첫 줄을 보면 다음과 같은 내용이 있었다.

HTTP/1.1 200 OK

여기서 200이 바로 스테이터스 코드라고 부른다. 이러한 스테이터스 코드는 클라이언트의 움직임을 좌우하는 중요한 역할을 한다.

스테이터스 코드의 분류와 자주 사용되는 코드

스테이터스의 코드는 첫 번째 숫자로 분류하고, 클라이언트 측에서 그 숫자를 통해, 어떻게 처리할지 대략 알 수 있게 된다.

1XX : 처리중

100번대 코드는 처리가 계속되고 있음을 의미한다.

2XX : 성공

200번대 코드는 요청이 성공했음을 나타낸다.

200 OK - 요청 성공

클라이언트에서 요청을 보내고, 서버에서 정상적으로 처리가 되었을 경우 200을 보내 요청에 성공했다는 응답을 보내준다.

201 Created - 리소스 작성 성공

클라이언트 측에서 새로운 리소스를 작성했을 때, 서버는 200으로 응답을 퉁칠 수 있지만, 조금 더 자세한 응답을 보내려면, 201을 사용해 리소스를 새로 작성했다고 알려주면 된다.

3XX : 리다이렉트

300번대 코드는 다른 리소스로의 리다이렉트를 나타낸다. 이 코드를 받을 경우, 응답 메시지에 포함된 Location 헤더를 보고 새로운 리소스로 접속한다.

301 Moved Permanently - 리소스의 항구적인 이동

리소스에 접근했지만, 새로운 리소스로 이동했을 경우 사용된다. 예를 들어, 기존에 사용했던 리소스인 GET http://example.com/feed으로 요청을 보냈는데, 다른 리소스로 이동이 되었을 경우 서버에서는 다음과 같은 응답을 보내게 된다.

HTTP/1.1 301 Moved Permanently
Location: http://example.com/newfeed
Content-Type: application/xhtml+xml; charset=utf-8

<html>
	<body>
		<p>이 피드는 <a href="...">새 URI</a>로 이동했습니다.</p>
	</body>
</html>

4XX : 클라이언트 에러

400번대 코드는 클라이언트 에러를 나타낸다. 보통 클라이언트의 요청이 잘못된 경우 발생한다.

400 Bad Request - 요청 오류

요청 구문이나 파라미터가 잘못되었다는 것을 나타낸다.

401 Unauthorized - 접근 권한 없음, 인증 실패

로그인과 같이 서버에 인증을 하지 않은 상태에서 접근 권한이 없는 페이지에 접근했을 때, 401 코드를 반환한다.

404 Not Found - 리소스 없음

가장 많이 들어보고, 접한 코드일 것이다. 이는, 지정한 리소스를 찾을 수 없다는 것을 나타낸다.

5XX : 서버 에러

500번대 코드는 서버 에러를 나타낸다. 클라이언트의 요청이 정상인데, 서버에서 에러가 발생할 경우 발생한다.

500 Internal Server Error - 서버 내부 에러

서버 측에서 어떠한 이유로 정상적인 응답을 보낼 수 없다는 것을 나타낸다. 보통 Nginx와 같은 프록시 서버에서 자주 볼 수 있다.

503 Service Unavailable - 서비스 정지

서버가 점검 등으로 일시적으로 엑세스할 수 없다는 것을 보여주기 위해 사용한다.

댓글남기기