본문 바로가기
IT-Network

HTTP 상태 코드 목록

by lindsay.hyun 2022. 12. 18.
반응형

HTTP 상태 코드는 최상위 응답(General)에 표시되는 세 자리 숫자입니다. 클라이언트의 웹 브라우저와 서버 간에 HTTP 요청에 대한 응답을 반환합니다. HTTP 응답은 클라이언트의 웹 브라우저에 결과를 표시하기 위해 서버에서 처리를 수행하고 "General", "Message Header", "Response body"의 내용으로 텍스트로 표시됩니다.
웹 서버 응용 프로그램이 반환하는 가장 많은 상태 코드는 "200"입니다. 200은 정상적으로 처리를 할 수 있었음을 의미하기 때문에, 우리가 웹사이트를 보고 있을 때에는 표시하지 않고, 결과만이 웹 페이지의 표시라고 하는 형태로 표시되기 때문에 눈치채기 어렵습니다. 하지만 잘 보는 것은 에러가 나왔을 때입니다. 웹 사이트를 탐색하려고 URL을 입력했을 때, 웹 브라우저에서 「404 Not Found」나 「500 Internal Server Error」나 「503 Service Unavailable」등이 표시되어 버린 적이 있습니까? 이것은 어떠한 에러가 있어 웹 페이지가 볼 수 없게 되어 버렸을 때의 결과가 웹 브라우저에 표시한 예입니다. 다음은 주된 각 status code의 설명을 정리해 보았습니다.

 

HTTP 100번대 Informational(정보 응답)

클라이언트로부터의 요청을 받아들일 수 있고 계속해서 처리되고 있는 상태입니다. 처리가 시작된 시점의 타이밍이므로 처리 중의 상태이지만, https 프로토콜에 의한 request와 response는 순간적으로 수행되기 때문에 인간에게는 체감할 수 없을 정도의 속도로 의식을 할 수는 없습니다. 대용량의 동영상 처리의 경우는 프로토콜 전환에 의해 처리에 조금 시간이 걸리고 타이밍이 조금 어긋나는 일도 있습니다.


HTTP  상태 코드 설명 상태
100 Continue 요청 계속 가능 정상
101 Switching Protocol 프로토콜 전환 정상
102 Processing 처리 중 정상
103 Early Hints 조기에 예측되는 헤더 전달 정상

 

HTTP 200번대 Success(성공 응답)

클라이언트로부터 요청이 서버로 보내져 이행되어 수리된 상태입니다. 성공한 후에는 요청에 따라 서버에서 처리하고 클라이언트에게 응답을 반환합니다. 우리가 평소 인터넷을 이용할 때 웹 페이지를 볼 때도 웹 브라우저를 이용하지만, Google 크롬의 개발 모드 창의 '네트워크' 탭에서 웹 페이지 내에 로드된 정상적으로 처리된 파일 그룹은 "Status Code 200"으로 확인할 수 있습니다.

HTTP 상태 코드 설명 상태
200 OK 요청이 성공적으로 처리되었습니다. 정상
201 Created 요청 성공 및 리소스 생성 완료 정상
202 Accepted 요청을 받았지만 처리되지 않았습니다. 정상
203 Non-Authoritative Information 요청이 성공했지만 변환 프록시가
원래 서버의 200 (OK) 응답에서 페이로드를 변경했습니다.
정상
204 No Content 요청에 보내는 콘텐츠는 없지만 헤더는 유용합니다. 정상
205 Reset Content 클라이언트에게 문서 보기를 재설정하도록 지시 정상
206 Partial Content 요청된 범위의 데이터 및 리소스의 일부만 요청이 성공 정상

 

HTTP 200 확인

HTTP 200 OK를 확인하려면 Google 크롬에서 F12 키를 누르면 개발 창이 나타나 상황을 볼 수 있습니다. 「Status」가 200인 파일은 정상적으로 처리되어 화상이면 표시되고, html나 css 파일이면 정상적으로 읽어들여지고 있는 것을 확인할 수 있고, javascript 이면 읽어들여 동작하고 있다 상태를 나타냅니다.

status-확인하기
status 확인하기
 

 

HTTP 300번대 Redirection(리디렉션)

