웹 개발의 세계에서 HTTP 오류 코드는 웹사이트의 사용자 경험과 평판에 영향을 미치는 중요한 역할을 합니다. 이 글에서는 서버 오류 코드의 전체 목록을 고려하고, 의미를 분석하고, 문제를 해결하고 웹 앱 성능을 최적화하기 위해 서버 응답 코드를 효과적으로 해석하는 방법을 알아봅니다.
HTTP 응답 코드란 무엇입니까?
HTTP 응답 코드는 브라우저 요청을 이해할 수 있는 지침으로 변환하는 웹 서버의 언어입니다. 마치 시인이 가상의 질문에 답하고 의미와 방향을 제시하는 것과 같습니다. 응답 코드는 항상 HTTP 오류 코드는 아닙니다. 예를 들어, "200 OK"는 모든 것이 정상임을 의미하지만 HTTP 오류 "404 Not Found"는 가상 공간에서 페이지가 손실되었을 때를 의미합니다. 각 코드는 서버 상태의 고유한 표현이며, 이를 디코딩하면 가상 세계의 반대편에서 무슨 일이 일어나고 있는지 이해할 수 있습니다.
1xx 코드(정보)
HTTP 프로토콜의 1xx 상태 코드는 서버와 클라이언트 간의 대화에서 일종의 첫 번째 링크입니다. 요청에 대한 완전한 응답을 제공하는 대신 현재 상태에 대한 정보를 제공하여 데이터 교환을 보다 효율적으로 만듭니다. 자세히 살펴보겠습니다.
100 계속하기서버가 사용자에게 녹색불을 켜서 사용자가 안전하게 계속해서 큰 요청을 보낼 수 있게 하는 HTTP 응답 코드입니다.
101 스위칭 프로토콜. 서버는 클라이언트에게 게임 규칙을 변경하고 있다고 알립니다. 예를 들어 HTTP에서 보다 안전한 HTTPS로 이동합니다. 이 경우 "Upgrade" 헤더가 프로토콜 변경에 사용됩니다.
102 처리이 코드는 서버가 요청을 수락했지만 여전히 복잡한 작업을 진행 중이라는 메시지와 같습니다.
103 초기 힌트. 여기서 서버는 주요 응답 전에 클라이언트에게 몇 가지 표시 헤더를 보내 가까운 미래에 관련이 있을 수 있는 사항에 대해 경고합니다.
2xx 코드(성공)
그룹 2xx의 HTTP 오류 코드는 서버로부터 성공적인 요청을 나타냅니다. 이는 본질적으로 웹 통신 범위에서 "녹색 신호" 역할을 하며 모든 것이 계획대로 진행되고 성공적으로 완료되었음을 확인합니다.
200 OK. 이 상태는 서버가 GET 방식으로 요청을 문제 없이 처리하고 요청된 데이터를 응답으로 반환할 때 사용됩니다. "Content-Type" 헤더는 응답에서 콘텐츠 유형을 보고합니다. 이는 클라이언트에게 요청이 성공했음을 알릴 뿐입니다.
201 생성됨여기서 서버는 새로운 리소스의 생성을 알립니다.
202 승인됨서버는 사용자에게 요청이 수락되었지만 응답하는 데 시간이 걸릴 것이라고 알립니다.
203 비권위적 정보이 코드는 클라이언트에게 공식적인 것은 아니지만 비교에 사용할 수 있는 데이터를 제공합니다.
204 콘텐츠 없음. 서버가 요청을 처리했지만 추가 콘텐츠를 반환하지 않습니다.
205 콘텐츠 재설정여기에서 클라이언트는 전송 후 현재 뷰나 데이터를 재설정하라는 지시를 받습니다.
206 일부 내용. 이 경우는 응답에 요청된 콘텐츠의 일부만 포함되어 있음을 나타냅니다. "Content-Range" 헤더는 부분적인 콘텐츠 범위를 나타냅니다.
207 다중 상태. 서버는 클라이언트의 다중 작업 요청을 성공적으로 완료했으며, 응답에는 각 작업의 상태에 대한 정보가 포함되어 있습니다.
226 IM 사용됨. 이 코드는 서버가 증분 메타데이터(IM) 방식을 사용했고 수정된 리소스 부분만 클라이언트에 전달하여 응답했음을 나타냅니다.
3xx 코드(리디렉션)
HTTP 프로토콜의 3xx 코드는 사용자를 새로운 리소스 위치로 안내하는 포인터와 같습니다. 이는 클라이언트에게 요청된 콘텐츠를 얻거나 다른 리소스로 리디렉션하려면 후속 단계를 수행해야 함을 알려줍니다. 각각의 세부 사항을 살펴보겠습니다.
300개의 다중 선택. 클라이언트는 리소스에 대한 여러 가능한 위치가 있다는 신호를 받고 응답으로 선택권이 제공됩니다. 현재 상황에서 "위치" 헤더는 리소스에 대한 대체 옵션을 나타낼 수 있습니다.
301 영구적으로 이전되었습니다. 서버는 리소스가 다른 위치로 영구적으로 이동되었음을 사용자에게 보고합니다.
302 발견. 이 HTTP 코드는 임시 리디렉션과 유사합니다. 서버는 소비자에게 리소스가 다른 URL에서 일시적으로 사용 가능하다는 것을 알립니다. "Location" 헤더는 임시 리디렉션을 위한 새 URL을 가리킵니다.
303 다른 것을 참조하십시오클라이언트에게 해당 리소스가 다른 URL에서 사용 가능하다는 알림이 전달되고, 이 새로운 주소로 GET 요청을 해야 합니다.
304 수정되지 않음. 이 상태는 클라이언트에게 리소스가 마지막 요청 이후로 변경되지 않았으며 다시 다운로드할 필요가 없음을 알려줍니다. 요청을 할 때 "If-Modified-Since" 헤더를 사용하여 리소스가 수정되었는지 확인합니다.
305 프록시 사용. 이에 대한 응답으로 서버는 요청된 리소스에 액세스하려면 지정된 프록시를 사용해야 한다고 보고합니다.
306(예약됨) — 해당 코드는 예약되어 있지만 실제로는 사용되지 않습니다.
307 임시 리디렉션. 이 코드는 302 Found와 유사하지만 클라이언트가 원래 요청에서 사용된 요청 방법을 유지해야 합니다.
308 영구 리디렉션리소스가 새로운 URI로 영구적으로 이동했으며 클라이언트가 모든 향후 요청에 새 URI를 사용해야 함을 나타냅니다.
4xx HTTP 오류(클라이언트 오류)
HTTP 4xx 오류 코드는 클라이언트 오류를 나타냅니다. 즉, 문제가 웹 브라우저나 앱과 같은 사용자 측에 있다는 의미입니다.
불량 400 요청. 구문 오류, 잘못된 데이터 또는 클라이언트 측의 다른 오류로 인해 서버가 요청을 처리할 수 없습니다.
401 승인되지 않음. 구문 오류, 잘못된 데이터 또는 클라이언트 측의 다른 오류로 인해 서버가 요청을 처리할 수 없습니다.
402 지불이 필요합니다. 이 코드는 현재 활성화되지 않았으며 향후 사용을 위해 예약되어 있습니다. 이는 향후 리소스에 액세스하기 전에 비용을 지불해야 함을 나타낼 수 있습니다.
HTTP 오류 403 금지됨. 클라이언트는 요청된 리소스에 액세스할 수 있는 권한이 없습니다.
404 찾을 수 없음. 요청한 리소스가 서버에 존재하지 않습니다. 이는 가장 흔한 사용자 오류 중 하나입니다.
405 메서드가 허용되지 않음. 서버는 이 리소스에서 지정된 요청 방법을 지원하지 않습니다. "허용" 헤더는 리소스에 대해 허용되는 방법을 나타냅니다. 이 코드를 사용하면
406 허용되지 않음. 서버는 클라이언트가 수용할 수 있는 형식으로 데이터를 제공할 수 없습니다.
407 프록시 인증이 필요합니다요청된 리소스에 액세스하려면 프록시 서버에서 인증이 필요합니다.
408 요청 시간 초과. 서버는 클라이언트로부터 요청을 받기를 기다리고 있었지만 시간이 초과되었습니다. "Retry-After" 헤더는 요청을 다시 시도할 수 있는 시간을 나타낼 수 있습니다.
409 갈등. 현재 리소스 상태와 충돌이 발생하여 요청을 완료할 수 없습니다.
사라진 410. 요청한 리소스는 이전에 존재했지만 현재 삭제되었으며 복원이 예상되지 않습니다.
411 길이 필요. 서버는 요청에서 콘텐츠 길이를 지정하도록 요구합니다. 이 정보가 없으면 오류로 간주됩니다.
412 전제 조건 실패요청의 전제 조건이 충족되지 않아 실행이 불가능합니다.
413 페이로드가 너무 큽니다. 요청 데이터의 크기가 서버 제한을 초과합니다.
414 URI가 너무 깁니다. 요청의 URI 길이가 허용 한도를 초과합니다.
415 지원되지 않는 미디어 유형. 서버가 요청에 제공된 데이터 유형을 처리할 수 없습니다.
416 범위가 만족스럽지 않음. 요청된 범위가 현재 서버 데이터와 일치하지 않아 HTTP 오류가 발생했습니다.
417 기대 실패. "Expect" 헤더의 예상 조건이 충족되지 않았습니다.
418 나는 찻주전자다. 이 코드는 농담으로 포함되었으며 사용자나 서버에 대한 실제 행동을 의미하지 않으며, 본격적인 오류가 아닙니다. 서버가 찻주전자이고 커피를 만들 수 없다는 것을 나타냅니다.
421 잘못된 요청. 요청이나 서버 구성의 오류로 인해 서버가 요청을 처리하지 않습니다.
422 처리할 수 없는 엔터티. 서버는 요청을 이해하지만 데이터 오류로 인해 요청을 처리하지 않습니다.
423 잠김. 리소스가 차단되어 처리할 수 없습니다.
424 종속성 실패요청은 실행되지 않은 다른 요청에 따라 달라집니다.
425 너무 이르다. 요청이 너무 일찍 도착하여 서버가 요청을 처리할 준비가 되지 않았습니다.
426 업그레이드 필요. 서버는 요청을 처리하기 위해 보다 고급 프로토콜을 사용해야 합니다.
428 전제 조건 필요. 서버는 요청에 특정 전제 조건이 지정되기를 요구합니다.
429 너무 많은 요청클라이언트가 짧은 시간에 너무 많은 요청을 보내서 서버의 제한을 초과했습니다.
431 요청 헤더 필드가 너무 큽니다.. 요청 헤더가 허용된 최대 크기를 초과했습니다.
449 다시 시도하세요. 현재 서버에서는 요청을 실행할 수 없지만, 다른 서버에서는 성공적으로 처리할 수 있으며, 클라이언트는 새 URI로 요청을 다시 시도해야 함을 나타냅니다.
451 법적 이유로 사용할 수 없음. 법적 이유로 해당 리소스를 이용할 수 없습니다.
499 클라이언트가 요청을 닫았습니다. 서버는 요청을 받았지만 처리가 완료되기 전에 클라이언트가 연결을 닫았습니다.
HTTP 5xx 오류(서버 오류)
HTTP 5xx 오류 코드는 서버 문제를 나타냅니다. 이 코드는 서버 측에서 발생한 문제를 나타내며, 서버가 사용자의 요청을 올바르게 처리할 수 없게 만듭니다. 자세히 살펴보겠습니다.
HTTP 오류 500 내부 서버 오류. 서버는 요청을 완료하지 못하게 하는 예상치 못한 상황에 직면합니다. "서버" 헤더는 오류가 발생한 서버를 나타낼 수 있습니다.
501 미구현. 서버는 클라이언트의 요청을 처리하는 데 필요한 기능을 지원하지 않습니다. "Via" 헤더는 오류가 발생한 프록시 서버를 나타낼 수 있습니다.
502 불량 게이트웨이. 이 코드는 프록시 역할을 하는 서버가 다른 서버로부터 잘못된 응답을 받았음을 의미합니다.
HTTP 오류 503 서비스를 사용할 수 없음. 서버가 일시적으로 요청을 처리할 수 없습니다.
504 게이트웨이 시간 초과프록시 역할을 하는 서버가 다른 서버로부터 적절한 응답을 받지 못했습니다.
505 HTTP 버전이 지원되지 않습니다. 서버는 요청에 지정된 HTTP 프로토콜 버전을 지원하지 않습니다. 백업 옵션으로 "Upgrade" 헤더는 지원되는 프로토콜을 나타낼 수 있습니다.
506 변형도 협상합니다. 이 상태는 HTTP/1.1에서는 사용되지 않습니다. 그러나 서버가 콘텐츠 협상 모호성을 초래하는 내부 구성을 감지하는 경우 이 응답을 사용할 수 있습니다.
507 저장 공간 부족. 서버의 저장 공간이 부족하여 서버가 요청을 이행할 수 없습니다.
508 루프 감지됨. 서버는 요청을 처리하는 동안 루프를 감지했으며, 무한 루프를 피하기 위해 요청을 완료하지 않습니다.
509 대역폭 제한이 초과되었습니다.. 이 오류는 요청이나 트래픽 양이 많아 서버의 대역폭이 초과될 때 발생합니다.
510 확장되지 않음. 클라이언트는 요청을 계속하려면 추가 확장자를 전송해야 합니다.
511 네트워크 인증이 필요합니다클라이언트는 네트워크에 액세스하려면 자신을 인증해야 합니다.
페이지 상태 코드를 확인하는 방법
이 섹션에서는 페이지 상태 코드를 확인하는 세 가지 주요 방법을 고려해 보겠습니다. 명령줄을 통해, 웹 브라우저를 사용하여, 독립적인 온라인 서비스를 사용하여. 이러한 각 방법에는 고유한 장점이 있으며 다양한 상황에서 유용할 수 있습니다.
명령줄을 통한 서버 응답 확인
명령줄은 웹 브라우저를 사용하지 않고도 페이지 상태 코드를 확인하는 편리한 방법을 제공합니다. 이 방법의 경우 명령줄을 열고 다음 명령을 사용해야 합니다.
curl -I http://page-address
이 명령은 지정된 URL에 HEAD 요청(헤더만 요청)을 보내고 HTTP 상태 코드를 포함한 정보를 표시합니다.
위의 예는 성공적인 응답 코드를 보여줍니다. 404 Not Found HTTP 오류와 같은 오류 코드가 포함된 응답의 경우 결과는 다음과 유사합니다.
브라우저 콘솔을 통해 서버 응답 확인
웹 브라우저 개발자 콘솔은 페이지 상태 코드 확인을 포함한 다양한 작업을 수행하기 위한 도구를 제공합니다. 서버 응답에서 HTTP 코드를 보려면 사용하는 브라우저에 따라 개발자 콘솔(Ctrl+Shift+K) 또는 (Ctrl+shift+J)을 열어야 합니다. 다음으로, "네트워크" 섹션을 선택하고 원하는 페이지를 로드합니다.
독립적인 도구를 사용하여 서버 응답 확인
웹사이트 페이지 상태 코드를 확인하는 도구를 제공하는 많은 수의 독립적인 온라인 서비스가 있습니다. 이러한 서비스를 사용하면 일반적으로 리소스의 가용성과 성능에 대한 개요를 빠르게 받을 수 있습니다. 모두 동일한 원칙을 사용하여 작동합니다. 예를 들어, 가장 인기 있는 리소스를 고려해 보겠습니다. httpsstatus.io
우선, 서비스 자체를 열고, 답을 알고 싶은 페이지의 주소를 입력한 후 확인을 요청해야 합니다.
결과는 페이지 하단에 표시됩니다.
맺음말
결론적으로, HTTP 오류 코드를 이해하고 읽을 수 있는 능력은 웹 개발 및 서버 유지 관리에 관여하는 모든 사람에게 핵심 기술이라는 점을 강조해야 합니다. 각 오류를 파악하고 이를 감지하는 도구를 탐색하면서 이러한 웹 서비스 측면을 효과적으로 관리하는 것이 왜 그렇게 중요한지 그 이유를 알게 됩니다.