728x90
오늘은 간략하게 http 상태 코드에 대해서 공부해보겠습니다.
HTTP 상태 코드란 무엇인가?
클라이언트(일반적으로 우리의 컴퓨터를 뜻함)는 서버와 통신을 하기 위해서 HTTP 요청을 보내야 한다. 즉 우리는 "www.naver.com" 라는 웹 페이지에 접속할 때 우리의 컴퓨터가 네이버의 서버에게 "야, 나 네이버 페이지에 접속하고 싶어!"라는 요청 메시지를 보낸다. 그러면 네이버의 서버는 우리가 보낸 요청을 받고 회신을 주겠죠? 이러한 회신을 좀 더 전문적인 용어로 표현하자면 바로 HTTP 상태 코드입니다.
우리는 서버가 회신해준 HTTP 상태 코드를 통해서 우리가 보낸 요청이 잘 받아들였는지 여부를 알 수 있습니다. 즉 요청의 성공 또는 실패 여부를 판단할 수 있습니다.
이러한 상태 코드는 다음 표와 같이 크게 5가지로 분류됩니다.
첫 번째 자리 | 의미 |
1xx | 조건부 응당 |
2xx | 성공 |
3xx | 리다이렉션 완료 |
4xx | 클라이언트 에러 |
5xx | 서버 에러 |
각 분류마다 좀 더 세부적으로 살펴 보자면 다음과 같습니다.
1xx. Informational response
: 요청을 받았으며 작업을 계속 진행함을 의미합니다.
- 100 Continue(계속) : 클라이언트가 보낸 요청에 문제가 없으니 다음 요청을 이어서 보내도 된다는 것을 의미한다. 만약 클라이언트의 작업이 완료되었다면 이 응답은 무시해도 된다.
- 101 Switching Protocol(프로토콜 전환) : 클라이언트가 서버에 프로토콜 전환을 요청했으며 서버는 이를 승인하는 중이다.
- 102 Processing(처리) : 서버가 요청을 수신하였으며 이를 처리하고 있지만, 아직 제대로 된 응답을 알려줄 수 없음을 의미한다.
- 103 Early Hints(사전 도움) : 서버가 응답을 준비하는 동안 사용자 에이전트가 사전 로딩을 시작할 수 있도록 한다.
2xx. Success
: 클라이언트 요청이 성공적으로 수신, 수행
- 200 OK(성공) : 요청이 성공적으로 되었음을 의미한다.
- 201 Created(작성됨) : 요청이 성공적이었으며 그 결과로 새로운 리소스가 생성됐다.
- 202 Accepted(허용됨) : 요청을 수신하였지만 그에 응하여 행동할 수 없다.
- 203 Non-Authoritative Information(신뢰할 수 없는 정보) : 요청을 수신하였지만 요청에 대한 검증이 되지 않음을 의미한다.
- 204 No Content(내용 없음) : 요청을 수신하였지만 응답 payload에 보낼 데이터가 없음을 의미한다.
3xx. Redirection
: 클라이언트가 요청을 완료하기 위해 추가 조치를 취해야 함
- 301 Moved Permanently(영구 이동) : 요청한 리소스의 URI가 영구적으로 변경되었음을 의미한다.
- 302 Found(임시 이동) : 요청한 리소스의 URI가 일시적으로 변경되었음을 의미한다.
- 304 Not Modified(변경 없음) : 마지막 요청 이후 요청한 페이지는 수정되지 않았다.
- 305 Use Proxy(프록시 사용) : 클라이언트는 프록시를 사용하여 요청한 페이지만 접근할 수 있다.
4xx. Client Error
: 클라이언트로 인한 오류 발생
- 400 Bad Request(잘못된 요청) : 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음을 의미한다.
- 401 Unauthorized(권한 없음) : 인증되지 않은 사용자가 인증이 필요한 리소스를 요청하는 경우의 응답
- 403 Forbidden(접근 금지) : 클라이언트가 콘텐츠에 접근할 권리를 가지고 있지 않다.
- 404 Not Found(찾을 수 없음) : 서버가 요청받은 리소스를 찾을 수 없다.
- 405 Method Not Allowed(허용되지 않은 메서드) : 요청에 지정된 메서드가 URI로 표시된 리소스에 허용되지 않음을 의미한다.
- 408 Request Timeout(요청 시간 초과) : 서버의 요청 대기가 시간을 초과하였음을 의미한다.
5xx. Server Error
: 서버로 인한 오류 발생
- 500 Internal Server Error(내부 서버 오류) : 서버에 오류가 발생하여 요청을 수행할 수 없다.
- 501 Not Implemented(구현되지 않음) : 서버에 요청을 수행할 수 있는 기능이 없다.
- 502 Bad Gateway (불량 게이트웨이) : 서버가 게이트웨이로부터 잘못된 응답을 수신했음을 의미한다.
- 503 Service Unavailable (서비스를 사용할 수 없음) : 서버가 요청을 처리할 준비가 되지 않음을 의미한다. 일반적으로 유지보수를 위해 작동이 중단되거나 과부하가 걸린 경우가 대부분이다.
- 504 Gateway Timeout (게이트웨이 시간초과) : 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 제때 요청을 받지 못했다.
'Web' 카테고리의 다른 글
쿠키 & 세션 (0) | 2022.04.01 |
---|---|
HTTP 요청 메소드 (HTTP Request Method) (0) | 2022.02.02 |
URL Meta 문자 (0) | 2022.02.01 |