Every time a client (like a browser, API, or proxy) sends a request to a web server, the server responds with a status code that describes how it handled that request.
These codes are grouped into five main categories based on their first digit:
- 1xx — Informational: The request was received and is being processed.
- 2xx — Success: The request was successfully received, understood, and accepted.
- 3xx — Redirection: The client must take further action to complete the request.
- 4xx — Client Errors: The request contains bad syntax or cannot be fulfilled.
- 5xx — Server Errors: The server failed to fulfill a valid request.
For proxy users, these codes provide critical insight into whether a connection issue originates from the proxy, the target website, or the network in between.
1xx – Informational
<table class="GeneratedTable">
<thead>
<tr>
<th>Status Code</th>
<th>Definition</th>
<th>Next Steps</th>
</tr>
</thead>
<tbody>
<tr>
<td>100 Continue</td>
<td>The initial part of a request has been received, and the client should continue with the request.</td>
<td>Continue sending the request.</td>
</tr>
<tr>
<td>101 Switching Protocols</td>
<td>The server is switching to a different protocol as requested by the client.</td>
<td>Ensure the client can handle the new protocol.</td>
</tr>
<tr>
<td>102 Processing</td>
<td>The server has received the request and is processing it, but no response is available yet.</td>
<td>Wait for the server to finish processing.</td>
</tr>
<tr>
<td>103 Early Hints</td>
<td>Provides preliminary information about the request, typically to optimize loading.</td>
<td>Utilize the hints to improve performance or user experience.</td>
</tr>
</tbody>
</table>
2xx - Success
<table class="GeneratedTable">
<thead>
<tr>
<th>Status Code</th>
<th>Definition</th>
<th>Next Steps</th>
</tr>
</thead>
<tbody>
<tr>
<td>200 OK</td>
<td>The request was successful, and the server returned the requested resource.</td>
<td>No action needed; the request was successful.</td>
</tr>
<tr>
<td>201 Created</td>
<td>The request has been fulfilled, leading to the creation of a new resource.</td>
<td>No further action needed; a new resource has been created.</td>
</tr>
<tr>
<td>202 Accepted</td>
<td>The request has been accepted for processing, but the processing is not complete.</td>
<td>Wait for processing to complete; check for updates if necessary.</td>
</tr>
<tr>
<td>203 Non-Authoritative Information</td>
<td>The request was successful, but the returned metadata may not be from the original server.</td>
<td>Review the returned data to ensure it meets the requirements.</td>
</tr>
<tr>
<td>204 No Content</td>
<td>The request was successful, but no content is returned in the response.</td>
<td>No action needed; the request was successful, but there's no content to display.</td>
</tr>
<tr>
<td>205 Reset Content</td>
<td>The request was successful, and the client should reset the view.</td>
<td>Reset the document view or form to its original state.</td>
</tr>
<tr>
<td>206 Partial Content</td>
<td>The server is returning partial content of the requested resource, usually due to a range header.</td>
<td>Continue requesting more content as needed; verify the received data.</td>
</tr>
</tbody>
</table>
3xx – Redirection
<table class="GeneratedTable">
<thead>
<tr>
<th>Status Code</th>
<th>Definition</th>
<th>Next Steps</th>
</tr>
</thead>
<tbody>
<tr>
<td>300 Multiple Choices</td>
<td>The request has multiple possible responses. The user or client should choose one of them.</td>
<td>Choose one of the provided options, or modify the request to be more specific.</td>
</tr>
<tr>
<td>301 Moved Permanently</td>
<td>The requested resource has been moved to a new URL, and all future requests should use the new URL.</td>
<td>Update bookmarks or references to use the new URL.</td>
</tr>
<tr>
<td>302 Found</td>
<td>The requested resource resides temporarily under a different URL, but the client should continue to use the original URL for future requests.</td>
<td>Follow the temporary URL, but continue using the original URL for future requests.</td>
</tr>
<tr>
<td>303 See Other</td>
<td>The response to the request can be found under a different URL using the GET method.</td>
<td>Make a GET request to the provided URL to retrieve the resource.</td>
</tr>
<tr>
<td>304 Not Modified</td>
<td>The resource has not been modified since the last request, and the client can use the cached version.</td>
<td>Use the cached version of the resource.</td>
</tr>
<tr>
<td>305 Use Proxy</td>
<td>The requested resource must be accessed through the proxy specified in the response.</td>
<td>Send the request again using the specified proxy.</td>
</tr>
<tr>
<td>307 Temporary Redirect</td>
<td>The requested resource resides temporarily under a different URL, and the client should follow that URL for this request.</td>
<td>Follow the temporary URL for this request, but use the original URL for future requests.</td>
</tr>
<tr>
<td>308 Permanent Redirect</td>
<td>The requested resource has been permanently moved to a new URL, and all future requests should use the new URL.</td>
<td>Update all references to use the new URL.</td>
</tr>
</tbody>
</table>
4xx – Client Error
<table class="GeneratedTable">
<thead>
<tr>
<th>Status Code</th>
<th>Definition</th>
<th>Next Steps</th>
</tr>
</thead>
<tbody>
<tr>
<td>400 Bad Request</td>
<td>The server cannot process the request due to a client error (e.g., malformed request syntax).</td>
<td>Check the request syntax and parameters, then try again.</td>
</tr>
<tr>
<td>401 Unauthorized</td>
<td>Authentication is required to access the requested resource.</td>
<td>Provide valid authentication credentials and try again.</td>
</tr>
<tr>
<td>402 Payment Required</td>
<td>Reserved for future use; typically indicates that payment is required to access the resource.</td>
<td>If applicable, complete the payment process.</td>
</tr>
<tr>
<td>403 Forbidden</td>
<td>The server understands the request but refuses to authorize it.</td>
<td>Ensure you have the necessary permissions to access the resource.</td>
</tr>
<tr>
<td>404 Not Found</td>
<td>The server cannot find the requested resource.</td>
<td>Check the URL for errors or try searching for the resource.</td>
</tr>
<tr>
<td>405 Method Not Allowed</td>
<td>The request method is not supported for the requested resource.</td>
<td>Check if the correct HTTP method (GET, POST, etc.) is being used.</td>
</tr>
<tr>
<td>406 Not Acceptable</td>
<td>The server cannot generate a response that is acceptable according to the client’s Accept headers.</td>
<td>Adjust the request headers to accept a valid response format.</td>
</tr>
<tr>
<td>407 Proxy Authentication Required</td>
<td>The client must first authenticate with the proxy.</td>
<td>Provide valid proxy authentication credentials.</td>
</tr>
<tr>
<td>408 Request Timeout</td>
<td>The server timed out waiting for the request.</td>
<td>Resend the request, ensuring it is sent within the time frame allowed by the server.</td>
</tr>
<tr>
<td>409 Conflict</td>
<td>The request could not be processed due to a conflict with the current state of the resource.</td>
<td>Resolve the conflict before retrying the request.</td>
</tr>
<tr>
<td>410 Gone</td>
<td>The requested resource is no longer available and will not be available again.</td>
<td>Remove or update references to the resource as it has been permanently deleted.</td>
</tr>
<tr>
<td>411 Length Required</td>
<td>The server requires the Content-Length header to be present in the request.</td>
<td>Include the Content-Length header in the request and try again.</td>
</tr>
<tr>
<td>412 Precondition Failed</td>
<td>The server does not meet one of the preconditions specified in the request headers.</td>
<td>Review the preconditions in the request headers and adjust as needed.</td>
</tr>
<tr>
<td>413 Payload Too Large</td>
<td>The request entity is larger than the server is willing or able to process.</td>
<td>Reduce the size of the request payload and try again.</td>
</tr>
<tr>
<td>414 URI Too Long</td>
<td>The URI requested by the client is longer than the server is willing to interpret.</td>
<td>Shorten the URI or reduce the complexity of the request.</td>
</tr>
<tr>
<td>415 Unsupported Media Type</td>
<td>The media format of the requested data is not supported by the server.</td>
<td>Use a supported media format in the request.</td>
</tr>
<tr>
<td>416 Range Not Satisfiable</td>
<td>The range specified in the Range header cannot be fulfilled by the server.</td>
<td>Modify the range request or try accessing the full resource.</td>
</tr>
<tr>
<td>417 Expectation Failed</td>
<td>The server cannot meet the requirements of the Expect request-header field.</td>
<td>Remove the Expect header or adjust its value and try again.</td>
</tr>
<tr>
<td>429 Too Many Requests</td>
<td>The user has sent too many requests from the same IP address in a given amount of time ("rate limiting").</td>
<td>Wait and try again after some time; consider reducing the request rate or spreading requests across multiple IPs by employing residential proxies.</td>
</tr>
</tbody>
</table>
5xx – Server Error
<table class="GeneratedTable">
<thead>
<tr>
<th>Status Code</th>
<th>Definition</th>
<th>Next Steps</th>
</tr>
</thead>
<tbody>
<tr>
<td>500 Internal Server Error</td>
<td>The server encountered an unexpected condition that prevented it from fulfilling the request.</td>
<td>Check server logs for errors and fix any issues causing the problem.</td>
</tr>
<tr>
<td>501 Not Implemented</td>
<td>The server does not support the functionality required to fulfill the request.</td>
<td>Ensure the server software is capable of handling the request; consider updating or replacing the server.</td>
</tr>
<tr>
<td>502 Bad Gateway</td>
<td>The server, while acting as a gateway or proxy, received an invalid response from an upstream server.</td>
<td>Check the upstream server and network connections; resolve any issues.</td>
</tr>
<tr>
<td>503 Service Unavailable</td>
<td>The server is currently unable to handle the request, often due to temporary overloading or maintenance.</td>
<td>Try again later; check server load or maintenance status.</td>
</tr>
<tr>
<td>504 Gateway Timeout</td>
<td>The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.</td>
<td>Check the upstream server and network connections; ensure proper timeout settings.</td>
</tr>
<tr>
<td>505 HTTP Version Not Supported</td>
<td>The server does not support the HTTP protocol version used in the request.</td>
<td>Use a supported HTTP version or update the server software.</td>
</tr>
<tr>
<td>506 Variant Also Negotiates</td>
<td>The server has an internal configuration error, causing a circular reference.</td>
<td>Correct the server's configuration to resolve the circular reference.</td>
</tr>
<tr>
<td>507 Insufficient Storage</td>
<td>The server is unable to store the representation needed to complete the request.</td>
<td>Free up disk space or increase storage capacity on the server.</td>
</tr>
<tr>
<td>508 Loop Detected</td>
<td>The server detected an infinite loop while processing a request.</td>
<td>Investigate and fix the loop in the server's configuration or code.</td>
</tr>
<tr>
<td>510 Not Extended</td>
<td>Further extensions to the request are required for the server to fulfill it.</td>
<td>Ensure the client request includes the necessary extensions.</td>
</tr>
<tr>
<td>511 Network Authentication Required</td>
<td>The client needs to authenticate to gain network access.</td>
<td>Provide valid network authentication credentials.</td>
</tr>
</tbody>
</table>
Каков ваш вариант использования?
Пообщайтесь с одним из наших фанатов данных и получите бесплатную пробную версию объемом 2 ГБ, адаптированную для вашего проекта.
Сценарии использования
Monitoring Proxy Connections
When using proxies for data collection or web automation, status codes reveal where a request failed—the proxy, the target, or the network. For example, a 403 error often indicates an IP block, while a 407 means proxy authentication failed.
Optimizing Web Scraping
Scrapers use status codes to adjust behavior dynamically. A 429 Too Many Requests triggers automatic throttling or proxy rotation, helping maintain access to target websites.
Лучшие практики
Log and Categorize Status Codes
Always record status codes during scraping or API operations. Recognizing patterns (like spikes in 403 or 429 errors) helps fine-tune proxy settings and user agents.
Use Retry Logic and Rotation
Implement retries and IP rotation for transient 5xx or 429 responses. This improves uptime and reduces the risk of bans.
Monitor Response Trends
Set alerts for unusual error rates to detect issues early—such as expired proxy credentials or target website changes.
Заключение
HTTP status codes act as the communication bridge between client and server, signaling whether a request succeeded, failed, or needs adjustment. For teams relying on proxies, understanding these codes helps pinpoint and resolve issues faster, improving connection reliability and data accuracy.
Готовы повысить эффективность сбора данных?
Зарегистрируйтесь сейчас и заставьте нашу прокси-сеть работать на вас.
Часто задаваемый вопрос
What do HTTP status codes mean?
+
They describe how a server responded to a client’s request—whether it succeeded, failed, or needs more action.
Why are they important for proxies?
+
They help identify if an issue comes from your proxy, target website, or client configuration.
What’s the difference between 4xx and 5xx errors?
+
4xx errors indicate client-side problems (e.g., bad request or unauthorized access), while 5xx errors indicate server-side failures.
Can I fix HTTP errors using proxies?
+
In many cases, yes. Rotating IPs, using residential proxies, or authenticating properly often resolves 4xx and 5xx issues.