HTTP 상태 코드
분류별로 상태 코드를 살펴보세요. 각 항목을 펼치면 해당 코드의 실제 HTTP 메시지 예시가 나옵니다.
1xx정보 응답 (Informational)
100Continue클라이언트는 요청 본문 전송을 계속해도 됩니다.예시 보기
→ REQUEST
POST /uploads HTTP/1.1 Host: example.com Content-Length: 5242880 Expect: 100-continue
← RESPONSE
HTTP/1.1 100 Continue (client now streams the 5 MB body) HTTP/1.1 201 Created Location: /uploads/8f2c
101Switching Protocols서버가 프로토콜 전환에 동의했습니다(예: WebSocket으로 업그레이드).예시 보기
→ REQUEST
GET /chat HTTP/1.1 Host: example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Sec-WebSocket-Version: 13
← RESPONSE
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
102Processing102 Processing 상태 코드의 의미, 오래 걸리는 요청에서 클라이언트 타임아웃을 막는 방식, 그리고 WebDAV에서 비롯된 배경을 살펴봅니다.예시 보기
→ REQUEST
GET /sample.pdf HTTP/1.1 Host: example.com
103Early Hints103 Early Hints가 무엇인지, 최종 응답이 도착하기 전에 리소스를 미리 불러와 페이지 로딩을 어떻게 앞당기는지 알아봅니다.예시 보기
→ REQUEST
GET /index.html HTTP/1.1 Host: example.com
2xx성공 (Success)
200OK요청이 성공했으며 응답에 요청한 리소스가 담겨 있습니다.예시 보기
→ REQUEST
GET /products/42 HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 200 OK Content-Type: application/json Content-Length: 51 { "id": 42, "name": "Trailhead Boot", "price": 189 }
201Created요청이 성공했고 새 리소스가 생성되었습니다.예시 보기
→ REQUEST
POST /products HTTP/1.1 Host: example.com Content-Type: application/json { "name": "Ridge Boot", "price": 210 }
← RESPONSE
HTTP/1.1 201 Created Location: /products/43 Content-Type: application/json { "id": 43, "name": "Ridge Boot", "price": 210 }
202Accepted202 Accepted 응답의 의미, 비동기 처리를 알리는 방식, 그리고 최종 결과를 폴링으로 받는 방법을 알아봅니다.예시 보기
→ REQUEST
POST /job HTTP/1.1 Host: example.com Content-Type: application/xml Content-Length: 68 <?xml version="1.0"?> <job> <id>125</id> <task>G01</task> </job>
203Non-Authoritative Information203 Non-Authoritative Information 응답의 의미, 프록시가 203을 반환하는 상황, 그리고 200 OK와의 차이를 알아봅니다.예시 보기
→ REQUEST
GET /instructions HTTP/1.1 Host: example.com
204No Content성공했으며 응답 본문은 없습니다.예시 보기
→ REQUEST
DELETE /products/43 HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 204 No Content (no body)
205Reset Content205 Reset Content 응답의 의미, 클라이언트에 폼 데이터를 지우라고 지시하는 방식, 그리고 204와의 차이를 알아봅니다.예시 보기
→ REQUEST
POST /signup HTTP/1.1 Host: example.com Content-Type: application/xml Content-Length: 92 <?xml version="1.0"?> <person> <name>David Smith</name> <country>USA</country> </person>
206Partial Content206 Partial Content 응답, 이어받기를 가능하게 하는 Range 요청, 그리고 멀티파트 범위 응답을 이해합니다.예시 보기
→ REQUEST
GET /videos/sample.mp4 HTTP/1.1 Host: example.com Range: bytes=25000-75000
207Multi-Status207 Multi-Status 응답의 의미, WebDAV가 리소스별 결과를 207로 보고하는 방식, 그리고 XML 본문을 파싱하는 방법을 알아봅니다.예시 보기
<d:response> <d:href>http://example.re/tasks</d:href> <d:status>HTTP/1.1 200 OK</d:status> </d:response>
208Already Reported208 Already Reported 상태 코드의 의미와, WebDAV가 207 응답 안에서 208을 써서 리소스 중복 나열을 피하는 방식을 이해합니다.예시 보기
→ REQUEST
PROPFIND /main/ HTTP/1.1 Host: example.com Depth: infinity DAV: bind Content-Type: application/xml; charset="utf-8" Content-Length: 139 <?xml version="1.0" encoding="utf-8" ?> <d:propfind xmlns:d="DAV:"> <d:prop> <d:name/> <d:link/> </d:prop> </d:propfind>
226IM Used226 IM Used 응답의 의미와, 델타 인코딩 및 인스턴스 조작이 HTTP 응답의 대역폭을 아끼는 방식을 알아봅니다.예시 보기
→ REQUEST
GET /livingdocs/current_specs.pdf HTTP/1.1 Host: example.com Accept-Encoding: gzip
3xx리다이렉션 (Redirection)
300Multiple Choices300 Multiple Choices 응답의 의미, 서버가 300을 보내는 상황, 그리고 클라이언트가 여러 표현 중에서 고르는 방법을 이해합니다.예시 보기
→ REQUEST
GET /tech-news HTTP/1.1 Host: example.com
301Moved Permanently리소스가 Location에 있는 주소로 영구 이전되었습니다.예시 보기
→ REQUEST
GET /old-path HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 301 Moved Permanently Location: https://example.com/new-path
302Found리소스가 일시적으로 Location 위치에 있습니다.예시 보기
→ REQUEST
GET /account HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 302 Found Location: /login
303See Other303 See Other 리다이렉트의 동작, 303이 항상 GET으로 바뀌는 이유, 그리고 POST·PUT·DELETE 뒤에 303을 쓰는 시점을 알아봅니다.예시 보기
→ REQUEST
DELETE /tasks/314 HTTP/1.1 Host: example.com
304Not Modified캐시가 유효하므로 로컬 사본을 그대로 쓸 수 있습니다.예시 보기
→ REQUEST
GET /logo.png HTTP/1.1 Host: example.com If-None-Match: "9c2e-abc123"
← RESPONSE
HTTP/1.1 304 Not Modified ETag: "9c2e-abc123" (no body — reuse the cached copy)
305Use Proxy더 이상 쓰이지 않는 305 Use Proxy 상태 코드와, 보안 우려로 제거된 이유 및 대체 수단을 알아봅니다.예시 보기
→ REQUEST
GET /document.pdf HTTP/1.1 Host: example.com
307Temporary Redirect307 Temporary Redirect의 동작, 302와 달리 요청 메서드를 보존하는 이유, 그리고 302나 303 대신 307을 쓰는 시점을 이해합니다.예시 보기
→ REQUEST
GET /news.html HTTP/1.1 Host: example.com
308Permanent Redirect308 Permanent Redirect의 동작, 301과 달리 요청 메서드를 보존하는 점, 그리고 검색 엔진이 링크 가치를 이전하는 방식을 이해합니다.예시 보기
→ REQUEST
POST /api/v1/orders HTTP/1.1 Host: example.com Content-Type: application/json Content-Length: 35 {"item": "widget", "quantity": 10}
4xx클라이언트 오류 (Client Error)
400Bad Request요청 구문이나 매개변수가 올바르지 않습니다.예시 보기
→ REQUEST
POST /products HTTP/1.1 Host: example.com Content-Type: application/json { "price": "not-a-number" }
← RESPONSE
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "price must be a number" }
401Unauthorized인증이 필요합니다.예시 보기
→ REQUEST
GET /account HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 401 Unauthorized WWW-Authenticate: Bearer realm="api"
402Payment Required402 Payment Required를 이해합니다. 예약된 상태 코드라는 점, Shopify와 Stripe의 비표준 사용, 그리고 SEO 영향을 다룹니다.예시 보기
→ REQUEST
GET /tech-news HTTP/1.1 Host: example.com
403Forbidden인증은 되었으나 권한이 없습니다.예시 보기
→ REQUEST
DELETE /users/1 HTTP/1.1 Host: example.com Authorization: Bearer <valid-token>
← RESPONSE
HTTP/1.1 403 Forbidden Content-Type: application/json { "error": "admin role required" }
404Not Found대상 리소스를 찾을 수 없습니다.예시 보기
→ REQUEST
GET /products/9999 HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "product 9999 not found" }
405Method Not Allowed이 리소스에서는 허용되지 않는 메서드입니다.예시 보기
→ REQUEST
DELETE /products HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 405 Method Not Allowed Allow: GET, POST, QUERY
406Not Acceptable406 Not Acceptable 오류 해결. 콘텐츠 협상, Accept 헤더, 그리고 충족 불가능한 요청을 서버가 어떻게 처리하는지 이해합니다.예시 보기
Accept: text/html, text/plain
407Proxy Authentication Required407 Proxy Authentication Required 오류 해결. 프록시 인증 방식과 Proxy-Authenticate 헤더를 알아봅니다.예시 보기
→ REQUEST
GET /documents/tech-news HTTP/1.1 Host: example.com
408Request Timeout408 Request Timeout 오류 해결. 서버가 느린 연결을 닫는 이유와 전송 문제를 푸는 방법을 이해합니다.예시 보기
→ REQUEST
PUT /docs HTTP/1.1 Host: example.com Content-Type: application/pdf Content-Length: 10000
409Conflict409 Conflict 오류 해결. 리소스 상태 충돌, 해소 전략, 그리고 API에서 흔한 사용 사례를 이해합니다.예시 보기
→ REQUEST
POST /blog/update?postid=111&flag=like HTTP/1.1 Host: example.com
410Gone410 Gone을 이해합니다. 리소스의 영구 삭제, 404와의 차이, 캐시 동작, 그리고 SEO 색인 영향을 다룹니다.예시 보기
→ REQUEST
GET /holiday-promotion-Jan-2021.pdf HTTP/1.1 Host: example.com
411Length Required411 Length Required 오류 해결. Content-Length 헤더가 필요한 시점과 이 클라이언트 오류를 푸는 방법을 알아봅니다.예시 보기
→ REQUEST
PUT /docs HTTP/1.1 Host: example.com Content-Type: application/pdf <PDF file included as message body>
412Precondition Failed412 Precondition Failed 오류 해결. 조건부 요청 헤더, If-Match 실패, 그리고 갱신 유실 방지를 알아봅니다.예시 보기
→ REQUEST
POST /blog/update?postid=111&task=reply HTTP/1.1 Host: example.com If-Unmodified-Since: Fri, 1 Jan 2021 00:00:00 GMT Content-Type: text/plain Content-Length: 45 <Message body contains reply-text from the client>
413Content Too Large413 Content Too Large 오류 해결. 서버 크기 제한, Expect 헤더 사용법, 그리고 과대 업로드 처리 방법을 알아봅니다.예시 보기
→ REQUEST
PUT /docs HTTP/1.1 Host: example.com Content-Type: application/pdf Content-Length: 10000
414URI Too Long414 URI Too Long 오류 해결. URL 길이 제한, 브라우저 제약, 그리고 요청 URI를 줄이는 방법을 이해합니다.예시 보기
→ REQUEST
GET /<...a_long_URI...> HTTP/1.1 Host: example.com
415Unsupported Media Type415 Unsupported Media Type 오류 해결. Content-Type 및 Content-Encoding 검증과 문제 해결 절차를 알아봅니다.예시 보기
→ REQUEST
POST /blog/newmessage HTTP/1.1 Host: example.com Content-Type: text/plain Content-Length: 24 Good morning, Everybody!
416Range Not Satisfiable416 Range Not Satisfiable 오류 해결. 바이트 범위 요청, Content-Range 헤더, 그리고 해결 방법을 이해합니다.예시 보기
Content-Range: bytes */512
417Expectation Failed417 Expectation Failed 오류 해결. Expect 헤더와 100-continue 메커니즘의 동작, 그리고 417이 반환되는 시점을 알아봅니다.예시 보기
→ REQUEST
PUT /docs HTTP/1.1 Host: example.com Content-Type: application/pdf Content-Length: 10000 Expect: 100-continue
418I'm a teapot나는 찻주전자입니다 — RFC 2324의 이스터에그 상태 코드.예시 보기
→ REQUEST
BREW /coffee HTTP/1.1 Host: teapot.example
← RESPONSE
HTTP/1.1 418 I'm a teapot Content-Type: text/plain I refuse to brew coffee — I am a teapot.
421Misdirected Request421 Misdirected Request 오류 해결. 커넥션 재사용, HTTP/2 라우팅, 그리고 Alt-Svc 문제 해결을 이해합니다.예시 보기
→ REQUEST
GET /tech-news HTTP/2 Host: example.com
422Unprocessable Content422 Unprocessable Content 오류 해결. 400 및 415와의 차이, 그리고 의미적 검증 실패를 푸는 방법을 알아봅니다.예시 보기
→ REQUEST
POST /requests HTTP/1.1 Host: example.com Content-Type: application/xml Content-Length: 101 <?xml version="1.0" encoding="utf-8"?> <request> <id>100</id> <action>start</action> </request>
423Locked423 Locked 오류 해결. WebDAV 파일 잠금 메커니즘, Lock-Token 헤더, 전제조건 코드, 그리고 리소스 잠금 해제를 알아봅니다.예시 보기
→ REQUEST
PUT /documents/ HTTP/1.1 Host: example.com Content-Type: application/pdf Content-Length: 10000 <PDF file transferred>
424Failed Dependency424 Failed Dependency 오류 해결. WebDAV 멀티스테이터스 응답, PROPPATCH 작업, 그리고 의존성 해소를 알아봅니다.예시 보기
→ REQUEST
PROPPATCH /update.html HTTP/1.1 Host: example.com Content-Type: application/xml; charset="utf-8" Content-Length: 305 <?xml version="1.0" encoding="utf-8" ?> <d:propertyupdate xmlns:d="DAV:" xmlns:z="urn:example"> <d:set> <d:prop> <z:seats> <z:seatnumber>100</z:seatnumber> <z:seatnumber>101</z:seatnumber> </z:seats> </d:prop> <d:prop> <d:name>Smith</d:name> </d:prop> </d:set> </d:propertyupdate>
425Too Early425 Too Early를 이해합니다. TLS 얼리 데이터의 재전송 위험, Early-Data 헤더, 그리고 서버 측 보호 전략을 다룹니다.예시 보기
→ REQUEST
GET /tech-news HTTP/1.1 Host: example.com Early-Data: 1
426Upgrade Required426 Upgrade Required 오류 해결. 프로토콜 업그레이드 요구사항, Upgrade 헤더, 그리고 해결 절차를 알아봅니다.예시 보기
→ REQUEST
GET /tech-news HTTP/1.1 Host: example.com
428Precondition Required428 Precondition Required 오류 해결. If-Match 같은 조건부 헤더와 갱신 유실을 막는 방법을 알아봅니다.예시 보기
→ REQUEST
PUT /reservations.txt HTTP/1.1 Host: example.com
429Too Many Requests요청이 너무 많습니다. 속도 제한이 걸렸습니다.예시 보기
→ REQUEST
GET /api/search HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 429 Too Many Requests Retry-After: 30 Content-Type: application/json { "error": "rate limit exceeded" }
431Request Header Fields Too Large431 Request Header Fields Too Large 오류 해결. 헤더 크기 제한, 쿠키 줄이기, 그리고 문제 해결 절차를 알아봅니다.예시 보기
→ REQUEST
GET /tech-news HTTP/1.1 Host: example.com Cookie: first_cookie=<very_long>; second_cookie=<long_again>
451Unavailable For Legal Reasons451 Unavailable For Legal Reasons를 이해합니다. 검열 응답, 법적 요구, 그리고 Exchange ActiveSync에서의 사용을 다룹니다.예시 보기
→ REQUEST
GET /tech-trial-updates HTTP/1.1 Host: example.com
5xx서버 오류 (Server Error)
500Internal Server Error서버 내부 오류가 발생했습니다.예시 보기
→ REQUEST
GET /report HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "unexpected server error" }
501Not Implemented501 Not Implemented 오류 해결. 지원하지 않는 HTTP 메서드, 405와의 차이, 그리고 서버 설정을 이해합니다.예시 보기
→ REQUEST
POST /requests?id=111&flag=start HTTP/1.1 Host: example.com
502Bad Gateway게이트웨이가 업스트림에서 잘못된 응답을 받았습니다.예시 보기
→ REQUEST
GET /api/users HTTP/1.1 Host: gateway.example.com
← RESPONSE
HTTP/1.1 502 Bad Gateway Content-Type: text/plain upstream sent an invalid response
503Service Unavailable서비스를 일시적으로 사용할 수 없습니다(과부하 또는 점검 중).예시 보기
→ REQUEST
GET / HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 503 Service Unavailable Retry-After: 120 Content-Type: text/plain under maintenance — try again shortly
504Gateway Timeout504 Gateway Timeout 오류 해결. 업스트림 타임아웃 원인, 프록시 설정, 그리고 문제 해결을 알아봅니다.예시 보기
→ REQUEST
GET /news HTTP/1.1 Host: example.com
505HTTP Version Not Supported505 HTTP Version Not Supported 오류 해결. 프로토콜 버전 불일치와 서버 호환성을 알아봅니다.예시 보기
→ REQUEST
GET / HTTP/2 Host: example.com
506Variant Also Negotiates506 Variant Also Negotiates를 이해합니다. 투명한 콘텐츠 협상의 순환 참조와 서버 설정 오류를 다룹니다.예시 보기
→ REQUEST
GET /docs HTTP/1.1 Host: example.com Accept: text/html, application/xhtml+xml
507Insufficient Storage507 Insufficient Storage 오류 해결. WebDAV 저장 공간 제한, 413과의 차이, 그리고 해결 방법을 이해합니다.예시 보기
→ REQUEST
PUT /docs HTTP/1.1 Host: example.com Content-Type: application/pdf Content-Length: 10000 <PDF file included in message body>
508Loop Detected508 Loop Detected 오류 해결. WebDAV 무한 루프와 cPanel 리소스 제한 문제 해결을 이해합니다.예시 보기
→ REQUEST
PROPFIND /shared/ HTTP/1.1 Host: example.com Depth: infinity Content-Type: application/xml
510Not Extended510 Not Extended를 이해합니다. 폐기된 HTTP Extension Framework와 그 역사적 위치, 그리고 사용 방식을 다룹니다.예시 보기
→ REQUEST
GET /resource HTTP/1.1 Host: example.com
511Network Authentication Required511 Network Authentication Required 오류 해결. 캡티브 포털, Wi-Fi 로그인 페이지, 그리고 클라이언트 처리 방식을 이해합니다.예시 보기
→ REQUEST
GET / HTTP/1.1 Host: example.com