HTTP 상태 코드란 ?
클라이언트가 서버에 요청을 보냈을 때, 서버가 클라이언트에게 응답할 때 사용되는 코드이다.
우리가 가끔 과거에 존재했던 사이트지만 지금은 존재하지 않을 경우 404 코드가 뜨면서 Not Found 를 본 적이 있을 것이다.
뿐만 아니라 네이버나 구글 등 유명한 사이트는 해당 404 에러 발생시 다른 화면으로 전환되게 만들어놨다.
아래의 URL 을 입력 후 접속해보면 해당 화면을 발견할 수 있다.
https://www.naver.com/test
F12 키 을 눌러 console를 확인해보면 404 에러가 발생했음을 알 수 있다.
이렇게 서버 응답 코드에 따라 사용자가 어떻게 대처해야되는 지 알려줄 수 있는 수단이기에 한 번 정리해보았다.
HTTP 상태 코드
ℹ️ 1xx (정보 응답)
요청을 받았으며 프로세스를 계속한다는 의미
code | result | content |
100 | Continue | 클라이언트가 서버에 요청의 일부를 보냈으며, 서버가 이를 수신하고 나머지 요청을 계속해서 보내라는 경우 |
101 | Swutching Protocol | 클라이언트가 서버에 프로토콜 전환을 요청했으며, 서버가 이를 승인한 경우 |
102 | Processing | 서버가 요청을 수신하였으며 이를 처리 중이나 아직 완료되지 않았음을 나타내는 경우 |
103 | Early Hints | 서버가 아직 최종 응답을 준비하지 않았지만, 클라이언트가 일부 리소스를 미리 로드할 수 있도록 힌트를 제공하는 경우 |
✅ 2xx (성공 응답)
요청이 성공적으로 처리되었다는 의미
code | result | content |
200 | OK | 요청이 성공적으로 처리되었을 경우 |
201 | Created | 요청이 성공적으로 처리되었으며, 새로운 리소스가 생성되었을 경우 |
202 | Accepted | 요청이 수락되었으나 아직 처리되지 않을경우 |
203 | Non-Authoritative Infomation | 요청이 성공적으로 처리되었으나, 반환된 메타 정보가 원본 서버의 것이 아니라 로컬 등의 서버임을 나타낼 경우 |
204 | No Content | 요청이 성공적으로 처리되었으나, 반환할 콘텐츠가 없음을 나타내는 경우 |
205 | Reset Content | 요청이 성공적으로 처리되었으며, 클라이언트는 문서 보기를 초기화해야 함을 나타내는 경우 |
206 | Partial Content | 요청이 부분적이지만 성공적으로 처리되었음을 나타낼 경우 |
207 | Multi-Status | 여러 상태 코드가 포함된 다중 응답을 나타낼 경우 |
208 | Multi-Status | DAV 다중 상태 응답 내에서 사용되며, 내부 멀티 상태 응답에서 이미 응답된 요소를 반복하지 않음을 나타낼 경우 |
226 | IM Used | 서버가 GET 요청을 처리하여 하나 이상의 인스턴스 조작이 성공적으로 적용 되었음을 나타낼 경우 |
🗂️ 3xx (리다이렉션)
클라이언트는 요청을 완료하기 위해 추가 작업을 수행해야된다는 의미
code | result | content |
300 | Multiple Choice | 요청한 리소스에 여러 개의 선택사항이 있으며, 사용자가 그 중 하나를 선택할 수 있음을 나타내는 경우 |
301 | Moved Permanently | 요청한 리소스가 영구적으로 새로운 URL 로 이동되었음을 나타내는 경우 |
302 | Found | 요청한 리소스가 일시적으로 다른 URL 에 있음을 나타내는 경우 |
303 | See Other | 요청한 리소스가 다른 URL 에 있음을 나타내며, GET 메서드를 사용하여 접근해야 함을 나타내는 경우 |
304 | Not Modified | 요청한 리소스가 수정되지 않았음을 나타내며, 클라이언트는 캐시된 버전을 계속 사용해도 되는 경우 |
307 | Temporary Redirect | 요청한 리소스가 일시적으로 다른 URL 에 있음을 나타내며, 요청 메서드를 변경하지 않고 리디렉션할 것을 나타내는 경우 |
308 | Permanent Redirect | 요청한 리소스가 영구적으로 새로운 URL 로 이동되었음을 나타내며 요청 메서드를 변경하지 않고 리디렉션할 것을 나타낼 경우 |
👤 4xx (클라이언트 오류)
클라이언트의 요청에 오류가 있다는 의미
code | result | content |
400 | Bad Request | 서버가 잘못된 구문으로 인해 요청을 이해할 수 없음을 나타낼 경우 |
401 | Unauthorized | 요청에 인증 정보가 필요하거나 제공된 인증 정보가 유효하지 않음을 나타낼 경우 |
403 | Forbidden | 서버가 요청을 이해했지만 승인을 거부했음을 나타낼 경우 |
404 | Not Found | 서버가 요청한 리소스를 찾을 수 없음을 나타낼 경우 |
405 | Method Not Allowed | 요청한 메서드가 서버에서 허용되지 않음을 나타낼 경우 |
406 | Not Acceptable | 서버가 클라이언트의 요청에 대해 수락할 수 있는 응답을 생성할 수 없음을 나타낼 경우 |
407 | Proxy Authentication Required | 프록시 서버를 통해 인증이 필요함을 나타낼 경우 |
408 | Request Timeout | 서버가 클라이언트의 요청을 지정된 시간 내에 완료할 수 없음을 나타낼 경우 |
409 | Conflict | 서버가 요청을 처리하는 중에 충돌이 발생했음을 나타낼 경우 |
410 | Gone | 요청한 리소스가 영구적으로 삭제되었음을 나타낼 경우 |
411 | Length Required | 서버가 요청을 처리하기 위해 필요한 Content-Length 헤더가 없음을 나타낼 경우 |
412 | Precondition Failed | 클라이언트의 전제 조건이 서버에서 충족되지 않았음을 나타낼 경우 |
413 | Payload Too Large | 요청한 엔티티가 서버에서 처리하기에는 너무 큼을 나타낼 경우 |
414 | URI Too Long | 요청한 URI 가 서버에서 처리하기에는 너무 길음을 나타낼경우 |
415 | Unsupported Media Type | 요청한 미디어 타입이 서버에서 지원되지 않음을 나타낼 경우 |
416 | Requested Range Not Satisfiable | 요청한 범위가 리소스의 범위를 초과했음을 나타낼 경우 |
417 | Expectation Failed | 서버가 클라이언트의 Expect 헤더 요구사항을 충족할 수 없음을 나타낼 경우 |
418 | I'm a teapot | 만우절 응답 |
421 | Misdirected Request | 서버가 이 요청을 처리하지 못하는 서버에 수신되었음을 나타낼 경우 |
422 | Unporcessable Entity | 서버가 요청을 이해했으나 처리할 수 없음을 나타낼 경우 |
423 | Locked | 요청한 리소스가 잠겨 있음을 나타낼 경우 |
424 | Failed Dependency | 이전 요청이 실패했기 때문에 현재 요청도 실패했음을 나타낼 경우 |
426 | Upgrade Required | 클라이언트가 다른 프로토콜로 전환해야 함을 나타낼 경우 |
428 | Precondition Required | 서버가 요청을 처리하기 전에 전제 조건을 요구함을 나타낼 경우 |
429 | Too Many Requests | 클라이언트가 일정 시간 내에 너무 많은 요청을 보냈음을 나타낼 경우 |
431 | Request Header Fields Too Large | 요청한 헤더 필드가 너무 커서 서버가 처리할 수 없음을 나타낼 경우 |
451 | Unavailble For Legal Reasons | 법적 이유로 요청한 리소스를 사용할 수 없음을 나타낼 경우 |
🖥️ 5xx (서버 오류)
서버가 요청을 처리하는 중에 오류가 발생했다는 의미
code | result | content |
500 | Internal Server Error | 서버에서 일반적인 오류가 발생하여 요청을 처리할 수 없음을 나타낼 경우 |
501 | Not Implemented | 서버가 요청한 기능을 지원하지 않음을 나타낼 경우 |
502 | Bad Gateway | 게이트웨이 또는 프록시 서버가 상위 서버로부터 잘못된 응답을 받았음을 나타낼 경우 |
503 | Service Unavilable | 서버가 일시적으로 과부하 상태이거나 유지보수 중임을 나타낼 경우 |
504 | Gateway Timeout | 게이트웨이 또는 프록시 서버가 상위 서버로부터 응답을 받는 데 시간이 초과되었음을 나타낼 경우 |
505 | HTTP Version Not Supported | 서버가 요청에 사용된 HTTP 프로토콜 버전을 지원하지 않음을 나타낼 경우 |
506 | Variant Also Negotiates | 서버에 내부 설정 오류가 있음을 나타낼 경우 |
507 | Insufficient Storage | 서버가 요청을 처리하는 데 필요한 저장 공간이 부족함을 나타낼 경우 |
508 | Loop Detected | 서버가 무한 루프를 감지했음을 나타낼 경우 |
510 | Not Extended | 요청한 확장이 필요하지만 서버가 이를 충족하지 못함을 나타낼 경우 |
511 | Network Authentication Required | 네트워크 접근을 위해 인증이 필요함을 나타낼 경우 |
'공부' 카테고리의 다른 글
[BUG] zone 설정 미설정 시, ZonedDateTime 형식 다름 (0) | 2024.08.12 |
---|---|
[마실가실] 프로젝트 1년 후 회고록 및 리팩토링 계획 (0) | 2024.08.05 |
[ERROR] WSL 로컬 프로젝트 포트 안열리는 현상 (0) | 2024.07.08 |
[JAVA] getByte() 를 할 때 UTF-8로하면 한글이 깨지고 EUC-KR 로 하면 변환될까? (0) | 2024.05.20 |
[Ubuntu] 우분투에서 실행 중인 포트 확인 및 죽이기 (0) | 2024.04.01 |