4xx vs 5xx HTTP Errors — What's the Difference?

4xx status codes indicate a problem with the client's request (like invalid input or missing authentication); 5xx status codes indicate the server failed to...

Published October 5, 2026

4xx status codes indicate a problem with the client's request (like invalid input or missing authentication); 5xx status codes indicate the server failed to fulfill an otherwise valid request.

Why they differ

  • A 4xx means the client should change something about the request before retrying it as-is
  • A 5xx means the problem is on the server's side — retrying the identical request might work once the server-side issue is resolved

How to choose

  • When debugging a 4xx, check the request itself — its data, headers, and authentication
  • When debugging a 5xx, check server-side logs, application exceptions, and the health of dependencies like databases

FAQ

Should a client automatically retry on error?

Retrying often makes sense for some 5xx errors (like 503 or 504) since the issue may be transient, but retrying a 4xx without changing the request will simply fail again.

More HTTP articles