요청을 완료하려면 추가 처리가 필요합니다. 이용 예를 바탕으로 설명을 하면, 「300 Multiple Choice」는 PC 화면과 스마트폰 화면으로 Web 애플리케이션이 헤어지고 있는 경우에 이용합니다. 반응형 웹 디자인에서 원 소스 페이지에서 표현하기 어려운 경우 두 개의 사이트를 만들고 사용자 에이전트에 따라 분산합니다. "301 Moved Permanently"는 301 redirection이라고 하며, 영구적으로 페이지 이동을 하는 경우에 사용됩니다. 웹사이트 리뉴얼 시에, directory를 정비해 바뀌었을 경우에 각 페이지에 대해서 redirect 설정을 해 강제적으로 페이지 이동을 합니다.

 

HTTP 상태 코드 설명 상태
300 Multiple Choice 요청에 대해 여러 응답이 있음을 나타냅니다. 정상
301 Moved Permanently 영구적으로 이동 정상
302 Found 일시적으로 이동
※ Google 검색 엔진의 검색 리스트에서는 구 URL을 나타내기 위해
장래에 원래의 URL로 되돌릴등의 때에 이용합니다.
정상
304 Not Modified 갱신되어 있지 않다
※ 정상적으로 처리되고 있습니다만 브라우저 캐시의 내용을 표시하고 있기 때문에,
서버로부터 다운로드를 하고 있지 않습니다.
정상

 

HTTP 301 Moved Permanently와 HTTP 302 Found의 차이

HTTP 301 및 HTTP 302 redirection은 "이전이 영구적이면 301"이고 "이전이 일시적이면 302"를 사용합니다. 이용 예는 HTTP 301 Moved Permanently 이면, 웹 사이트의 리뉴얼로 directory가 바뀌었을 경우에 영구적으로 redirection을 하기 위해서 HTTP301을 이용합니다. HTTP 302 Found는 웹 사이트가 리뉴얼 중이고 일시적으로 URL이 다르기 때문에, 어느 쪽이든 URL로 되돌리는 경우나, 글로벌화에 대응한 사이트에서 다언어화를 하고 있는 경우에 국가별 IP 주소로 배분한다 일 등으로 이용될 수 있고, 아무도 일시적인 이동으로 결국 원래 URL로 돌아가는 것을 의미합니다. Google 검색 검색 엔진 최적화는 301 및 302 redirection 방법에서도 동일한 방식으로 처리되므로 이전 URL의 페이지 순위가 인계됩니다.

 

HTTP 400번대 Client Error(클라이언트 오류)

4xx 계의 에러는 클라이언트(사용자) 측에서 조작이나 입력에 문제가 있을 때에 나오는 에러입니다. 만약 이 계통의 에러가 나와 버리면 한번 자신이 한 작업을 재검토해 봅시다.


HTTP 상태 코드 설명 상태
400 Bad Request 일반적인 클라이언트 오류 오류
401 Unauthorized 액세스 권한이 없거나 인증 실패 오류
402 Payment Required 요금을 지불할 때까지 요청을 처리할 수 없는 상태 오류
403 Forbidden 보기 권한이 없는 파일이나 폴더 오류
404 Not Found 웹페이지를 찾을 수 없음 오류
405 Method Not Allowed 보내는 클라이언트 측 메서드가 허용되지 않음 오류
406 Not Acceptable 서버측이 접수 불가능한 값(파일의 종류 등)이며 제공할 수 없는 상태 오류
407 Proxy Authentication Required 프록시 서버를 통해 통신할 때 프록시 서버 자격 증명이 부족합니다. 오류
408 요청 시간 초과 요청을 보낸 후 상호 작용하는 데 시간이 너무 길기 때문에 실패 오류
409 Conflict 서버에 이미 존재하는 데이터가 충돌하여 요청을 완료할 수 없음 오류
410 Gone 파일이 삭제되었기 때문에 거의 영구적으로 웹 페이지가 없습니다. 오류
411 Length Required Content-Length란 요청 헤더에 보내는 데이터 용량이 쓰여 있는 항목
서버에서 Content-Length 헤더가 없기 때문에 액세스를 거부했다.
오류
412 Precondition Failed 헤더에 정의된 전제 조건이 충족되지 않은 경우 액세스 거부됨 오류
413 Payload Too Large 파일을 업로드할 때 서버에서 정한 파일 용량의
상한을 초과했기 때문에 액세스 거부됨
오류
414 URI Too Long 지정한 URL이 너무 깁니다. 오류
415 Unsupported Media Type 서버에서 허용하지 않는 요청 유형으로 인해 액세스가 거부되었습니다. 오류
416 Range Not Satisfiable 서버가 요청한 범위(용량)를 제공할 수 없음 오류
417 Expectation Failed 서버가 확장된 상태 코드를 반환할 수 없음 오류
422 Unprocessable Entity WebDAV의 확장 상태 코드
요청은 적절하지만 의미가 다르므로 서버가 반환 할 수 없습니다.
오류
423 Locked WebDAV의 확장 상태 코드
요청 내용이 잠겨 있기 때문에 서버가 반환 할 수 없습니다.
오류
425 Too Early 서버가 반복 처리가 발생할 가능성이 있는 요구라고 판단했기 때문에
처리를 할 수 없다고 판단했다
※ 무한 루프로 서버에 고부하가 걸리는 리스크의 가능성이 있기 때문에
오류
426 Upgrade Required Upgrading to TLS Within HTTP/1.1의 확장 상태 코드
HTTP/1.1로 업그레이드가 필요하기 때문에 서버가 처리할 수 없음
오류
429 Too Many Requests 일정 시간 내에 요청 수가 너무 많기 때문에 액세스를 거부했다
※ DDos 공격으로 인한 서버 다운 위험을 피하기 위해
오류
431 Request Header Fields Too Large 요청 헤더가 너무 길어서 서버 처리가 거부되었습니다. 오류

