저번주에 카카오톡이 sk데이터센터에서 화재가 나는 바람에 먹통이 되었었다. 카카오톡 로그인을 하려고 하는데500
이란 상태코드를 보고 웹 개발을 하고 있는데 상태코드에 대해서 겨우 200, 404
밖에 모르고 있어 자아성찰겸 자주 쓰이는 상태코드를 알아보고자 정리한다.
👉🏻 카톡 로그인 시 오류 코드
브라우저 요청에 대한 서버의 응답이다. 즉, HTTP Status Code는 서버로부터 브라우저로 보내는 3자리 숫자(3digits)
로 이루어져 있다. 따라서, 상태 코드는 에러나 상태 등에 대한 정의된 코드와 의미를 가진다.
An HTTP status code is a server response to a browser’s request.
100 ~ 199(informational responses; 조건부 응답)
: 서버가 요청을 받았으니 클라이언트는 작업을 계속 진행
하라는 정보에 관한 상태코드이다.
200 ~ 299(Successful responses; 성공)
: 클라이언트가 요청한 동작을 수신, 이해, 승낙했으며 성공적으로 처리
했음을 가리키는 정보가 담긴 상태코드이다.
300 ~ 399(Redirection message; 리다이렉션)
: 클라이언트는 요청을 마치기 위해 추가적인 동작
을 해야한다.
400 ~ 499(Client Error; 클라이언트 에러)
: 클라이언트에 오류
가 있음을 나타내는 상태코드이다.
500~599(Server Error; 서버 에러)
: 서버에 오류
가 있음을 나타내는 상태코드이다.
200(성공)
▶︎ 성공적인 HTTP 요청에 대한 표준 "OK" 상태 코드로 응답은 요청에 따라 다르다. 예를 들어 GET request
에 대해서는 응답이 메시지 본문에 포함되며, PUT / POST request
에 대해서는 작업 결과가 포함된 리소스가 포함된다.
201(작성됨)
▶︎ 요청이 성공했으며, 결과적으로 새 리소스가 생성되었음
을 나타내는 상태 코드이다. 일반적으로 POST/PUT 요청 후에 전송된다.
204(콘텐츠 없음)
▶︎ 서버가 요청을 이행했지만 정보를 반환할 필요가 없음
(삭제 요청, form을 통한 정보전달, 새 페이지가 로드되지 않아야되는 상황)을 나타낸다.
301(영구 이동)
▶︎ 요청에 대해 다른 URL로 영구적으로 리디렉션
함을 나타낸다.
302(임시 이동)
▶︎ 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 client는 향후 요청 시 원래 위치를 계속 사용해야 함
을 나타낸다.
304(수정되지 않음)
▶︎ 브라우저 캐싱에 사용되는 상태 코드로서 응답이 수정되지 않은 경우 클라이언트는 동일한 응답 또는 캐시 버전을 계속 사용
할 수 있다. 예를 들면, 브라우저는 특정 시간 이후에 리소스가 수정되었는지 요청할 수 있는데 수정되지 않은 경우는 304
수정된 경우는 리소스와 함께 200
이 전송된다.
400(잘못된 요청)
▶︎ 클라이언트 오류로 인해 서버가 처리할 수 없는 상태
로서 데이터 누락, 도메인 유효성 검사 및 잘못된 형식 지정과 같은 요청에 대해서 나타나는 상태코드이다.
401(권한 없음)
▶︎ client가 요청에 대한 권한이 없음
을 나타내는 상태코드이다. 예를 들면 로그인 하는 페이지의 경우를 들 수 있다.
402(결제 필요)
▶︎ 이 요청은 결제가 필요함
을 나타낸다.
403(금지됨)
▶︎ 403은 401과 매우 유사하지만, 403은 resource에 대한 권한이 없음
을 의미하며 인증이 실패
했음을 나타낸다. 즉, 401은 인증 실패, 403은 인가 실패
라고 생각하면 된다.
404(찾을 수 없음)
▶︎ 요청한 페이지를 찾을 수 없음
을 나타내며 서버에 존재하지 않는 페이지에 대한 요청을 예로 들 수 있다.
405(허용되지 않은 메서드)
▶︎ 서버에 요청한 method가 유효하지 않음을 나타낸다.
409(충돌)
▶︎ 서버가 요청을 처리할 때 충돌이 발생함을 나타낸다. 동시에 업데이트하는 상황을 예로 들 수 있다.
410(사라짐)
▶︎ 클라이언트의 요청이 영구적으로 삭제
되었음을 나타내는 상태코드이다. 404와 다른 점은 이전에는 있었지만 현재는 존재하지 않을 때 410을 쓰는데, 404로 대신 사용하는 경우도 있다. 또한 리소스가 영구적으로 이동했을 때는 301을 통하여 리소스의 위치를 새롭게 지정해야 한다.
500(내부 서버 오류)
▶︎ 서버에 오류가 발생하여 처리할 수 없는 상태이다. 상태코드 500과 같은 경우 서버의 동작에서 정확한 에러를 알 수 없을 때를 의미한다. 즉 예외적인 또는 예측하지 못한 에러를 내뿜으며 아래와 같이 다양한 원인이 있을 수 있다.
위와 같이 원인 파악에 있어 정확한 정보가 없기 때문에 서버의 로그 정보를 확인하여 해결해야 한다.
흔하게 보이는 상태코드를 여기저기서 줍줍하고 정리해봤다. 정리하면서 많은 상태코드를 배울 수 있었지만 이런 상태코드를 다 외우는데 시간을 쓰는 것 보단 계속 자연스럽게 접하면서 또는 상태코드를 볼 때마다 자연스럽게 익히는 것이 좋을 것 같다.
wikipedia HTTP status code
mdn http status code
http status code
http status code1
common http status code ko