HTTP 500번대 Server Error(서버 에러)

5xx 계의 에러는 서버 측에 있어 시스템 관리자가 대응 중으로 클라이언트 측에서는 복구할 때까지 아무것도 할 수 없습니다. 서버 장해가 복구되기까지는 시간이 걸리기 때문에, 어느 정도의 시간을 두고 나서 다시 액세스를 하면 정상적으로 표시하는 일이 있습니다. 렌탈 서버와 클라우드 서비스에서는 장애 정보라는 형태로 알림을 전달하는 기업도 있습니다. 또한 유명한 대규모 서비스로 대규모 장애가 일어나 버리면 트위터 등의 SNS에서 시끄러워지고 있거나 포털 미디어 뉴스 기사에서 다루어지는 경우도 있기 때문에 눈에 띄는 일도 생각합니다. 시스템이 복구한 후 다시 액세스를 하면 웹 서비스나 클라우드 등의 시스템 환경에 접속할 수 있게 되므로 당황하지 말고, 우선은 상황을 알고 있으면 좋습니다.


HTTP 상태 코드 설명 상태
500 내부 서버 오류 일부 서버 내에서 발생한 오류 오류
501 Not Implemented 서버가 요청을 충족하는 데 필요한 기능을 지원하지 않음 오류
502 Bad Gateway 게이트웨이 프록시 서버가 잘못된 요청을 수신하고 거부했습니다. 오류
503 Service Unavailable 일시적으로 서버에 액세스할 수 없음 오류
504 게이트웨이 타임 아웃 요청을 보낸 서버의 적절한 응답없이 시간 초과 오류
505 HTTP Version Not Supported HTTP 버전이 서버에서 지원되지 않음 오류
506 Variant Also Negotiates Transparent Content Negotiation in HTTP에 정의된 확장 상태 코드
URL을 반환하는 콘텐츠에 배치 오류 등으로 인한 내부 서버 오류
오류
507 Insufficient Storage WebDAV 확장 상태 코드
서버로 처리하기 위한 스토리지 용량 부족
오류
508 Loop Detected 주로 개발중인 프로그램 처리로 무한 루프에 빠졌기 때문에 서버가 조작을 종료 오류
510 Not Extended 주로 정적 파일에 대한 액세스 집중으로 인해 일시적으로 표시되는 오류 오류
511 Network Authentication Required 네트워크 인증 필요 오류

 

반응형

'IT-Network' 카테고리의 다른 글

DNS 구조  (0) 2022.12.20
[TCP/IP] TCP/IP 란?  (1) 2022.12.18
HTTP란?  (0) 2022.12.18
IP 주소란?  (0) 2022.12.18
[OSI 7 layer] 네트워크 기본 지식  (0) 2022.12.05

댓글