443 код ошибки http

Page semi-protected

From Wikipedia, the free encyclopedia

This is a list of Hypertext Transfer Protocol (HTTP) response status codes. Status codes are issued by a server in response to a client’s request made to the server. It includes codes from IETF Request for Comments (RFCs), other specifications, and some additional codes used in some common applications of the HTTP. The first digit of the status code specifies one of five standard classes of responses. The optional message phrases shown are typical, but any human-readable alternative may be provided, or none at all.

Unless otherwise stated, the status code is part of the HTTP standard (RFC 9110).

The Internet Assigned Numbers Authority (IANA) maintains the official registry of HTTP status codes.[1]

All HTTP response status codes are separated into five classes or categories. The first digit of the status code defines the class of response, while the last two digits do not have any classifying or categorization role. There are five classes defined by the standard:

  • 1xx informational response – the request was received, continuing process
  • 2xx successful – the request was successfully received, understood, and accepted
  • 3xx redirection – further action needs to be taken in order to complete the request
  • 4xx client error – the request contains bad syntax or cannot be fulfilled
  • 5xx server error – the server failed to fulfil an apparently valid request

1xx informational response

An informational response indicates that the request was received and understood. It is issued on a provisional basis while request processing continues. It alerts the client to wait for a final response. The message consists only of the status line and optional header fields, and is terminated by an empty line. As the HTTP/1.0 standard did not define any 1xx status codes, servers must not[note 1] send a 1xx response to an HTTP/1.0 compliant client except under experimental conditions.

100 Continue
The server has received the request headers and the client should proceed to send the request body (in the case of a request for which a body needs to be sent; for example, a POST request). Sending a large request body to a server after a request has been rejected for inappropriate headers would be inefficient. To have a server check the request’s headers, a client must send Expect: 100-continue as a header in its initial request and receive a 100 Continue status code in response before sending the body. If the client receives an error code such as 403 (Forbidden) or 405 (Method Not Allowed) then it should not send the request’s body. The response 417 Expectation Failed indicates that the request should be repeated without the Expect header as it indicates that the server does not support expectations (this is the case, for example, of HTTP/1.0 servers).[2]
101 Switching Protocols
The requester has asked the server to switch protocols and the server has agreed to do so.
102 Processing (WebDAV; RFC 2518)
A WebDAV request may contain many sub-requests involving file operations, requiring a long time to complete the request. This code indicates that the server has received and is processing the request, but no response is available yet.[3] This prevents the client from timing out and assuming the request was lost. The status code is deprecated.[4]
103 Early Hints (RFC 8297)
Used to return some response headers before final HTTP message.[5]

2xx success

This class of status codes indicates the action requested by the client was received, understood, and accepted.[1]

200 OK
Standard response for successful HTTP requests. The actual response will depend on the request method used. In a GET request, the response will contain an entity corresponding to the requested resource. In a POST request, the response will contain an entity describing or containing the result of the action.
201 Created
The request has been fulfilled, resulting in the creation of a new resource.[6]
202 Accepted
The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon, and may be disallowed when processing occurs.
203 Non-Authoritative Information (since HTTP/1.1)
The server is a transforming proxy (e.g. a Web accelerator) that received a 200 OK from its origin, but is returning a modified version of the origin’s response.[7][8]
204 No Content
The server successfully processed the request, and is not returning any content.
205 Reset Content
The server successfully processed the request, asks that the requester reset its document view, and is not returning any content.
206 Partial Content
The server is delivering only part of the resource (byte serving) due to a range header sent by the client. The range header is used by HTTP clients to enable resuming of interrupted downloads, or split a download into multiple simultaneous streams.
207 Multi-Status (WebDAV; RFC 4918)
The message body that follows is by default an XML message and can contain a number of separate response codes, depending on how many sub-requests were made.[9]
208 Already Reported (WebDAV; RFC 5842)
The members of a DAV binding have already been enumerated in a preceding part of the (multistatus) response, and are not being included again.
226 IM Used (RFC 3229)
The server has fulfilled a request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.[10]

3xx redirection

This class of status code indicates the client must take additional action to complete the request. Many of these status codes are used in URL redirection.[1]

A user agent may carry out the additional action with no user interaction only if the method used in the second request is GET or HEAD. A user agent may automatically redirect a request. A user agent should detect and intervene to prevent cyclical redirects.[11]

300 Multiple Choices
Indicates multiple options for the resource from which the client may choose (via agent-driven content negotiation). For example, this code could be used to present multiple video format options, to list files with different filename extensions, or to suggest word-sense disambiguation.
301 Moved Permanently
This and all future requests should be directed to the given URI.
302 Found (Previously «Moved temporarily»)
Tells the client to look at (browse to) another URL. The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect with the same method (the original describing phrase was «Moved Temporarily»),[12] but popular browsers implemented 302 redirects by changing the method to GET. Therefore, HTTP/1.1 added status codes 303 and 307 to distinguish between the two behaviours.[11]
303 See Other (since HTTP/1.1)
The response to the request can be found under another URI using the GET method. When received in response to a POST (or PUT/DELETE), the client should presume that the server has received the data and should issue a new GET request to the given URI.
304 Not Modified
Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match. In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy.
305 Use Proxy (since HTTP/1.1)
The requested resource is available only through a proxy, the address for which is provided in the response. For security reasons, many HTTP clients (such as Mozilla Firefox and Internet Explorer) do not obey this status code.
306 Switch Proxy
No longer used. Originally meant «Subsequent requests should use the specified proxy.»
307 Temporary Redirect (since HTTP/1.1)
In this case, the request should be repeated with another URI; however, future requests should still use the original URI. In contrast to how 302 was historically implemented, the request method is not allowed to be changed when reissuing the original request. For example, a POST request should be repeated using another POST request.
308 Permanent Redirect
This and all future requests should be directed to the given URI. 308 parallel the behaviour of 301, but does not allow the HTTP method to change. So, for example, submitting a form to a permanently redirected resource may continue smoothly.

4xx client errors

A The Wikimedia 404 message

This class of status code is intended for situations in which the error seems to have been caused by the client. Except when responding to a HEAD request, the server should include an entity containing an explanation of the error situation, and whether it is a temporary or permanent condition. These status codes are applicable to any request method. User agents should display any included entity to the user.

400 Bad Request
The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing).
401 Unauthorized
Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. The response must include a WWW-Authenticate header field containing a challenge applicable to the requested resource. See Basic access authentication and Digest access authentication. 401 semantically means «unauthorised», the user does not have valid authentication credentials for the target resource.
Some sites incorrectly issue HTTP 401 when an IP address is banned from the website (usually the website domain) and that specific address is refused permission to access a website.[citation needed]
402 Payment Required
Reserved for future use. The original intention was that this code might be used as part of some form of digital cash or micropayment scheme, as proposed, for example, by GNU Taler,[14] but that has not yet happened, and this code is not widely used. Google Developers API uses this status if a particular developer has exceeded the daily limit on requests.[15] Sipgate uses this code if an account does not have sufficient funds to start a call.[16] Shopify uses this code when the store has not paid their fees and is temporarily disabled.[17] Stripe uses this code for failed payments where parameters were correct, for example blocked fraudulent payments.[18]
403 Forbidden
The request contained valid data and was understood by the server, but the server is refusing action. This may be due to the user not having the necessary permissions for a resource or needing an account of some sort, or attempting a prohibited action (e.g. creating a duplicate record where only one is allowed). This code is also typically used if the request provided authentication by answering the WWW-Authenticate header field challenge, but the server did not accept that authentication. The request should not be repeated.
404 Not Found
The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.
405 Method Not Allowed
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
406 Not Acceptable
The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request. See Content negotiation.
407 Proxy Authentication Required
The client must first authenticate itself with the proxy.
408 Request Timeout
The server timed out waiting for the request. According to HTTP specifications: «The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.»
409 Conflict
Indicates that the request could not be processed because of conflict in the current state of the resource, such as an edit conflict between multiple simultaneous updates.
410 Gone
Indicates that the resource requested was previously in use but is no longer available and will not be available again. This should be used when a resource has been intentionally removed and the resource should be purged. Upon receiving a 410 status code, the client should not request the resource in the future. Clients such as search engines should remove the resource from their indices. Most use cases do not require clients and search engines to purge the resource, and a «404 Not Found» may be used instead.
411 Length Required
The request did not specify the length of its content, which is required by the requested resource.
412 Precondition Failed
The server does not meet one of the preconditions that the requester put on the request header fields.
413 Payload Too Large
The request is larger than the server is willing or able to process. Previously called «Request Entity Too Large» in RFC 2616.[19]
414 URI Too Long
The URI provided was too long for the server to process. Often the result of too much data being encoded as a query-string of a GET request, in which case it should be converted to a POST request. Called «Request-URI Too Long» previously in RFC 2616.[20]
415 Unsupported Media Type
The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format.
416 Range Not Satisfiable
The client has asked for a portion of the file (byte serving), but the server cannot supply that portion. For example, if the client asked for a part of the file that lies beyond the end of the file. Called «Requested Range Not Satisfiable» previously RFC 2616.[21]
417 Expectation Failed
The server cannot meet the requirements of the Expect request-header field.[22]
418 I’m a teapot (RFC 2324, RFC 7168)
This code was defined in 1998 as one of the traditional IETF April Fools’ jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol, and is not expected to be implemented by actual HTTP servers. The RFC specifies this code should be returned by teapots requested to brew coffee.[23] This HTTP status is used as an Easter egg in some websites, such as Google.com’s «I’m a teapot» easter egg.[24][25][26] Sometimes, this status code is also used as a response to a blocked request, instead of the more appropriate 403 Forbidden.[27][28]
421 Misdirected Request
The request was directed at a server that is not able to produce a response (for example because of connection reuse).
422 Unprocessable Entity
The request was well-formed but was unable to be followed due to semantic errors.[9]
423 Locked (WebDAV; RFC 4918)
The resource that is being accessed is locked.[9]
424 Failed Dependency (WebDAV; RFC 4918)
The request failed because it depended on another request and that request failed (e.g., a PROPPATCH).[9]
425 Too Early (RFC 8470)
Indicates that the server is unwilling to risk processing a request that might be replayed.
426 Upgrade Required
The client should switch to a different protocol such as TLS/1.3, given in the Upgrade header field.
428 Precondition Required (RFC 6585)
The origin server requires the request to be conditional. Intended to prevent the ‘lost update’ problem, where a client GETs a resource’s state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.[29]
429 Too Many Requests (RFC 6585)
The user has sent too many requests in a given amount of time. Intended for use with rate-limiting schemes.[29]
431 Request Header Fields Too Large (RFC 6585)
The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.[29]
451 Unavailable For Legal Reasons (RFC 7725)
A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource.[30] The code 451 was chosen as a reference to the novel Fahrenheit 451 (see the Acknowledgements in the RFC).

5xx server errors

The server failed to fulfil a request.

Response status codes beginning with the digit «5» indicate cases in which the server is aware that it has encountered an error or is otherwise incapable of performing the request. Except when responding to a HEAD request, the server should include an entity containing an explanation of the error situation, and indicate whether it is a temporary or permanent condition. Likewise, user agents should display any included entity to the user. These response codes are applicable to any request method.

500 Internal Server Error
A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.
501 Not Implemented
The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
502 Bad Gateway
The server was acting as a gateway or proxy and received an invalid response from the upstream server.
503 Service Unavailable
The server cannot handle the request (because it is overloaded or down for maintenance). Generally, this is a temporary state.[31]
504 Gateway Timeout
The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.
505 HTTP Version Not Supported
The server does not support the HTTP version used in the request.
506 Variant Also Negotiates (RFC 2295)
Transparent content negotiation for the request results in a circular reference.[32]
507 Insufficient Storage (WebDAV; RFC 4918)
The server is unable to store the representation needed to complete the request.[9]
508 Loop Detected (WebDAV; RFC 5842)
The server detected an infinite loop while processing the request (sent instead of 208 Already Reported).
510 Not Extended (RFC 2774)
Further extensions to the request are required for the server to fulfil it.[33]
511 Network Authentication Required (RFC 6585)
The client needs to authenticate to gain network access. Intended for use by intercepting proxies used to control access to the network (e.g., «captive portals» used to require agreement to Terms of Service before granting full Internet access via a Wi-Fi hotspot).[29]

Unofficial codes

The following codes are not specified by any standard.

419 Page Expired (Laravel Framework)
Used by the Laravel Framework when a CSRF Token is missing or expired.
420 Method Failure (Spring Framework)
A deprecated response used by the Spring Framework when a method has failed.[34]
420 Enhance Your Calm (Twitter)
Returned by version 1 of the Twitter Search and Trends API when the client is being rate limited; versions 1.1 and later use the 429 Too Many Requests response code instead.[35] The phrase «Enhance your calm» comes from the 1993 movie Demolition Man, and its association with this number is likely a reference to cannabis.[citation needed]
430 Request Header Fields Too Large (Shopify)
Used by Shopify, instead of the 429 Too Many Requests response code, when too many URLs are requested within a certain time frame.[36]
450 Blocked by Windows Parental Controls (Microsoft)
The Microsoft extension code indicated when Windows Parental Controls are turned on and are blocking access to the requested webpage.[37]
498 Invalid Token (Esri)
Returned by ArcGIS for Server. Code 498 indicates an expired or otherwise invalid token.[38]
499 Token Required (Esri)
Returned by ArcGIS for Server. Code 499 indicates that a token is required but was not submitted.[38]
509 Bandwidth Limit Exceeded (Apache Web Server/cPanel)
The server has exceeded the bandwidth specified by the server administrator; this is often used by shared hosting providers to limit the bandwidth of customers.[39]
529 Site is overloaded
Used by Qualys in the SSLLabs server testing API to signal that the site can’t process the request.[40]
530 Site is frozen
Used by the Pantheon Systems web platform to indicate a site that has been frozen due to inactivity.[41]
598 (Informal convention) Network read timeout error
Used by some HTTP proxies to signal a network read timeout behind the proxy to a client in front of the proxy.[42]
599 Network Connect Timeout Error
An error used by some HTTP proxies to signal a network connect timeout behind the proxy to a client in front of the proxy.

Internet Information Services

Microsoft’s Internet Information Services (IIS) web server expands the 4xx error space to signal errors with the client’s request.

440 Login Time-out
The client’s session has expired and must log in again.[43]
449 Retry With
The server cannot honour the request because the user has not provided the required information.[44]
451 Redirect
Used in Exchange ActiveSync when either a more efficient server is available or the server cannot access the users’ mailbox.[45] The client is expected to re-run the HTTP AutoDiscover operation to find a more appropriate server.[46]

IIS sometimes uses additional decimal sub-codes for more specific information,[47] however these sub-codes only appear in the response payload and in documentation, not in the place of an actual HTTP status code.

nginx

The nginx web server software expands the 4xx error space to signal issues with the client’s request.[48][49]

444 No Response
Used internally[50] to instruct the server to return no information to the client and close the connection immediately.
494 Request header too large
Client sent too large request or too long header line.
495 SSL Certificate Error
An expansion of the 400 Bad Request response code, used when the client has provided an invalid client certificate.
496 SSL Certificate Required
An expansion of the 400 Bad Request response code, used when a client certificate is required but not provided.
497 HTTP Request Sent to HTTPS Port
An expansion of the 400 Bad Request response code, used when the client has made a HTTP request to a port listening for HTTPS requests.
499 Client Closed Request
Used when the client has closed the request before the server could send a response.

Cloudflare

Cloudflare’s reverse proxy service expands the 5xx series of errors space to signal issues with the origin server.[51]

520 Web Server Returned an Unknown Error
The origin server returned an empty, unknown, or unexpected response to Cloudflare.[52]
521 Web Server Is Down
The origin server refused connections from Cloudflare. Security solutions at the origin may be blocking legitimate connections from certain Cloudflare IP addresses.
522 Connection Timed Out
Cloudflare timed out contacting the origin server.
523 Origin Is Unreachable
Cloudflare could not reach the origin server; for example, if the DNS records for the origin server are incorrect or missing.
524 A Timeout Occurred
Cloudflare was able to complete a TCP connection to the origin server, but did not receive a timely HTTP response.
525 SSL Handshake Failed
Cloudflare could not negotiate a SSL/TLS handshake with the origin server.
526 Invalid SSL Certificate
Cloudflare could not validate the SSL certificate on the origin web server. Also used by Cloud Foundry’s gorouter.
527 Railgun Error
Error 527 indicates an interrupted connection between Cloudflare and the origin server’s Railgun server.[53]
530
Error 530 is returned along with a 1xxx error.[54]

AWS Elastic Load Balancer

Amazon’s Elastic Load Balancing adds a few custom return codes

460
Client closed the connection with the load balancer before the idle timeout period elapsed. Typically when client timeout is sooner than the Elastic Load Balancer’s timeout.[55]
463
The load balancer received an X-Forwarded-For request header with more than 30 IP addresses.[55]
464
Incompatible protocol versions between Client and Origin server.[55]
561 Unauthorized
An error around authentication returned by a server registered with a load balancer. You configured a listener rule to authenticate users, but the identity provider (IdP) returned an error code when authenticating the user.[55]

Caching warning codes (obsoleted)

The following caching related warning codes were specified under RFC 7234. Unlike the other status codes above, these were not sent as the response status in the HTTP protocol, but as part of the «Warning» HTTP header.[56][57]

Since this «Warning» header is often neither sent by servers nor acknowledged by clients, this header and its codes were obsoleted by the HTTP Working Group in 2022 with RFC 9111.[58]

110 Response is Stale
The response provided by a cache is stale (the content’s age exceeds a maximum age set by a Cache-Control header or heuristically chosen lifetime).
111 Revalidation Failed
The cache was unable to validate the response, due to an inability to reach the origin server.
112 Disconnected Operation
The cache is intentionally disconnected from the rest of the network.
113 Heuristic Expiration
The cache heuristically chose a freshness lifetime greater than 24 hours and the response’s age is greater than 24 hours.
199 Miscellaneous Warning
Arbitrary, non-specific warning. The warning text may be logged or presented to the user.
214 Transformation Applied
Added by a proxy if it applies any transformation to the representation, such as changing the content encoding, media type or the like.
299 Miscellaneous Persistent Warning
Same as 199, but indicating a persistent warning.

See also

  • Custom error pages
  • List of FTP server return codes
  • List of HTTP header fields
  • List of SMTP server return codes
  • Common Log Format

Explanatory notes

  1. ^ Emphasised words and phrases such as must and should represent interpretation guidelines as given by RFC 2119

References

  1. ^ a b c «Hypertext Transfer Protocol (HTTP) Status Code Registry». Iana.org. Archived from the original on December 11, 2011. Retrieved January 8, 2015.
  2. ^ Fielding, Roy T. «RFC 9110: HTTP Semantics and Content, Section 10.1.1 «Expect»«.
  3. ^ Goland, Yaronn; Whitehead, Jim; Faizi, Asad; Carter, Steve R.; Jensen, Del (February 1999). HTTP Extensions for Distributed Authoring – WEBDAV. IETF. doi:10.17487/RFC2518. RFC 2518. Retrieved October 24, 2009.
  4. ^ «102 Processing — HTTP MDN». 102 status code is deprecated
  5. ^ Oku, Kazuho (December 2017). An HTTP Status Code for Indicating Hints. IETF. doi:10.17487/RFC8297. RFC 8297. Retrieved December 20, 2017.
  6. ^ Stewart, Mark; djna. «Create request with POST, which response codes 200 or 201 and content». Stack Overflow. Archived from the original on October 11, 2016. Retrieved October 16, 2015.
  7. ^ «RFC 9110: HTTP Semantics and Content, Section 15.3.4».
  8. ^ «RFC 9110: HTTP Semantics and Content, Section 7.7».
  9. ^ a b c d e Dusseault, Lisa, ed. (June 2007). HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV). IETF. doi:10.17487/RFC4918. RFC 4918. Retrieved October 24, 2009.
  10. ^ Delta encoding in HTTP. IETF. January 2002. doi:10.17487/RFC3229. RFC 3229. Retrieved February 25, 2011.
  11. ^ a b «RFC 9110: HTTP Semantics and Content, Section 15.4 «Redirection 3xx»«.
  12. ^ Berners-Lee, Tim; Fielding, Roy T.; Nielsen, Henrik Frystyk (May 1996). Hypertext Transfer Protocol – HTTP/1.0. IETF. doi:10.17487/RFC1945. RFC 1945. Retrieved October 24, 2009.
  13. ^ «The GNU Taler tutorial for PHP Web shop developers 0.4.0». docs.taler.net. Archived from the original on November 8, 2017. Retrieved October 29, 2017.
  14. ^ «Google API Standard Error Responses». 2016. Archived from the original on May 25, 2017. Retrieved June 21, 2017.
  15. ^ «Sipgate API Documentation». Archived from the original on July 10, 2018. Retrieved July 10, 2018.
  16. ^ «Shopify Documentation». Archived from the original on July 25, 2018. Retrieved July 25, 2018.
  17. ^ «Stripe API Reference – Errors». stripe.com. Retrieved October 28, 2019.
  18. ^ «RFC2616 on status 413». Tools.ietf.org. Archived from the original on March 7, 2011. Retrieved November 11, 2015.
  19. ^ «RFC2616 on status 414». Tools.ietf.org. Archived from the original on March 7, 2011. Retrieved November 11, 2015.
  20. ^ «RFC2616 on status 416». Tools.ietf.org. Archived from the original on March 7, 2011. Retrieved November 11, 2015.
  21. ^ TheDeadLike. «HTTP/1.1 Status Codes 400 and 417, cannot choose which». serverFault. Archived from the original on October 10, 2015. Retrieved October 16, 2015.
  22. ^ Larry Masinter (April 1, 1998). Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0). doi:10.17487/RFC2324. RFC 2324. Any attempt to brew coffee with a teapot should result in the error code «418 I’m a teapot». The resulting entity body MAY be short and stout.
  23. ^ I’m a teapot
  24. ^ Barry Schwartz (August 26, 2014). «New Google Easter Egg For SEO Geeks: Server Status 418, I’m A Teapot». Search Engine Land. Archived from the original on November 15, 2015. Retrieved November 4, 2015.
  25. ^ «Google’s Teapot». Retrieved October 23, 2017.[dead link]
  26. ^ «Enable extra web security on a website». DreamHost. Retrieved December 18, 2022.
  27. ^ «I Went to a Russian Website and All I Got Was This Lousy Teapot». PCMag. Retrieved December 18, 2022.
  28. ^ a b c d Nottingham, M.; Fielding, R. (April 2012). «RFC 6585 – Additional HTTP Status Codes». Request for Comments. Internet Engineering Task Force. Archived from the original on May 4, 2012. Retrieved May 1, 2012.
  29. ^ Bray, T. (February 2016). «An HTTP Status Code to Report Legal Obstacles». ietf.org. Archived from the original on March 4, 2016. Retrieved March 7, 2015.
  30. ^ alex. «What is the correct HTTP status code to send when a site is down for maintenance?». Stack Overflow. Archived from the original on October 11, 2016. Retrieved October 16, 2015.
  31. ^ Holtman, Koen; Mutz, Andrew H. (March 1998). Transparent Content Negotiation in HTTP. IETF. doi:10.17487/RFC2295. RFC 2295. Retrieved October 24, 2009.
  32. ^ Nielsen, Henrik Frystyk; Leach, Paul; Lawrence, Scott (February 2000). An HTTP Extension Framework. IETF. doi:10.17487/RFC2774. RFC 2774. Retrieved October 24, 2009.
  33. ^ «Enum HttpStatus». Spring Framework. org.springframework.http. Archived from the original on October 25, 2015. Retrieved October 16, 2015.
  34. ^ «Twitter Error Codes & Responses». Twitter. 2014. Archived from the original on September 27, 2017. Retrieved January 20, 2014.
  35. ^ «HTTP Status Codes and SEO: what you need to know». ContentKing. Retrieved August 9, 2019.
  36. ^ «Screenshot of error page». Archived from the original (bmp) on May 11, 2013. Retrieved October 11, 2009.
  37. ^ a b «Using token-based authentication». ArcGIS Server SOAP SDK. Archived from the original on September 26, 2014. Retrieved September 8, 2014.
  38. ^ «HTTP Error Codes and Quick Fixes». Docs.cpanel.net. Archived from the original on November 23, 2015. Retrieved October 15, 2015.
  39. ^ «SSL Labs API v3 Documentation». github.com.
  40. ^ «Platform Considerations | Pantheon Docs». pantheon.io. Archived from the original on January 6, 2017. Retrieved January 5, 2017.
  41. ^ «HTTP status codes — ascii-code.com». www.ascii-code.com. Archived from the original on January 7, 2017. Retrieved December 23, 2016.
  42. ^
    «Error message when you try to log on to Exchange 2007 by using Outlook Web Access: «440 Login Time-out»«. Microsoft. 2010. Retrieved November 13, 2013.
  43. ^ «2.2.6 449 Retry With Status Code». Microsoft. 2009. Archived from the original on October 5, 2009. Retrieved October 26, 2009.
  44. ^ «MS-ASCMD, Section 3.1.5.2.2». Msdn.microsoft.com. Archived from the original on March 26, 2015. Retrieved January 8, 2015.
  45. ^ «Ms-oxdisco». Msdn.microsoft.com. Archived from the original on July 31, 2014. Retrieved January 8, 2015.
  46. ^ «The HTTP status codes in IIS 7.0». Microsoft. July 14, 2009. Archived from the original on April 9, 2009. Retrieved April 1, 2009.
  47. ^ «ngx_http_request.h». nginx 1.9.5 source code. nginx inc. Archived from the original on September 19, 2017. Retrieved January 9, 2016.
  48. ^ «ngx_http_special_response.c». nginx 1.9.5 source code. nginx inc. Archived from the original on May 8, 2018. Retrieved January 9, 2016.
  49. ^ «return» directive Archived March 1, 2018, at the Wayback Machine (http_rewrite module) documentation.
  50. ^ «Troubleshooting: Error Pages». Cloudflare. Archived from the original on March 4, 2016. Retrieved January 9, 2016.
  51. ^ «Error 520: web server returns an unknown error». Cloudflare.
  52. ^ «527 Error: Railgun Listener to origin error». Cloudflare. Archived from the original on October 13, 2016. Retrieved October 12, 2016.
  53. ^ «Error 530». Cloudflare. Retrieved November 1, 2019.
  54. ^ a b c d «Troubleshoot Your Application Load Balancers – Elastic Load Balancing». docs.aws.amazon.com. Retrieved May 17, 2023.
  55. ^ «Hypertext Transfer Protocol (HTTP/1.1): Caching». datatracker.ietf.org. Retrieved September 25, 2021.
  56. ^ «Warning — HTTP | MDN». developer.mozilla.org. Retrieved August 15, 2021. CC BY-SA icon.svg Some text was copied from this source, which is available under a Creative Commons Attribution-ShareAlike 2.5 Generic (CC BY-SA 2.5) license.
  57. ^ «RFC 9111: HTTP Caching, Section 5.5 «Warning»«. June 2022.

External links

  • «RFC 9110: HTTP Semantics and Content, Section 15 «Status Codes»«.
  • Hypertext Transfer Protocol (HTTP) Status Code Registry at the Internet Assigned Numbers Authority
  • HTTP status codes at http-statuscode.com
  • MDN status code reference at mozilla.org
  1. What are the HTTP error codes?
  2. What is the status code for error?
  3. What are some common HTTP status codes?
  4. What does bad HTTP status mean?
  5. What is a 443 error?
  6. What do error codes mean?
  7. How can I get HTTP status code?
  8. How do I get my HTTP status code back?
  9. What is 3xx status code?

What are the HTTP error codes?

HTTP response status codes

  • Informational responses ( 100 – 199 )
  • Successful responses ( 200 – 299 )
  • Redirects ( 300 – 399 )
  • Client errors ( 400 – 499 )
  • Server errors ( 500 – 599 )

What is the status code for error?

5xx: Server Error

It means the server failed to fulfill an apparently valid request. HTTP status codes are extensible and HTTP applications are not required to understand the meaning of all the registered status codes.

What are some common HTTP status codes?

The most important status codes for SEOs

  • HTTP Status Code 200 — OK. …
  • HTTP Status Code 301 — Permanent Redirect. …
  • HTTP Status Code 302 — Temporary Redirect. …
  • HTTP Status Code 404 — Not Found. …
  • HTTP Status Code 410 — Gone. …
  • HTTP Status Code 500 — Internal Server Error. …
  • HTTP Status Code 503 — Service Unavailable.

What does bad HTTP status mean?

The 400 Bad Request error is an HTTP status code that means that the request you sent to the website server, often something simple like a request to load a web page, was somehow incorrect or corrupted and the server couldn’t understand it.

What is a 443 error?

443 Error Code is caused in one way or another by misconfigured system files in your windows operating system. … Error 443 can occur due to system file damage of Windows operating system. Therefore, Windows registry keys might be damaged, and your computer might not operate properly.

What do error codes mean?

When a problem occurs loading a webpage, an error code and message will appear in the browser instead of the webpage. The error code and message that appears is determined by the type of error. Typically the error code consists of a 3 to 4 digit number and a brief message describing the error.

How can I get HTTP status code?

In the main window of the program, enter your website homepage URL and click on the ‘Start’ button. As soon as crawling is complete, you will have all status codes in the corresponding table column. Pages with the 4xx and 5xx HTTP status codes will be gathered into special issue reports.

How do I get my HTTP status code back?

There’s also a catchall method, one that can return any HTTP status code: StatusCode(HttpStatusCode statusCode) : Returns the specified status code.

Shortcut Methods

  1. BadRequest() : Returns 400 — Bad Request.
  2. NotFound() : Returns 404 — Not Found.
  3. InternalServerError() : Returns 500 — Internal Server Error.

What is 3xx status code?

10.3 Redirection 3xx

This class of status code indicates that further action needs to be taken by the user agent in order to fulfill the request. The action required MAY be carried out by the user agent without interaction with the user if and only if the method used in the second request is GET or HEAD.

Page semi-protected

From Wikipedia, the free encyclopedia

This is a list of Hypertext Transfer Protocol (HTTP) response status codes. Status codes are issued by a server in response to a client’s request made to the server. It includes codes from IETF Request for Comments (RFCs), other specifications, and some additional codes used in some common applications of the HTTP. The first digit of the status code specifies one of five standard classes of responses. The optional message phrases shown are typical, but any human-readable alternative may be provided, or none at all.

Unless otherwise stated, the status code is part of the HTTP standard (RFC 9110).

The Internet Assigned Numbers Authority (IANA) maintains the official registry of HTTP status codes.[1]

All HTTP response status codes are separated into five classes or categories. The first digit of the status code defines the class of response, while the last two digits do not have any classifying or categorization role. There are five classes defined by the standard:

  • 1xx informational response – the request was received, continuing process
  • 2xx successful – the request was successfully received, understood, and accepted
  • 3xx redirection – further action needs to be taken in order to complete the request
  • 4xx client error – the request contains bad syntax or cannot be fulfilled
  • 5xx server error – the server failed to fulfil an apparently valid request

1xx informational response

An informational response indicates that the request was received and understood. It is issued on a provisional basis while request processing continues. It alerts the client to wait for a final response. The message consists only of the status line and optional header fields, and is terminated by an empty line. As the HTTP/1.0 standard did not define any 1xx status codes, servers must not[note 1] send a 1xx response to an HTTP/1.0 compliant client except under experimental conditions.

100 Continue
The server has received the request headers and the client should proceed to send the request body (in the case of a request for which a body needs to be sent; for example, a POST request). Sending a large request body to a server after a request has been rejected for inappropriate headers would be inefficient. To have a server check the request’s headers, a client must send Expect: 100-continue as a header in its initial request and receive a 100 Continue status code in response before sending the body. If the client receives an error code such as 403 (Forbidden) or 405 (Method Not Allowed) then it should not send the request’s body. The response 417 Expectation Failed indicates that the request should be repeated without the Expect header as it indicates that the server does not support expectations (this is the case, for example, of HTTP/1.0 servers).[2]
101 Switching Protocols
The requester has asked the server to switch protocols and the server has agreed to do so.
102 Processing (WebDAV; RFC 2518)
A WebDAV request may contain many sub-requests involving file operations, requiring a long time to complete the request. This code indicates that the server has received and is processing the request, but no response is available yet.[3] This prevents the client from timing out and assuming the request was lost.
103 Early Hints (RFC 8297)
Used to return some response headers before final HTTP message.[4]

2xx success

This class of status codes indicates the action requested by the client was received, understood, and accepted.[1]

200 OK
Standard response for successful HTTP requests. The actual response will depend on the request method used. In a GET request, the response will contain an entity corresponding to the requested resource. In a POST request, the response will contain an entity describing or containing the result of the action.
201 Created
The request has been fulfilled, resulting in the creation of a new resource.[5]
202 Accepted
The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon, and may be disallowed when processing occurs.
203 Non-Authoritative Information (since HTTP/1.1)
The server is a transforming proxy (e.g. a Web accelerator) that received a 200 OK from its origin, but is returning a modified version of the origin’s response.[6][7]
204 No Content
The server successfully processed the request, and is not returning any content.
205 Reset Content
The server successfully processed the request, asks that the requester reset its document view, and is not returning any content.
206 Partial Content
The server is delivering only part of the resource (byte serving) due to a range header sent by the client. The range header is used by HTTP clients to enable resuming of interrupted downloads, or split a download into multiple simultaneous streams.
207 Multi-Status (WebDAV; RFC 4918)
The message body that follows is by default an XML message and can contain a number of separate response codes, depending on how many sub-requests were made.[8]
208 Already Reported (WebDAV; RFC 5842)
The members of a DAV binding have already been enumerated in a preceding part of the (multistatus) response, and are not being included again.
226 IM Used (RFC 3229)
The server has fulfilled a request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.[9]

3xx redirection

This class of status code indicates the client must take additional action to complete the request. Many of these status codes are used in URL redirection.[1]

A user agent may carry out the additional action with no user interaction only if the method used in the second request is GET or HEAD. A user agent may automatically redirect a request. A user agent should detect and intervene to prevent cyclical redirects.[10]

300 Multiple Choices
Indicates multiple options for the resource from which the client may choose (via agent-driven content negotiation). For example, this code could be used to present multiple video format options, to list files with different filename extensions, or to suggest word-sense disambiguation.
301 Moved Permanently
This and all future requests should be directed to the given URI.
302 Found (Previously «Moved temporarily»)
Tells the client to look at (browse to) another URL. The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect with the same method (the original describing phrase was «Moved Temporarily»),[11] but popular browsers implemented 302 redirects by changing the method to GET. Therefore, HTTP/1.1 added status codes 303 and 307 to distinguish between the two behaviours.[10]
303 See Other (since HTTP/1.1)
The response to the request can be found under another URI using the GET method. When received in response to a POST (or PUT/DELETE), the client should presume that the server has received the data and should issue a new GET request to the given URI.
304 Not Modified
Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match. In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy.
305 Use Proxy (since HTTP/1.1)
The requested resource is available only through a proxy, the address for which is provided in the response. For security reasons, many HTTP clients (such as Mozilla Firefox and Internet Explorer) do not obey this status code.
306 Switch Proxy
No longer used. Originally meant «Subsequent requests should use the specified proxy.»
307 Temporary Redirect (since HTTP/1.1)
In this case, the request should be repeated with another URI; however, future requests should still use the original URI. In contrast to how 302 was historically implemented, the request method is not allowed to be changed when reissuing the original request. For example, a POST request should be repeated using another POST request.
308 Permanent Redirect
This and all future requests should be directed to the given URI. 308 parallel the behaviour of 301, but does not allow the HTTP method to change. So, for example, submitting a form to a permanently redirected resource may continue smoothly.

4xx client errors

A The Wikimedia 404 message

This class of status code is intended for situations in which the error seems to have been caused by the client. Except when responding to a HEAD request, the server should include an entity containing an explanation of the error situation, and whether it is a temporary or permanent condition. These status codes are applicable to any request method. User agents should display any included entity to the user.

400 Bad Request
The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing).
401 Unauthorized
Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. The response must include a WWW-Authenticate header field containing a challenge applicable to the requested resource. See Basic access authentication and Digest access authentication. 401 semantically means «unauthorised», the user does not have valid authentication credentials for the target resource.
Some sites incorrectly issue HTTP 401 when an IP address is banned from the website (usually the website domain) and that specific address is refused permission to access a website.[citation needed]
402 Payment Required
Reserved for future use. The original intention was that this code might be used as part of some form of digital cash or micropayment scheme, as proposed, for example, by GNU Taler,[13] but that has not yet happened, and this code is not widely used. Google Developers API uses this status if a particular developer has exceeded the daily limit on requests.[14] Sipgate uses this code if an account does not have sufficient funds to start a call.[15] Shopify uses this code when the store has not paid their fees and is temporarily disabled.[16] Stripe uses this code for failed payments where parameters were correct, for example blocked fraudulent payments.[17]
403 Forbidden
The request contained valid data and was understood by the server, but the server is refusing action. This may be due to the user not having the necessary permissions for a resource or needing an account of some sort, or attempting a prohibited action (e.g. creating a duplicate record where only one is allowed). This code is also typically used if the request provided authentication by answering the WWW-Authenticate header field challenge, but the server did not accept that authentication. The request should not be repeated.
404 Not Found
The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.
405 Method Not Allowed
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
406 Not Acceptable
The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request. See Content negotiation.
407 Proxy Authentication Required
The client must first authenticate itself with the proxy.
408 Request Timeout
The server timed out waiting for the request. According to HTTP specifications: «The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.»
409 Conflict
Indicates that the request could not be processed because of conflict in the current state of the resource, such as an edit conflict between multiple simultaneous updates.
410 Gone
Indicates that the resource requested was previously in use but is no longer available and will not be available again. This should be used when a resource has been intentionally removed and the resource should be purged. Upon receiving a 410 status code, the client should not request the resource in the future. Clients such as search engines should remove the resource from their indices. Most use cases do not require clients and search engines to purge the resource, and a «404 Not Found» may be used instead.
411 Length Required
The request did not specify the length of its content, which is required by the requested resource.
412 Precondition Failed
The server does not meet one of the preconditions that the requester put on the request header fields.
413 Payload Too Large
The request is larger than the server is willing or able to process. Previously called «Request Entity Too Large» in RFC 2616.[18]
414 URI Too Long
The URI provided was too long for the server to process. Often the result of too much data being encoded as a query-string of a GET request, in which case it should be converted to a POST request. Called «Request-URI Too Long» previously in RFC 2616.[19]
415 Unsupported Media Type
The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format.
416 Range Not Satisfiable
The client has asked for a portion of the file (byte serving), but the server cannot supply that portion. For example, if the client asked for a part of the file that lies beyond the end of the file. Called «Requested Range Not Satisfiable» previously RFC 2616.[20]
417 Expectation Failed
The server cannot meet the requirements of the Expect request-header field.[21]
418 I’m a teapot (RFC 2324, RFC 7168)
This code was defined in 1998 as one of the traditional IETF April Fools’ jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol, and is not expected to be implemented by actual HTTP servers. The RFC specifies this code should be returned by teapots requested to brew coffee.[22] This HTTP status is used as an Easter egg in some websites, such as Google.com’s «I’m a teapot» easter egg.[23][24][25] Sometimes, this status code is also used as a response to a blocked request, instead of the more appropriate 403 Forbidden.[26][27]
421 Misdirected Request
The request was directed at a server that is not able to produce a response (for example because of connection reuse).
422 Unprocessable Entity
The request was well-formed but was unable to be followed due to semantic errors.[8]
423 Locked (WebDAV; RFC 4918)
The resource that is being accessed is locked.[8]
424 Failed Dependency (WebDAV; RFC 4918)
The request failed because it depended on another request and that request failed (e.g., a PROPPATCH).[8]
425 Too Early (RFC 8470)
Indicates that the server is unwilling to risk processing a request that might be replayed.
426 Upgrade Required
The client should switch to a different protocol such as TLS/1.3, given in the Upgrade header field.
428 Precondition Required (RFC 6585)
The origin server requires the request to be conditional. Intended to prevent the ‘lost update’ problem, where a client GETs a resource’s state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.[28]
429 Too Many Requests (RFC 6585)
The user has sent too many requests in a given amount of time. Intended for use with rate-limiting schemes.[28]
431 Request Header Fields Too Large (RFC 6585)
The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.[28]
451 Unavailable For Legal Reasons (RFC 7725)
A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource.[29] The code 451 was chosen as a reference to the novel Fahrenheit 451 (see the Acknowledgements in the RFC).

5xx server errors

The server failed to fulfil a request.

Response status codes beginning with the digit «5» indicate cases in which the server is aware that it has encountered an error or is otherwise incapable of performing the request. Except when responding to a HEAD request, the server should include an entity containing an explanation of the error situation, and indicate whether it is a temporary or permanent condition. Likewise, user agents should display any included entity to the user. These response codes are applicable to any request method.

500 Internal Server Error
A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.
501 Not Implemented
The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
502 Bad Gateway
The server was acting as a gateway or proxy and received an invalid response from the upstream server.
503 Service Unavailable
The server cannot handle the request (because it is overloaded or down for maintenance). Generally, this is a temporary state.[30]
504 Gateway Timeout
The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.
505 HTTP Version Not Supported
The server does not support the HTTP version used in the request.
506 Variant Also Negotiates (RFC 2295)
Transparent content negotiation for the request results in a circular reference.[31]
507 Insufficient Storage (WebDAV; RFC 4918)
The server is unable to store the representation needed to complete the request.[8]
508 Loop Detected (WebDAV; RFC 5842)
The server detected an infinite loop while processing the request (sent instead of 208 Already Reported).
510 Not Extended (RFC 2774)
Further extensions to the request are required for the server to fulfil it.[32]
511 Network Authentication Required (RFC 6585)
The client needs to authenticate to gain network access. Intended for use by intercepting proxies used to control access to the network (e.g., «captive portals» used to require agreement to Terms of Service before granting full Internet access via a Wi-Fi hotspot).[28]

Unofficial codes

The following codes are not specified by any standard.

419 Page Expired (Laravel Framework)
Used by the Laravel Framework when a CSRF Token is missing or expired.
420 Method Failure (Spring Framework)
A deprecated response used by the Spring Framework when a method has failed.[33]
420 Enhance Your Calm (Twitter)
Returned by version 1 of the Twitter Search and Trends API when the client is being rate limited; versions 1.1 and later use the 429 Too Many Requests response code instead.[34] The phrase «Enhance your calm» comes from the 1993 movie Demolition Man, and its association with this number is likely a reference to cannabis.[citation needed]
430 Request Header Fields Too Large (Shopify)
Used by Shopify, instead of the 429 Too Many Requests response code, when too many URLs are requested within a certain time frame.[35]
450 Blocked by Windows Parental Controls (Microsoft)
The Microsoft extension code indicated when Windows Parental Controls are turned on and are blocking access to the requested webpage.[36]
498 Invalid Token (Esri)
Returned by ArcGIS for Server. Code 498 indicates an expired or otherwise invalid token.[37]
499 Token Required (Esri)
Returned by ArcGIS for Server. Code 499 indicates that a token is required but was not submitted.[37]
509 Bandwidth Limit Exceeded (Apache Web Server/cPanel)
The server has exceeded the bandwidth specified by the server administrator; this is often used by shared hosting providers to limit the bandwidth of customers.[38]
529 Site is overloaded
Used by Qualys in the SSLLabs server testing API to signal that the site can’t process the request.[39]
530 Site is frozen
Used by the Pantheon Systems web platform to indicate a site that has been frozen due to inactivity.[40]
598 (Informal convention) Network read timeout error
Used by some HTTP proxies to signal a network read timeout behind the proxy to a client in front of the proxy.[41]
599 Network Connect Timeout Error
An error used by some HTTP proxies to signal a network connect timeout behind the proxy to a client in front of the proxy.

Internet Information Services

Microsoft’s Internet Information Services (IIS) web server expands the 4xx error space to signal errors with the client’s request.

440 Login Time-out
The client’s session has expired and must log in again.[42]
449 Retry With
The server cannot honour the request because the user has not provided the required information.[43]
451 Redirect
Used in Exchange ActiveSync when either a more efficient server is available or the server cannot access the users’ mailbox.[44] The client is expected to re-run the HTTP AutoDiscover operation to find a more appropriate server.[45]

IIS sometimes uses additional decimal sub-codes for more specific information,[46] however these sub-codes only appear in the response payload and in documentation, not in the place of an actual HTTP status code.

nginx

The nginx web server software expands the 4xx error space to signal issues with the client’s request.[47][48]

444 No Response
Used internally[49] to instruct the server to return no information to the client and close the connection immediately.
494 Request header too large
Client sent too large request or too long header line.
495 SSL Certificate Error
An expansion of the 400 Bad Request response code, used when the client has provided an invalid client certificate.
496 SSL Certificate Required
An expansion of the 400 Bad Request response code, used when a client certificate is required but not provided.
497 HTTP Request Sent to HTTPS Port
An expansion of the 400 Bad Request response code, used when the client has made a HTTP request to a port listening for HTTPS requests.
499 Client Closed Request
Used when the client has closed the request before the server could send a response.

Cloudflare

Cloudflare’s reverse proxy service expands the 5xx series of errors space to signal issues with the origin server.[50]

520 Web Server Returned an Unknown Error
The origin server returned an empty, unknown, or unexpected response to Cloudflare.[51]
521 Web Server Is Down
The origin server refused connections from Cloudflare. Security solutions at the origin may be blocking legitimate connections from certain Cloudflare IP addresses.
522 Connection Timed Out
Cloudflare timed out contacting the origin server.
523 Origin Is Unreachable
Cloudflare could not reach the origin server; for example, if the DNS records for the origin server are incorrect or missing.
524 A Timeout Occurred
Cloudflare was able to complete a TCP connection to the origin server, but did not receive a timely HTTP response.
525 SSL Handshake Failed
Cloudflare could not negotiate a SSL/TLS handshake with the origin server.
526 Invalid SSL Certificate
Cloudflare could not validate the SSL certificate on the origin web server. Also used by Cloud Foundry’s gorouter.
527 Railgun Error
Error 527 indicates an interrupted connection between Cloudflare and the origin server’s Railgun server.[52]
530
Error 530 is returned along with a 1xxx error.[53]

AWS Elastic Load Balancer

Amazon’s Elastic Load Balancing adds a few custom return codes

460
Client closed the connection with the load balancer before the idle timeout period elapsed. Typically when client timeout is sooner than the Elastic Load Balancer’s timeout.[54]
463
The load balancer received an X-Forwarded-For request header with more than 30 IP addresses.[54]
561 Unauthorized
An error around authentication returned by a server registered with a load balancer. You configured a listener rule to authenticate users, but the identity provider (IdP) returned an error code when authenticating the user.[55]

Caching warning codes (obsoleted)

The following caching related warning codes were specified under RFC 7234. Unlike the other status codes above, these were not sent as the response status in the HTTP protocol, but as part of the «Warning» HTTP header.[56][57]

Since this «Warning» header is often neither sent by servers nor acknowledged by clients, this header and its codes were obsoleted by the HTTP Working Group in 2022 with RFC 9111.[58]

110 Response is Stale
The response provided by a cache is stale (the content’s age exceeds a maximum age set by a Cache-Control header or heuristically chosen lifetime).
111 Revalidation Failed
The cache was unable to validate the response, due to an inability to reach the origin server.
112 Disconnected Operation
The cache is intentionally disconnected from the rest of the network.
113 Heuristic Expiration
The cache heuristically chose a freshness lifetime greater than 24 hours and the response’s age is greater than 24 hours.
199 Miscellaneous Warning
Arbitrary, non-specific warning. The warning text may be logged or presented to the user.
214 Transformation Applied
Added by a proxy if it applies any transformation to the representation, such as changing the content encoding, media type or the like.
299 Miscellaneous Persistent Warning
Same as 199, but indicating a persistent warning.

See also

  • Custom error pages
  • List of FTP server return codes
  • List of HTTP header fields
  • List of SMTP server return codes
  • Common Log Format

Explanatory notes

  1. ^ Emphasised words and phrases such as must and should represent interpretation guidelines as given by RFC 2119

References

  1. ^ a b c «Hypertext Transfer Protocol (HTTP) Status Code Registry». Iana.org. Archived from the original on December 11, 2011. Retrieved January 8, 2015.
  2. ^ Fielding, Roy T. «RFC 9110: HTTP Semantics and Content, Section 10.1.1 «Expect»«.
  3. ^ Goland, Yaronn; Whitehead, Jim; Faizi, Asad; Carter, Steve R.; Jensen, Del (February 1999). HTTP Extensions for Distributed Authoring – WEBDAV. IETF. doi:10.17487/RFC2518. RFC 2518. Retrieved October 24, 2009.
  4. ^ Oku, Kazuho (December 2017). An HTTP Status Code for Indicating Hints. IETF. doi:10.17487/RFC8297. RFC 8297. Retrieved December 20, 2017.
  5. ^ Stewart, Mark; djna. «Create request with POST, which response codes 200 or 201 and content». Stack Overflow. Archived from the original on October 11, 2016. Retrieved October 16, 2015.
  6. ^ «RFC 9110: HTTP Semantics and Content, Section 15.3.4».
  7. ^ «RFC 9110: HTTP Semantics and Content, Section 7.7».
  8. ^ a b c d e Dusseault, Lisa, ed. (June 2007). HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV). IETF. doi:10.17487/RFC4918. RFC 4918. Retrieved October 24, 2009.
  9. ^ Delta encoding in HTTP. IETF. January 2002. doi:10.17487/RFC3229. RFC 3229. Retrieved February 25, 2011.
  10. ^ a b «RFC 9110: HTTP Semantics and Content, Section 15.4 «Redirection 3xx»«.
  11. ^ Berners-Lee, Tim; Fielding, Roy T.; Nielsen, Henrik Frystyk (May 1996). Hypertext Transfer Protocol – HTTP/1.0. IETF. doi:10.17487/RFC1945. RFC 1945. Retrieved October 24, 2009.
  12. ^ «The GNU Taler tutorial for PHP Web shop developers 0.4.0». docs.taler.net. Archived from the original on November 8, 2017. Retrieved October 29, 2017.
  13. ^ «Google API Standard Error Responses». 2016. Archived from the original on May 25, 2017. Retrieved June 21, 2017.
  14. ^ «Sipgate API Documentation». Archived from the original on July 10, 2018. Retrieved July 10, 2018.
  15. ^ «Shopify Documentation». Archived from the original on July 25, 2018. Retrieved July 25, 2018.
  16. ^ «Stripe API Reference – Errors». stripe.com. Retrieved October 28, 2019.
  17. ^ «RFC2616 on status 413». Tools.ietf.org. Archived from the original on March 7, 2011. Retrieved November 11, 2015.
  18. ^ «RFC2616 on status 414». Tools.ietf.org. Archived from the original on March 7, 2011. Retrieved November 11, 2015.
  19. ^ «RFC2616 on status 416». Tools.ietf.org. Archived from the original on March 7, 2011. Retrieved November 11, 2015.
  20. ^ TheDeadLike. «HTTP/1.1 Status Codes 400 and 417, cannot choose which». serverFault. Archived from the original on October 10, 2015. Retrieved October 16, 2015.
  21. ^ Larry Masinter (April 1, 1998). Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0). doi:10.17487/RFC2324. RFC 2324. Any attempt to brew coffee with a teapot should result in the error code «418 I’m a teapot». The resulting entity body MAY be short and stout.
  22. ^ I’m a teapot
  23. ^ Barry Schwartz (August 26, 2014). «New Google Easter Egg For SEO Geeks: Server Status 418, I’m A Teapot». Search Engine Land. Archived from the original on November 15, 2015. Retrieved November 4, 2015.
  24. ^ «Google’s Teapot». Retrieved October 23, 2017.[dead link]
  25. ^ «Enable extra web security on a website». DreamHost. Retrieved December 18, 2022.
  26. ^ «I Went to a Russian Website and All I Got Was This Lousy Teapot». PCMag. Retrieved December 18, 2022.
  27. ^ a b c d Nottingham, M.; Fielding, R. (April 2012). «RFC 6585 – Additional HTTP Status Codes». Request for Comments. Internet Engineering Task Force. Archived from the original on May 4, 2012. Retrieved May 1, 2012.
  28. ^ Bray, T. (February 2016). «An HTTP Status Code to Report Legal Obstacles». ietf.org. Archived from the original on March 4, 2016. Retrieved March 7, 2015.
  29. ^ alex. «What is the correct HTTP status code to send when a site is down for maintenance?». Stack Overflow. Archived from the original on October 11, 2016. Retrieved October 16, 2015.
  30. ^ Holtman, Koen; Mutz, Andrew H. (March 1998). Transparent Content Negotiation in HTTP. IETF. doi:10.17487/RFC2295. RFC 2295. Retrieved October 24, 2009.
  31. ^ Nielsen, Henrik Frystyk; Leach, Paul; Lawrence, Scott (February 2000). An HTTP Extension Framework. IETF. doi:10.17487/RFC2774. RFC 2774. Retrieved October 24, 2009.
  32. ^ «Enum HttpStatus». Spring Framework. org.springframework.http. Archived from the original on October 25, 2015. Retrieved October 16, 2015.
  33. ^ «Twitter Error Codes & Responses». Twitter. 2014. Archived from the original on September 27, 2017. Retrieved January 20, 2014.
  34. ^ «HTTP Status Codes and SEO: what you need to know». ContentKing. Retrieved August 9, 2019.
  35. ^ «Screenshot of error page». Archived from the original (bmp) on May 11, 2013. Retrieved October 11, 2009.
  36. ^ a b «Using token-based authentication». ArcGIS Server SOAP SDK. Archived from the original on September 26, 2014. Retrieved September 8, 2014.
  37. ^ «HTTP Error Codes and Quick Fixes». Docs.cpanel.net. Archived from the original on November 23, 2015. Retrieved October 15, 2015.
  38. ^ «SSL Labs API v3 Documentation». github.com.
  39. ^ «Platform Considerations | Pantheon Docs». pantheon.io. Archived from the original on January 6, 2017. Retrieved January 5, 2017.
  40. ^ «HTTP status codes — ascii-code.com». www.ascii-code.com. Archived from the original on January 7, 2017. Retrieved December 23, 2016.
  41. ^
    «Error message when you try to log on to Exchange 2007 by using Outlook Web Access: «440 Login Time-out»«. Microsoft. 2010. Retrieved November 13, 2013.
  42. ^ «2.2.6 449 Retry With Status Code». Microsoft. 2009. Archived from the original on October 5, 2009. Retrieved October 26, 2009.
  43. ^ «MS-ASCMD, Section 3.1.5.2.2». Msdn.microsoft.com. Archived from the original on March 26, 2015. Retrieved January 8, 2015.
  44. ^ «Ms-oxdisco». Msdn.microsoft.com. Archived from the original on July 31, 2014. Retrieved January 8, 2015.
  45. ^ «The HTTP status codes in IIS 7.0». Microsoft. July 14, 2009. Archived from the original on April 9, 2009. Retrieved April 1, 2009.
  46. ^ «ngx_http_request.h». nginx 1.9.5 source code. nginx inc. Archived from the original on September 19, 2017. Retrieved January 9, 2016.
  47. ^ «ngx_http_special_response.c». nginx 1.9.5 source code. nginx inc. Archived from the original on May 8, 2018. Retrieved January 9, 2016.
  48. ^ «return» directive Archived March 1, 2018, at the Wayback Machine (http_rewrite module) documentation.
  49. ^ «Troubleshooting: Error Pages». Cloudflare. Archived from the original on March 4, 2016. Retrieved January 9, 2016.
  50. ^ «Error 520: web server returns an unknown error». Cloudflare.
  51. ^ «527 Error: Railgun Listener to origin error». Cloudflare. Archived from the original on October 13, 2016. Retrieved October 12, 2016.
  52. ^ «Error 530». Cloudflare. Retrieved November 1, 2019.
  53. ^ a b «Troubleshoot Your Application Load Balancers – Elastic Load Balancing». docs.aws.amazon.com. Retrieved August 27, 2019.
  54. ^ «Troubleshoot your Application Load Balancers — Elastic Load Balancing». docs.aws.amazon.com. Retrieved January 24, 2021.
  55. ^ «Hypertext Transfer Protocol (HTTP/1.1): Caching». datatracker.ietf.org. Retrieved September 25, 2021.
  56. ^ «Warning — HTTP | MDN». developer.mozilla.org. Retrieved August 15, 2021. CC BY-SA icon.svg Some text was copied from this source, which is available under a Creative Commons Attribution-ShareAlike 2.5 Generic (CC BY-SA 2.5) license.
  57. ^ «RFC 9111: HTTP Caching, Section 5.5 «Warning»«. June 2022.

External links

  • «RFC 9110: HTTP Semantics and Content, Section 15 «Status Codes»«.
  • Hypertext Transfer Protocol (HTTP) Status Code Registry

HTTP response status codes indicate whether a specific HTTP request has been successfully completed.
Responses are grouped in five classes:

  1. Informational responses (100199)
  2. Successful responses (200299)
  3. Redirection messages (300399)
  4. Client error responses (400499)
  5. Server error responses (500599)

The status codes listed below are defined by RFC 9110.

Note: If you receive a response that is not in this list, it is a non-standard response, possibly custom to the server’s software.

Information responses

100 Continue

This interim response indicates that the client should continue the request or ignore the response if the request is already finished.

101 Switching Protocols

This code is sent in response to an Upgrade request header from the client and indicates the protocol the server is switching to.

102 Processing (WebDAV)

This code indicates that the server has received and is processing the request, but no response is available yet.

103 Early Hints
Experimental

This status code is primarily intended to be used with the Link header, letting the user agent start preloading resources while the server prepares a response.

Successful responses

200 OK

The request succeeded. The result meaning of «success» depends on the HTTP method:

  • GET: The resource has been fetched and transmitted in the message body.
  • HEAD: The representation headers are included in the response without any message body.
  • PUT or POST: The resource describing the result of the action is transmitted in the message body.
  • TRACE: The message body contains the request message as received by the server.
201 Created

The request succeeded, and a new resource was created as a result. This is typically the response sent after POST requests, or some PUT requests.

202 Accepted

The request has been received but not yet acted upon.
It is noncommittal, since there is no way in HTTP to later send an asynchronous response indicating the outcome of the request.
It is intended for cases where another process or server handles the request, or for batch processing.

This response code means the returned metadata is not exactly the same as is available from the origin server, but is collected from a local or a third-party copy.
This is mostly used for mirrors or backups of another resource.
Except for that specific case, the 200 OK response is preferred to this status.

204 No Content

There is no content to send for this request, but the headers may be useful.
The user agent may update its cached headers for this resource with the new ones.

205 Reset Content

Tells the user agent to reset the document which sent this request.

206 Partial Content

This response code is used when the Range header is sent from the client to request only part of a resource.

207 Multi-Status (WebDAV)

Conveys information about multiple resources, for situations where multiple status codes might be appropriate.

208 Already Reported (WebDAV)

Used inside a <dav:propstat> response element to avoid repeatedly enumerating the internal members of multiple bindings to the same collection.

226 IM Used (HTTP Delta encoding)

The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.

Redirection messages

300 Multiple Choices

The request has more than one possible response. The user agent or user should choose one of them. (There is no standardized way of choosing one of the responses, but HTML links to the possibilities are recommended so the user can pick.)

301 Moved Permanently

The URL of the requested resource has been changed permanently. The new URL is given in the response.

302 Found

This response code means that the URI of requested resource has been changed temporarily.
Further changes in the URI might be made in the future. Therefore, this same URI should be used by the client in future requests.

303 See Other

The server sent this response to direct the client to get the requested resource at another URI with a GET request.

304 Not Modified

This is used for caching purposes.
It tells the client that the response has not been modified, so the client can continue to use the same cached version of the response.

305 Use Proxy
Deprecated

Defined in a previous version of the HTTP specification to indicate that a requested response must be accessed by a proxy.
It has been deprecated due to security concerns regarding in-band configuration of a proxy.

306 unused

This response code is no longer used; it is just reserved. It was used in a previous version of the HTTP/1.1 specification.

307 Temporary Redirect

The server sends this response to direct the client to get the requested resource at another URI with the same method that was used in the prior request.
This has the same semantics as the 302 Found HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.

308 Permanent Redirect

This means that the resource is now permanently located at another URI, specified by the Location: HTTP Response header.
This has the same semantics as the 301 Moved Permanently HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.

Client error responses

400 Bad Request

The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

401 Unauthorized

Although the HTTP standard specifies «unauthorized», semantically this response means «unauthenticated».
That is, the client must authenticate itself to get the requested response.

402 Payment Required
Experimental

This response code is reserved for future use.
The initial aim for creating this code was using it for digital payment systems, however this status code is used very rarely and no standard convention exists.

403 Forbidden

The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource.
Unlike 401 Unauthorized, the client’s identity is known to the server.

404 Not Found

The server cannot find the requested resource.
In the browser, this means the URL is not recognized.
In an API, this can also mean that the endpoint is valid but the resource itself does not exist.
Servers may also send this response instead of 403 Forbidden to hide the existence of a resource from an unauthorized client.
This response code is probably the most well known due to its frequent occurrence on the web.

405 Method Not Allowed

The request method is known by the server but is not supported by the target resource.
For example, an API may not allow calling DELETE to remove a resource.

406 Not Acceptable

This response is sent when the web server, after performing server-driven content negotiation, doesn’t find any content that conforms to the criteria given by the user agent.

407 Proxy Authentication Required

This is similar to 401 Unauthorized but authentication is needed to be done by a proxy.

408 Request Timeout

This response is sent on an idle connection by some servers, even without any previous request by the client.
It means that the server would like to shut down this unused connection.
This response is used much more since some browsers, like Chrome, Firefox 27+, or IE9, use HTTP pre-connection mechanisms to speed up surfing.
Also note that some servers merely shut down the connection without sending this message.

409 Conflict

This response is sent when a request conflicts with the current state of the server.

410 Gone

This response is sent when the requested content has been permanently deleted from server, with no forwarding address.
Clients are expected to remove their caches and links to the resource.
The HTTP specification intends this status code to be used for «limited-time, promotional services».
APIs should not feel compelled to indicate resources that have been deleted with this status code.

411 Length Required

Server rejected the request because the Content-Length header field is not defined and the server requires it.

412 Precondition Failed

The client has indicated preconditions in its headers which the server does not meet.

413 Payload Too Large

Request entity is larger than limits defined by server.
The server might close the connection or return an Retry-After header field.

414 URI Too Long

The URI requested by the client is longer than the server is willing to interpret.

415 Unsupported Media Type

The media format of the requested data is not supported by the server, so the server is rejecting the request.

416 Range Not Satisfiable

The range specified by the Range header field in the request cannot be fulfilled.
It’s possible that the range is outside the size of the target URI’s data.

417 Expectation Failed

This response code means the expectation indicated by the Expect request header field cannot be met by the server.

418 I'm a teapot

The server refuses the attempt to brew coffee with a teapot.

421 Misdirected Request

The request was directed at a server that is not able to produce a response.
This can be sent by a server that is not configured to produce responses for the combination of scheme and authority that are included in the request URI.

422 Unprocessable Content (WebDAV)

The request was well-formed but was unable to be followed due to semantic errors.

423 Locked (WebDAV)

The resource that is being accessed is locked.

424 Failed Dependency (WebDAV)

The request failed due to failure of a previous request.

425 Too Early
Experimental

Indicates that the server is unwilling to risk processing a request that might be replayed.

426 Upgrade Required

The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.
The server sends an Upgrade header in a 426 response to indicate the required protocol(s).

428 Precondition Required

The origin server requires the request to be conditional.
This response is intended to prevent the ‘lost update’ problem, where a client GETs a resource’s state, modifies it and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.

429 Too Many Requests

The user has sent too many requests in a given amount of time («rate limiting»).

The server is unwilling to process the request because its header fields are too large.
The request may be resubmitted after reducing the size of the request header fields.

451 Unavailable For Legal Reasons

The user agent requested a resource that cannot legally be provided, such as a web page censored by a government.

Server error responses

500 Internal Server Error

The server has encountered a situation it does not know how to handle.

501 Not Implemented

The request method is not supported by the server and cannot be handled. The only methods that servers are required to support (and therefore that must not return this code) are GET and HEAD.

502 Bad Gateway

This error response means that the server, while working as a gateway to get a response needed to handle the request, got an invalid response.

503 Service Unavailable

The server is not ready to handle the request.
Common causes are a server that is down for maintenance or that is overloaded.
Note that together with this response, a user-friendly page explaining the problem should be sent.
This response should be used for temporary conditions and the Retry-After HTTP header should, if possible, contain the estimated time before the recovery of the service.
The webmaster must also take care about the caching-related headers that are sent along with this response, as these temporary condition responses should usually not be cached.

504 Gateway Timeout

This error response is given when the server is acting as a gateway and cannot get a response in time.

505 HTTP Version Not Supported

The HTTP version used in the request is not supported by the server.

506 Variant Also Negotiates

The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.

507 Insufficient Storage (WebDAV)

The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.

508 Loop Detected (WebDAV)

The server detected an infinite loop while processing the request.

510 Not Extended

Further extensions to the request are required for the server to fulfill it.

511 Network Authentication Required

Indicates that the client needs to authenticate to gain network access.

Browser compatibility

BCD tables only load in the browser

See also

This is old legacy code that has been running at least 5 years. The DLL happens to relate to Paypal’s PayFlowPro merchant processing service, but I think this is a Windows scenario causing the issue.

Suddenly, based on the code below, I’m seeing this error in the browser:

> Error with new credit card processing software, please call Neal at xxx-xxx-xxxx
> Error Ref102: client = Server.CreateObject returned Null
> (Detailed error: Object doesn't support this property or method)
> (Detailed error: 438)

The IIS log shows me the 443:

2013-12-19 00:57:24 W3SVC4 173.45.87.10 POST /myapps/adm_settle.asp - 443 - 76.187.77.159 Mozilla/5.0+(Windows+NT+6.2;+WOW64;+rv:26.0)+Gecko/20100101+Firefox/26.0 200 0 0

Since I saw the 433 above, I’m thinking there must be some security error. Just as a test, I tried putting the app-pool user in the Administrator group, restarted IIS, and still get exact same error. I have also given that user specific access to read the .DLL on disk.

I did run REGASM to try to re-register the .DLL. I also tried REGSRV32, but I guess that fails on .NET DLLs. It’s been a few years since I’ve dealt with software this old.

The ASP/VBScript Code:

    Err.Clear 
    On Error Resume Next 
    set client = Server.CreateObject("PayPal.Payments.Communication.PayflowNETAPI")
    If Err.number > 0 Then 
       response.write "Error with new credit card processing software, please call Neal at xxx-xxx-xxxx" 
       response.write "</br>(Detailed error: " & Err.Description & ")" 
       response.write "</br>(Detailed error: " & Err.Number & ")" 
       response.End 
    End If 
    If client Is Nothing Then 
       Response.write "Error with new credit card processing software, please call Neal at xxx-xxx-xxxx" 
       Response.Write "</br>Error Ref101: client = Server.CreateObject returned 'nothing' "
       response.write "</br>(Detailed error: " & Err.Description & ")" 
       response.write "</br>(Detailed error: " & Err.Number & ")" 
       Response.End 
    End If 
    If client = null Then 
       Response.write "Error with new credit card processing software, please call Neal at xxx-xxx-xxxx" 
       Response.Write "</br>Error Ref102: client = Server.CreateObject returned Null "
       response.write "</br>(Detailed error: " & Err.Description & ")" 
       response.write "</br>(Detailed error: " & Err.Number & ")" 
       Response.End 
    End If 

Also, I’m not sure how the 443 http status gets changed to a 438 Err.Number.

What are the steps to troubleshoot a Port 443 error?

Troubleshoot the error step-by-step as follows:

Step 1. Check to see whether Port 443 is opened

Check (telnet <controller-host> 443) from the agent host to make sure the port has been opened. If it’s closed, open it.

Step 2. Check the proxy

If port 443 is open, but the agent still can’t telnet, check the proxy.

Does it exist? If so, curl with proxy args to see whether the network firewall/proxy is working. You want to determine whether the error is caused by the agent or whether it’s a proxy end error.

curl -x http://proxyHost:proxyPort/ -I https://<controller-host>:443/controller/rest/serverstatus

Step 3. SSL for the Java Agent

If either telnet or curl work on the port without errors, but the agent still fails with an “SSL certs missing” error, review the Enable SSL for the Java Agent documentation.

There are many SSL exception variants, of which many require expert-level debugging. If your error isn’t addressed in the above documentation, please initiate a ticket with AppDynamics customer support.

Step 4. JKK and SSL supported protocol or cipher limitations

JDK and SSL supported protocol/cipher limitations also require expert-level SSL debugging, so we recommend reaching out to AppDynamics support.

HTTP
  • Упорство
  • Сжатие
  • HTTPS
  • QUIC
Способы запроса
  • ОПЦИИ
  • ПОЛУЧАТЬ
  • ГОЛОВА
  • СООБЩЕНИЕ
  • ПОЛОЖИЛ
  • УДАЛИТЬ
  • СЛЕД
  • ПОДКЛЮЧИТЬ
  • ПАТЧ
Поля заголовка
  • Cookie-файлы
  • ETag
  • Место расположения
  • HTTP-реферер
  • DNT
  • X-Forwarded-For
Коды состояния
  • 301 перемещен навсегда
  • 302 Найдено
  • 303 См. Другое
  • 403 Запрещено
  • 404 Не Найдено
  • 451 Недоступно по юридическим причинам
Методы контроля доступа безопасности
  • Базовая аутентификация доступа
  • Дайджест-проверка подлинности доступа
Уязвимости безопасности
  • Внедрение HTTP-заголовка
  • Контрабанда HTTP-запросов
  • Разделение HTTP-ответа
  • Загрязнение параметров HTTP

Это список Протокол передачи гипертекста (HTTP) коды состояния ответа. Коды состояния выдаются сервером в ответ на запрос клиента сделал к серверу. Включает коды от IETF Запрос комментариев (RFC), другие спецификации и некоторые дополнительные коды, используемые в некоторых распространенных приложениях HTTP. Первая цифра кода состояния указывает один из пяти стандартных классов ответов. Показанные фразы сообщений являются типичными, но может быть предоставлена ​​любая удобочитаемая альтернатива. Если не указано иное, код состояния является частью стандарта HTTP / 1.1 (RFC 7231).[1]

В Управление по присвоению номеров в Интернете (IANA) ведет официальный реестр кодов состояния HTTP.[2]

Все коды состояния ответа HTTP разделены на пять классов или категорий. Первая цифра кода состояния определяет класс ответа, в то время как последние две цифры не имеют никакой роли классификации или категоризации. Стандарт определяет пять классов:

  • 1xx информационный ответ — запрос был получен, процесс продолжается
  • 2xx успешно — запрос был успешно получен, понят и принят
  • Перенаправление 3xx — для выполнения запроса необходимо предпринять дальнейшие действия
  • Ошибка клиента 4xx — запрос содержит неверный синтаксис или не может быть выполнен
  • Ошибка сервера 5xx — серверу не удалось выполнить явно действительный запрос

Информационный ответ 1xx

Информационный ответ указывает, что запрос был получен и понят. Он выдается временно, пока обработка запроса продолжается. Он предупреждает клиента, чтобы он дождался окончательного ответа. Сообщение состоит только из строки состояния и дополнительных полей заголовка и заканчивается пустой строкой. Поскольку в стандарте HTTP / 1.0 не определены коды состояния 1xx, серверы не должен[примечание 1] отправить ответ 1xx клиенту, совместимому с HTTP / 1.0, за исключением экспериментальных условий.[3]

100 Продолжить
Сервер получил заголовки запроса, и клиент должен продолжить отправку тела запроса (в случае запроса, для которого необходимо отправить тело; например, СООБЩЕНИЕ запрос). Отправка большого тела запроса на сервер после того, как запрос был отклонен из-за несоответствующих заголовков, будет неэффективен. Чтобы сервер проверил заголовки запроса, клиент должен отправить Ожидайте: 100-продолжение в качестве заголовка в своем первоначальном запросе и получить 100 Продолжить код состояния в ответ перед отправкой тела. Если клиент получает код ошибки, такой как 403 (Запрещено) или 405 (Метод не разрешен), он не должен отправлять тело запроса. Ответ 417 Ожидание не выполнено указывает, что запрос следует повторить без Ожидать заголовок, поскольку он указывает на то, что сервер не поддерживает ожидания (например, в случае серверов HTTP / 1.0).[4]
101 протокол переключения
Запрашивающая сторона попросила сервер переключить протоколы, и сервер дал согласие на это.[5]
102 Обработка (WebDAV; RFC 2518 )
Запрос WebDAV может содержать множество подзапросов, связанных с файловыми операциями, для выполнения которых требуется много времени. Этот код указывает, что сервер получил и обрабатывает запрос, но ответа еще нет.[6] Это предотвращает тайм-аут клиента и предположение, что запрос был потерян.
103 Ранние подсказки (RFC 8297 )
Используется для возврата некоторых заголовков ответа перед окончательным HTTP-сообщением.[7]

2хх успех

Этот класс кодов состояния указывает, что действие, запрошенное клиентом, было получено, понято и принято.[2]

200 ОК
Стандартный ответ на успешные HTTP-запросы. Фактический ответ будет зависеть от используемого метода запроса. В запросе GET ответ будет содержать объект, соответствующий запрошенному ресурсу. В запросе POST ответ будет содержать объект, описывающий или содержащий результат действия.[8]
201 Создано
Запрос был выполнен, в результате чего был создан новый ресурс.[9]
202 Принято
Запрос принят в обработку, но обработка не завершена. В конечном итоге запрос может или не может быть обработан, и может быть отклонен, когда происходит обработка.[10]
203 Неавторизованная информация (начиная с HTTP / 1.1)
Сервер представляет собой преобразующий прокси (например, Веб-ускоритель ), который получил 200 OK от источника, но возвращает измененную версию ответа источника.[11][12]
204 Нет содержимого
Сервер успешно обработал запрос и не возвращает никакого контента.[13]
205 Сбросить содержимое
Сервер успешно обработал запрос, просит, чтобы инициатор запроса сбросил представление документа, и не возвращает никакого содержимого. [14]
206 Частичное содержимое (RFC 7233 )
Сервер доставляет только часть ресурса (байтовое обслуживание ) из-за заголовка диапазона, отправленного клиентом. Заголовок диапазона используется HTTP-клиентами для возобновления прерванных загрузок или разделения загрузки на несколько одновременных потоков.[15]
207 Мульти-статус (WebDAV; RFC 4918 )
Следующее тело сообщения по умолчанию XML сообщение и может содержать несколько отдельных кодов ответа, в зависимости от того, сколько подзапросов было сделано.[16]
208 уже сообщено (WebDAV; RFC 5842 )
Члены привязки DAV уже были перечислены в предыдущей части (мультистатусного) ответа и не включаются снова.
226 IM использовано (RFC 3229 )
Сервер выполнил запрос ресурса, и ответ является представлением результата одной или нескольких манипуляций с экземпляром, примененных к текущему экземпляру.[17]

Перенаправление 3xx

Этот класс кода состояния указывает, что клиент должен предпринять дополнительные действия для выполнения запроса. Многие из этих кодов состояния используются в Перенаправление URL.[2]

Пользовательский агент может выполнить дополнительное действие без взаимодействия с пользователем, только если во втором запросе используется метод GET или HEAD. Пользовательский агент может автоматически перенаправить запрос. Пользовательский агент должен обнаруживать и вмешиваться, чтобы предотвратить циклические перенаправления.[18]

300 вариантов выбора
Указывает несколько вариантов ресурса, из которых клиент может выбрать (через согласование содержимого на основе агентов ). Например, этот код можно использовать для представления нескольких параметров формата видео, чтобы перечислить файлы с разными расширения файлов, или предложить словесная неоднозначность.[19]
301 перемещен навсегда
Это и все будущие запросы следует направлять в данную URI.[20]
302 найдено (ранее «перемещено временно»)
Сообщает клиенту, что нужно посмотреть (перейти) на другой URL. 302 был заменен 303 и 307. Это пример отраслевой практики, противоречащей стандарту. Спецификация HTTP / 1.0 (RFC 1945) требовала от клиента выполнения временного перенаправления (исходная описывающая фраза была «временно перемещена»),[21] но популярные браузеры реализовали 302 с функциональностью 303 See Other. Поэтому в HTTP / 1.1 добавлены коды состояния 303 и 307, чтобы различать два поведения.[22] Однако некоторые веб-приложения и платформы используют код состояния 302, как если бы это был 303.[23]
303 См. Другое (начиная с HTTP / 1.1)
Ответ на запрос можно найти под другим URI с помощью метода GET. При получении в ответ на POST (или PUT / DELETE) клиент должен предполагать, что сервер получил данные, и должен отправить новый запрос GET на данный URI.[24]
304 Не изменено (RFC 7232 )
Указывает, что ресурс не был изменен с версии, указанной в заголовки запросов If-Modified-Since или If-None-Match. В таком случае нет необходимости повторно передавать ресурс, поскольку у клиента все еще есть ранее загруженная копия.[25]
305 Использовать прокси (начиная с HTTP / 1.1)
Запрошенный ресурс доступен только через прокси, адрес которого указан в ответе. По соображениям безопасности многие HTTP-клиенты (например, Mozilla Firefox и Internet Explorer ) не подчиняются этому коду состояния.
306 Переключить прокси
Больше не используется. Первоначально означало «Последующие запросы должны использовать указанный прокси».[27]
307 Временное перенаправление (начиная с HTTP / 1.1)
В этом случае запрос следует повторить с другим URI; однако в будущих запросах должен по-прежнему использоваться исходный URI. В отличие от того, как 302 был исторически реализован, метод запроса не может быть изменен при повторной выдаче исходного запроса. Например, запрос POST следует повторить, используя другой запрос POST.[28]
308 Постоянное перенаправление (RFC 7538 )
Запрос и все будущие запросы следует повторить, используя другой URI. 307 и 308 аналогичны 302 и 301, но не позволять методу HTTP изменять. Так, например, отправка формы на постоянно перенаправляемый ресурс может продолжаться гладко.[29]

4хх клиентских ошибок

Ошибка 404 в Википедии.

Ошибка 404 в Википедии

Этот класс кода состояния предназначен для ситуаций, в которых кажется, что ошибка была вызвана клиентом. За исключением ответа на запрос HEAD, сервер должен включить объект, содержащий объяснение ситуации с ошибкой, а также указать, является ли это временным или постоянным состоянием. Эти коды состояния применимы к любому методу запроса. Пользовательские агенты должен отображать любую включенную сущность для пользователя.[30]

ошибка 400, неверный запрос
Сервер не может или не будет обрабатывать запрос из-за явной ошибки клиента (например, неверный синтаксис запроса, слишком большой размер, недопустимое формирование сообщения запроса или обманчивая маршрутизация запроса).[31]
401 Несанкционированный (RFC 7235 )
Похожий на 403 Запрещено, но специально для использования, когда аутентификация требуется, но она не удалась или еще не была предоставлена. Ответ должен включать поле заголовка WWW-Authenticate, содержащее запрос, применимый к запрошенному ресурсу. Видеть Базовая аутентификация доступа и Дайджест-проверка подлинности доступа.[32] 401 семантически означает «неавторизованный»,[33] у пользователя нет действительных учетных данных для аутентификации для целевого ресурса.
Примечание. Некоторые сайты неправильно выдают HTTP 401, когда айпи адрес запрещен на веб-сайте (обычно это домен веб-сайта), и этому конкретному адресу отказано в доступе к веб-сайту.[нужна цитата ]
402 Требуется оплата
Зарезервировано для использования в будущем. Изначально предполагалось, что этот код можно использовать как часть некоторой формы цифровые деньги или микроплатеж схема, предложенная, например, GNU Taler,[34] но этого еще не произошло, и этот код не получил широкого распространения. Разработчики Google API использует этот статус, если конкретный разработчик превысил дневной лимит запросов.[35] Sipgate использует этот код, если на счете недостаточно средств для начала звонка.[36] Shopify использует этот код, когда магазин не выплатил комиссию и временно отключен.[37] Полоса использует этот код для неудачных платежей с правильными параметрами, например, заблокированных мошеннических платежей.[38]
403 Запрещено
Запрос содержал действительные данные и был понят сервером, но сервер отклоняет действие. Это может быть связано с тем, что пользователь не имеет необходимых разрешений для ресурса или ему требуется учетная запись какого-либо типа, или он пытается выполнить запрещенное действие (например, создает дублирующую запись, где разрешен только один). Этот код также обычно используется, если запрос предоставил аутентификацию путем ответа на запрос поля заголовка WWW-Authenticate, но сервер не принял эту аутентификацию. Запрос не должен повторяться.
404 Не Найдено
Запрошенный ресурс не может быть найден, но может быть доступен в будущем. Последующие запросы со стороны клиента допустимы.
405 Метод не разрешен
Метод запроса не поддерживается для запрошенного ресурса; например, запрос GET в форме, который требует, чтобы данные были представлены через СООБЩЕНИЕ или запрос PUT для ресурса, доступного только для чтения.
406 неприемлемо
Запрошенный ресурс может генерировать только контент, неприемлемый в соответствии с заголовками Accept, отправленными в запросе.[39] Видеть Согласование содержания.
407 Требуется проверка подлинности прокси (RFC 7235 )
Клиент должен сначала аутентифицироваться с помощью доверенное лицо.[40]
408 Тайм-аут запроса
Время ожидания запроса на сервере истекло. Согласно спецификациям HTTP: «Клиент не отправил запрос в течение времени, в течение которого сервер был подготовлен к ожиданию. Клиент МОЖЕТ повторить запрос без изменений в любое время».[41]
409 Конфликт
Указывает, что запрос не может быть обработан из-за конфликта в текущем состоянии ресурса, например редактировать конфликт между несколькими одновременными обновлениями.
410 ушел
Указывает, что запрошенный ресурс больше не доступен и больше не будет доступен. Это следует использовать, когда ресурс был намеренно удален, и ресурс должен быть очищен. После получения кода состояния 410 клиент не должен запрашивать ресурс в будущем. Такие клиенты, как поисковые системы, должны удалить ресурс из своих индексов.[42] В большинстве случаев не требуется, чтобы клиенты и поисковые системы очищали ресурс, и вместо этого можно использовать сообщение «404 Not Found».
411 Требуется длина
В запросе не указана длина его содержимого, необходимая для запрашиваемого ресурса.[43]
412 Ошибка предварительного условия (RFC 7232 )
Сервер не соответствует одному из предварительных условий, которые запрашивающая сторона поставила в полях заголовка запроса.[44][45]
413 Слишком большая полезная нагрузка (RFC 7231 )
Запрос больше, чем сервер хочет или может обработать. Ранее назывался «Слишком большой объект запроса».[46]
414 URI слишком длинный (RFC 7231 )
В URI предоставленный был слишком длинным для обработки сервером. Часто это результат того, что слишком много данных кодируется как строка запроса запроса GET, и в этом случае его следует преобразовать в запрос POST.[47] Ранее вызывался «Request-URI Too Long».[48]
415 Неподдерживаемый тип носителя (RFC 7231 )
Сущность запроса имеет тип СМИ которые сервер или ресурс не поддерживает. Например, клиент загружает изображение как изображение / svg + xml, но сервер требует, чтобы изображения использовали другой формат.[49]
416 Неудовлетворительный диапазон (RFC 7233 )
Клиент запросил часть файла (байтовое обслуживание ), но сервер не может предоставить эту часть. Например, если клиент запросил часть файла, лежащую за концом файла.[50] Ранее называлась «Запрошенный диапазон не удовлетворяется».[51]
417 Ожидание не выполнено
Сервер не может удовлетворить требованиям поля заголовка запроса Expect.[52]
418 я чайник (RFC 2324, RFC 7168 )
Этот кодекс был определен в 1998 году как один из традиционных IETF Первоапрельские шутки, в RFC 2324, Протокол управления гипертекстовым кофейником, и не ожидается, что он будет реализован на реальных HTTP-серверах. RFC указывает, что этот код должен возвращаться чайниками, которых просят заварить кофе.[53] Этот статус HTTP используется как Пасхальное яйцо на некоторых веб-сайтах, например Google.com Я чайник пасхальное яйцо.[54][55]
421 неправильно направленный запрос (RFC 7540 )
Запрос был направлен на сервер, который не может дать ответ[56] (например, из-за повторного использования соединения).[57]
422 Необработанная сущность (WebDAV; RFC 4918 )
Запрос был правильно сформирован, но его не удалось выполнить из-за семантических ошибок.[16]
423 Заблокировано (WebDAV; RFC 4918 )
Ресурс, к которому осуществляется доступ, заблокирован.[16]
424 Неудачная зависимость (WebDAV; RFC 4918 )
Запрос не удался, потому что он зависел от другого запроса, и этот запрос не удался (например, PROPPATCH).[16]
425 Слишком рано (RFC 8470 )
Указывает, что сервер не желает рисковать обработкой запроса, который может быть воспроизведен.
426 Требуется обновление
Клиент должен переключиться на другой протокол, например TLS / 1.0, приведенный в Заголовок обновления поле.[58]
428 Требуется предварительное условие (RFC 6585 )
Исходный сервер требует, чтобы запрос был условным. Предназначен для предотвращения проблемы «потерянного обновления», когда клиент ПОЛУЧАЕТ состояние ресурса, изменяет его и отправляет обратно на сервер, когда тем временем третья сторона изменила состояние на сервере, что привело к конфликту.[59]
429 Слишком много запросов (RFC 6585 )
Пользователь отправил слишком много запросов за заданный промежуток времени. Предназначен для использования с ограничение скорости схемы.[59]
431 Слишком большие поля заголовка запроса (RFC 6585 )
Сервер не желает обрабатывать запрос, потому что либо отдельное поле заголовка, либо все поля заголовка в совокупности слишком велики.[59]
451 Недоступно по юридическим причинам (RFC 7725 )
Оператор сервера получил законное требование запретить доступ к ресурсу или набору ресурсов, который включает запрошенный ресурс.[60] Код 451 был выбран в качестве ссылки на роман. 451 градус по Фаренгейту (см. Благодарности в RFC).

5xx ошибки сервера

В сервер не удалось выполнить запрос.[61]

Коды состояния ответа, начинающиеся с цифры «5», указывают на случаи, когда сервер знает, что он обнаружил ошибку или иным образом не может выполнить запрос. За исключением ответа на запрос HEAD, сервер должен включите объект, содержащий объяснение ситуации с ошибкой, и укажите, является ли это временным или постоянным состоянием. Аналогично, пользовательские агенты должен отображать любую включенную сущность для пользователя. Эти коды ответов применимы к любому методу запроса.[62]

внутренняя ошибка сервера 500
Общее сообщение об ошибке, которое выдается, когда возникла непредвиденная ситуация, и более конкретное сообщение не подходит.[63]
501 Не реализовано
Сервер либо не распознает метод запроса, либо не может выполнить запрос. Обычно это подразумевает доступность в будущем (например, новую функцию API веб-службы).[64]
502 Неверный шлюз
Сервер действовал как шлюз или прокси и получил недопустимый ответ от вышестоящего сервера.[65]
сервис 503 недоступен
Сервер не может обработать запрос (потому что он перегружен или отключен для обслуживания). Как правило, это временное состояние.[66]
Ошибка 504 Время ответа сервера истекло
Сервер действовал как шлюз или прокси и не получил своевременного ответа от вышестоящего сервера.[67]
505 Версия HTTP не поддерживается
Сервер не поддерживает версию протокола HTTP, используемую в запросе.[68]
506 вариант также согласовывает (RFC 2295 )
Прозрачный согласование содержания для запроса результаты в циркулярная ссылка.[69]
507 Недостаточно памяти (WebDAV; RFC 4918 )
Сервер не может сохранить представление, необходимое для выполнения запроса.[16]
508 Обнаружен цикл (WebDAV; RFC 5842 )
Сервер обнаружил бесконечный цикл при обработке запроса (отправленного вместо 208 уже сообщается ).
510 не расширенный (RFC 2774 )
Для его выполнения сервером требуются дальнейшие расширения запроса.[70]
511 Требуется сетевая аутентификация (RFC 6585 )
Чтобы получить доступ к сети, клиенту необходимо пройти аутентификацию. Предназначен для использования путем перехвата прокси, используемых для управления доступом к сети (например, «плененные порталы «раньше требовали согласия с Условиями использования перед предоставлением полного доступа в Интернет через Точка доступа Wi-Fi ).[59]

Неофициальные коды

Следующие ниже коды не определены никаким стандартом.

103 КПП
Используется в предложении возобновляемых запросов для возобновления прерванных запросов PUT или POST.[71]
218 Это нормально (Веб-сервер Apache )
Используется как условие универсальной ошибки, позволяющее передавать тела ответов через Apache, когда включен ProxyErrorOverride.[сомнительный – обсудить] Когда ProxyErrorOverride включен в Apache, тела ответов, содержащие код состояния 4xx или 5xx, автоматически отклоняются Apache в пользу общего ответа или настраиваемого ответа, указанного в директиве ErrorDocument.[72]
419 Страница истекла (Фреймворк Laravel )
Используется Laravel Framework, когда токен CSRF отсутствует или просрочен.
420 Ошибка метода (Spring Framework )
Устаревший ответ, используемый Spring Framework при сбое метода.[73]
420 Усильте свое спокойствие (Twitter )
Возвращается версией 1 Twitter Search and Trends API, когда клиент ограничен по скорости; версии 1.1 и более поздние используют 429 Слишком много запросов код ответа.[74] Фраза «Укрепите свое спокойствие» происходит от 1993 фильм Разрушитель, и его связь с этим числом, вероятно, ссылка на каннабис.[нужна цитата ]
430 Слишком большие поля заголовка запроса (Shopify )
Использован Shopify, вместо 429 Слишком много запросов код ответа, если в течение определенного периода времени запрашивается слишком много URL-адресов.[75]
450 заблокировано родительским контролем Windows (Microsoft)
Код расширения Microsoft указывается, когда родительский контроль Windows включен и блокирует доступ к запрошенной веб-странице.[76]
498 Неверный токен (Esri)
Возвращено ArcGIS for Server. Код 498 указывает на просроченный или недействительный токен по иным причинам.[77]
Требуется 499 токенов (Esri)
Возвращено ArcGIS for Server. Код 499 указывает на то, что токен требуется, но не был отправлен.[77]
509 Превышен предел пропускной способности (Веб-сервер Apache /cPanel )
Сервер превысил пропускную способность, указанную администратором сервера; это часто используется провайдерами виртуального хостинга для ограничения полосы пропускания клиентов.[78]
526 Неверный сертификат SSL
Использован Cloudflare и Cloud Foundry gorouter, указывающий на неспособность проверить сертификат SSL / TLS, предоставленный исходным сервером.
529 Сайт перегружен
Использован Qualys в API тестирования сервера SSLLabs, чтобы указать, что сайт не может обработать запрос.[79]
530 Сайт заморожен
Используется Пантеон веб-платформа, чтобы указать, что сайт был заблокирован из-за бездействия.[80]
598 (неофициальное соглашение) Ошибка тайм-аута сетевого чтения.
Используется некоторыми прокси-серверами HTTP для передачи сигнала таймаута сетевого чтения за прокси-сервером клиенту перед прокси.[81]

Информационные службы Интернета

Microsoft Информационные службы Интернета (IIS) веб-сервер расширяет пространство ошибок 4xx, чтобы сигнализировать об ошибках в запросе клиента.

440 Время ожидания входа в систему
Сессия клиента истекла, и ему необходимо снова войти в систему.[82]
449 Повторить с
Сервер не может выполнить запрос, потому что пользователь не предоставил требуемую информацию.[83]
451 перенаправление
Используется в Exchange ActiveSync когда доступен более эффективный сервер или сервер не может получить доступ к почтовому ящику пользователя.[84] Ожидается, что клиент повторно запустит операцию HTTP AutoDiscover, чтобы найти более подходящий сервер.[85]

IIS иногда использует дополнительные десятичные субкоды для получения более конкретной информации,[86] однако эти подкоды появляются только в полезной нагрузке ответа и в документации, а не вместо фактического кода состояния HTTP.

nginx

В nginx ПО веб-сервера расширяет пространство ошибок 4xx, чтобы сигнализировать о проблемах с запросом клиента.[87][88]

444 Нет ответа
Используется внутри[89] чтобы дать серверу команду не возвращать информацию клиенту и немедленно закрыть соединение.
494 Заголовок запроса слишком большой
Клиент отправил слишком большой запрос или слишком длинную строку заголовка.
495 Ошибка сертификата SSL
Расширение ошибка 400, неверный запрос код ответа, используемый, когда клиент предоставил недопустимый сертификат клиента.
496 Требуется сертификат SSL
Расширение ошибка 400, неверный запрос код ответа, используемый, когда сертификат клиента требуется, но не предоставляется.
497 HTTP-запрос отправлен на HTTPS-порт
Расширение ошибка 400, неверный запрос код ответа, используемый, когда клиент отправил HTTP-запрос на порт, который прослушивает HTTPS-запросы.
499 Клиент закрытый запрос
Используется, когда клиент закрыл запрос до того, как сервер смог отправить ответ.

Cloudflare

Cloudflare Служба обратного прокси расширяет область ошибок серии 5xx, чтобы сигнализировать о проблемах с исходным сервером.[90]

520 Веб-сервер возвратил неизвестную ошибку
Исходный сервер вернул Cloudflare пустой, неизвестный или необъяснимый ответ.[91]
521 Веб-сервер не работает
Исходный сервер отклонил соединение с Cloudflare.
522 Время ожидания подключения истекло
Cloudflare не удалось договориться о Рукопожатие TCP с исходным сервером.
523 Источник недоступен
Cloudflare не смог связаться с исходным сервером; например, если Записи DNS для исходного сервера неверны.
524 Истекло время ожидания
Cloudflare удалось установить TCP-соединение с исходным сервером, но не получил своевременного ответа HTTP.
525 SSL Handshake Failed
Cloudflare не удалось согласовать Подтверждение SSL / TLS с исходным сервером.
526 Неверный сертификат SSL
Cloudflare не удалось проверить сертификат SSL на исходном веб-сервере.
527 Ошибка рельсотрона
Ошибка 527 указывает на прерванное соединение между Cloudflare и сервером Railgun исходного сервера.[92]
530
Ошибка 530 возвращается вместе с ошибкой 1xxx.[93]

AWS Elastic Load Balancer

Amazon с Эластичная балансировка нагрузки добавляет несколько пользовательских кодов возврата 4xx

460

Клиент закрыл соединение с балансировщиком нагрузки до истечения периода ожидания простоя. Обычно, когда время ожидания клиента меньше, чем время ожидания Elastic Load Balancer.[94]

463

Балансировщик нагрузки получил заголовок запроса X-Forwarded-For с более чем 30 IP-адресами.[94]

Смотрите также

  • Пользовательские страницы ошибок
  • Список кодов возврата FTP-сервера
  • Список полей заголовка HTTP
  • Список кодов возврата SMTP-сервера
  • Общий формат журнала

Примечания

  1. ^ Выделенные курсивом слова и фразы, например должен и должен представляют руководящие принципы интерпретации, как дано RFC 2119

Рекомендации

  1. ^ «Протокол передачи гипертекста (HTTP / 1.1): семантика и содержание». IETF. В архиве из оригинала 25 мая 2017 г.. Получено 16 декабря, 2017.
  2. ^ а б c «Реестр кода состояния протокола передачи гипертекста (HTTP)». Iana.org. В архиве с оригинала 11 декабря 2011 г.. Получено 8 января, 2015.
  3. ^ «10 определений кодов состояния». W3. В архиве из оригинала 16 марта 2010 г.. Получено 16 октября, 2015.
  4. ^ «Протокол передачи гипертекста (HTTP / 1.1): семантика и контент — 5.1.1. Ожидайте». В архиве из оригинала 25 мая 2017 г.. Получено 27 сентября, 2017.
  5. ^ «101». httpstatus. Архивировано из оригинал 30 октября 2015 г.. Получено 16 октября, 2015.
  6. ^ Голанд, Яронн; Уайтхед, Джим; Файзи, Асад; Картер, Стив Р .; Дженсен, Дел (февраль 1999 г.). Расширения HTTP для распределенной разработки — WEBDAV. IETF. Дои:10.17487 / RFC2518. RFC 2518. Получено 24 октября, 2009.
  7. ^ Оку, Кадзухо (Декабрь 2017 г.). Код состояния HTTP для индикации подсказок. IETF. Дои:10.17487 / RFC8297. RFC 8297. Получено 20 декабря, 2017.
  8. ^ «200 ОК». Протокол передачи гипертекста — HTTP / 1.1. IETF. Июнь 1999 г. с. 10.2.1. Дои:10.17487 / RFC2616. RFC 2616. Получено 30 августа, 2016.
  9. ^ Стюарт, Марк; джна. «Создать запрос с POST, код ответа 200 или 201 и содержание». Переполнение стека. В архиве с оригинала 11 октября 2016 г.. Получено 16 октября, 2015.
  10. ^ «202». httpstatus. Архивировано из оригинал 19 октября 2015 г.. Получено 16 октября, 2015.
  11. ^ «RFC 7231, раздел 6.3.4». В архиве с оригинала 25 мая 2017 года.
  12. ^ «RFC 7230, раздел 5.7.2». В архиве из оригинала 3 февраля 2016 г.. Получено 3 февраля, 2016.
  13. ^ Симманс, Крис. «Коды ответов сервера и что они означают». Koozai. Архивировано из оригинал 26 сентября 2015 г.. Получено 16 октября, 2015.
  14. ^ «IETF RFC7231 раздел 6.3.6. — 205 Сброс содержимого». IETF.org. В архиве из оригинала 25 мая 2017 г.. Получено 6 сентября, 2018.
  15. ^ «diff —git a / linkchecker.module b / linkchecker.module». Drupal. Архивировано из оригинал 4 марта 2016 г.. Получено 16 октября, 2015.
  16. ^ а б c d е Дюссо, Лиза, изд. (Июнь 2007 г.). Расширения HTTP для веб-распределенной разработки и управления версиями (WebDAV). IETF. Дои:10.17487 / RFC4918. RFC 4918. Получено 24 октября, 2009.
  17. ^ Дельта-кодирование в HTTP. IETF. Январь 2002 г. Дои:10.17487 / RFC3229. RFC 3229. Получено 25 февраля, 2011.
  18. ^ «Протокол передачи гипертекста (HTTP / 1.1): семантика и содержание». IETF. В архиве из оригинала 25 мая 2017 г.. Получено 13 февраля, 2016.
  19. ^ «300». httpstatus. Архивировано из оригинал 17 октября 2015 г.. Получено 16 октября, 2015.
  20. ^ «301». httpstatus. Архивировано из оригинал 27 октября 2015 г.. Получено 16 октября, 2015.
  21. ^ Бернерс-Ли, Тим; Филдинг, Рой Т.; Нильсен, Хенрик Фристик (Май 1996 г.). Протокол передачи гипертекста — HTTP / 1.0. IETF. Дои:10.17487 / RFC1945. RFC 1945. Получено 24 октября, 2009.
  22. ^ «Протокол передачи гипертекста (HTTP / 1.1): семантика и содержание, раздел 6.4». IETF. В архиве из оригинала 25 мая 2017 г.. Получено 12 июня, 2014.
  23. ^ «Ссылка на метод redirect_to в Ruby Web Framework« Ruby on Rails ». В нем говорится: перенаправление происходит как заголовок« 302 перемещен », если не указано иное». Архивировано из оригинал 5 июля 2012 г.. Получено 30 июня, 2012.
  24. ^ «303». httpstatus. В архиве с оригинала 22 октября 2015 г.. Получено 16 октября, 2015.
  25. ^ «304 не изменено». Сеть разработчиков Mozilla. Архивировано из оригинал 2 июля 2017 г.. Получено 6 июля, 2017.
  26. ^ Коэн, Джош. «Коды ответа HTTP / 1.1 305 и 306». Рабочая группа HTTP. В архиве из оригинала 8 сентября 2014 г.. Получено 8 сентября, 2014.
  27. ^ «Протокол передачи гипертекста (HTTP / 1.1): семантика и контент, раздел 6.4.7, временное перенаправление 307». IETF. 2014. В архиве из оригинала 25 мая 2017 г.. Получено 20 сентября, 2014.
  28. ^ «Код состояния 308 протокола передачи гипертекста (постоянное перенаправление)». Инженерная группа Интернета. Апрель 2015 г. В архиве из оригинала 16 апреля 2015 г.. Получено 6 апреля, 2015.
  29. ^ «E Объяснение кодов неисправностей». Oracle. В архиве из оригинала 16 февраля 2015 г.. Получено 16 октября, 2015.
  30. ^ «RFC7231 по коду 400». Tools.ietf.org. В архиве из оригинала 25 мая 2017 г.. Получено 8 января, 2015.
  31. ^ «401». httpstatus. Архивировано из оригинал 17 октября 2015 г.. Получено 16 октября, 2015.
  32. ^ «RFC7235 по коду 401». Tools.ietf.org. В архиве из оригинала 7 февраля 2015 г.. Получено 8 февраля, 2015.
  33. ^ «Учебное пособие по GNU Taler для разработчиков веб-магазинов PHP 0.4.0». docs.taler.net. Архивировано из оригинал 8 ноября 2017 г.. Получено 29 октября, 2017.
  34. ^ «Стандартные ответы на ошибки Google API». 2016. Архивировано с оригинал 25 мая 2017 г.. Получено 21 июня, 2017.
  35. ^ «Документация по API Sipgate». В архиве с оригинала 10 июля 2018 г.. Получено 10 июля, 2018.
  36. ^ «Shopify Документация». В архиве с оригинала 25 июля 2018 г.. Получено 25 июля, 2018.
  37. ^ «Справочник по Stripe API — Ошибки». stripe.com. Получено 28 октября, 2019.
  38. ^ Сингх, Прабхат; user1740567. Характеристики «Spring 3.x JSON status 406» недопустимы согласно запросу «accept» headers ()««. Переполнение стека. В архиве с оригинала 11 октября 2016 г.. Получено 16 октября, 2015.
  39. ^ «407». httpstatus. Архивировано из оригинал 11 октября 2015 г.. Получено 16 октября, 2015.
  40. ^ «408». httpstatus. Архивировано из оригинал 31 октября 2015 г.. Получено 16 октября, 2015.
  41. ^ «По-разному ли Google обрабатывает коды состояния 404 и 410? (Youtube)». 2014. В архиве из оригинала 8 января 2015 г.. Получено 4 февраля, 2015.
  42. ^ «Список кодов состояния HTTP». Google Книги. Получено 16 октября, 2015.
  43. ^ «Архивная копия». В архиве с оригинала 26 июня 2019 г.. Получено 20 июня, 2019.CS1 maint: заархивированная копия как заголовок (ссылка на сайт)
  44. ^ Коусер; Патель, Амит. «Код ответа REST для недопустимых данных». Переполнение стека. В архиве с оригинала 11 октября 2016 г.. Получено 16 октября, 2015.
  45. ^ «RFC2616 по статусу 413». Tools.ietf.org. В архиве из оригинала 7 марта 2011 г.. Получено 11 ноября, 2015.
  46. ^ user27828. «Запрос GET — почему мой URI такой длинный?». Переполнение стека. В архиве с оригинала 11 октября 2016 г.. Получено 16 октября, 2015.
  47. ^ «RFC2616 по статусу 414». Tools.ietf.org. В архиве из оригинала 7 марта 2011 г.. Получено 11 ноября, 2015.
  48. ^ «RFC7231 по статусу 415». Tools.ietf.org. В архиве из оригинала 25 мая 2017 г.. Получено 2 мая, 2019.
  49. ^ Сиглер, Крис. «416 Запрошенный диапазон не удовлетворяется». GetStatusCode. Архивировано из оригинал 22 октября 2015 г.. Получено 16 октября, 2015.
  50. ^ «RFC2616 по статусу 416». Tools.ietf.org. В архиве из оригинала 7 марта 2011 г.. Получено 11 ноября, 2015.
  51. ^ TheDeadLike. «Коды состояния HTTP / 1.1 400 и 417, нельзя выбрать какой». serverFault. Архивировано из оригинал 10 октября 2015 г.. Получено 16 октября, 2015.
  52. ^ Ларри Масинтер (1 апреля 1998 г.). Протокол управления гипертекстовым кофейником (HTCPCP / 1.0). Дои:10.17487 / RFC2324. RFC 2324. Любая попытка заварить кофе с помощью чайника должна приводить к появлению кода ошибки «418 Я чайник». Полученное тело объекта МОЖЕТ быть коротким и крепким.
  53. ^ Барри Шварц (26 августа 2014 г.). «Новое пасхальное яйцо Google для гиков SEO: статус сервера 418, я чайник». Search Engine Land. Архивировано из оригинал 15 ноября 2015 г.. Получено 4 ноября, 2015.
  54. ^ «Чайник Google». Получено 23 октября, 2017.[мертвая ссылка ]
  55. ^ «Протокол передачи гипертекста версии 2». Март 2015. Архивировано с оригинал 25 апреля 2015 г.. Получено 25 апреля, 2015.
  56. ^ «9.1.1. Повторное использование соединения». RFC7540. Май 2015. В архиве с оригинала от 23 июня 2015 г.. Получено 11 июля, 2017.
  57. ^ Khare, R; Лоуренс, С. «Обновление до TLS в HTTP / 1.1». IETF. Сетевая рабочая группа. В архиве с оригинала 8 октября 2015 г.. Получено 16 октября, 2015.
  58. ^ а б c d Ноттингем, М .; Филдинг, Р. (апрель 2012 г.). «RFC 6585 — Дополнительные коды состояния HTTP». Запрос комментариев. Инженерная группа Интернета. В архиве из оригинала 4 мая 2012 г.. Получено 1 мая, 2012.
  59. ^ Брей, Т. (февраль 2016 г.). «Код состояния HTTP для сообщения о юридических препятствиях». ietf.org. В архиве из оригинала 4 марта 2016 г.. Получено 7 марта, 2015.
  60. ^ «Коды ошибок сервера». CSGNetwork.com. Архивировано из оригинал 8 октября 2015 г.. Получено 16 октября, 2015.
  61. ^ мистер Готт. «Коды состояния HTTP для обработки ошибок в вашем API». мистер Готт. Архивировано из оригинал 30 сентября 2015 г.. Получено 16 октября, 2015.
  62. ^ Фишер, Тим. «внутренняя ошибка сервера 500». Lifewire. Архивировано из оригинал 23 февраля 2017 г.. Получено 22 февраля, 2017.
  63. ^ «Ошибка HTTP 501 не реализована». Проверить вверх вниз. Архивировано из оригинал 12 мая 2017 г.. Получено 22 февраля, 2017.
  64. ^ Фишер, Тим. «502 Неверный шлюз». Lifewire. Архивировано из оригинал 23 февраля 2017 г.. Получено 22 февраля, 2017.
  65. ^ Алекс. «Какой правильный код состояния HTTP отправлять, когда сайт не работает на техническое обслуживание?». Переполнение стека. В архиве с оригинала 11 октября 2016 г.. Получено 16 октября, 2015.
  66. ^ «Ошибка HTTP 504, время ожидания шлюза». Проверить вверх вниз. Архивировано из оригинал 20 сентября 2015 г.. Получено 16 октября, 2015.
  67. ^ «Ошибка HTTP 505 — версия HTTP не поддерживается». Проверить вверх вниз. Архивировано из оригинал 24 сентября 2015 г.. Получено 16 октября, 2015.
  68. ^ Холтман, Коэн; Муц, Эндрю Х. (март 1998 г.). Прозрачное согласование содержимого в HTTP. IETF. Дои:10.17487 / RFC2295. RFC 2295. Получено 24 октября, 2009.
  69. ^ Нильсен, Хенрик Фристик; Лич, Пол; Лоуренс, Скотт (февраль 2000 г.). Платформа расширения HTTP. IETF. Дои:10.17487 / RFC2774. RFC 2774. Получено 24 октября, 2009.
  70. ^ «ResumableHttpRequestsProposal». Архивировано из оригинал 13 октября 2015 г.. Получено 8 марта, 2017.
  71. ^ «Apache ProxyErrorOverride». В архиве с оригинала 12 июня 2018 г.. Получено 7 июня, 2018.
  72. ^ «Enum HttpStatus». Spring Framework. org.springframework.http. В архиве с оригинала 25 октября 2015 г.. Получено 16 октября, 2015.
  73. ^ «Коды ошибок Twitter и ответы на них». Twitter. 2014. Архивировано с оригинал 27 сентября 2017 г.. Получено 20 января, 2014.
  74. ^ «Коды статуса HTTP и SEO: что вам нужно знать». ContentKing. Получено 9 августа, 2019.
  75. ^ «Скриншот страницы ошибки». Архивировано из оригинал (BMP) 11 мая 2013 г.. Получено 11 октября, 2009.
  76. ^ а б «Использование аутентификации на основе токенов». Пакет SDK для ArcGIS Server SOAP. Архивировано из оригинал 26 сентября 2014 г.. Получено 8 сентября, 2014.
  77. ^ «Коды ошибок HTTP и быстрые исправления». Docs.cpanel.net. Архивировано из оригинал 23 ноября 2015 г.. Получено 15 октября, 2015.
  78. ^ «Документация по SSL Labs API v3». github.com.
  79. ^ «Соображения по поводу платформы | Документы Pantheon». pantheon.io. Архивировано из оригинал 6 января 2017 г.. Получено 5 января, 2017.
  80. ^ http://www.injosoft.se, Injosoft AB. «Коды статуса HTTP — ascii-code.com». www.ascii-code.com. Архивировано из оригинал 7 января 2017 г.. Получено 23 декабря, 2016.
  81. ^ «Сообщение об ошибке при попытке войти в Exchange 2007 с помощью Outlook Web Access:» 440 Тайм-аут входа««. Microsoft. 2010. Получено 13 ноября, 2013.
  82. ^ «2.2.6 449 Retry With Status Code». Microsoft. 2009. В архиве из оригинала 5 октября 2009 г.. Получено 26 октября, 2009.
  83. ^ «MS-ASCMD, раздел 3.1.5.2.2». Msdn.microsoft.com. В архиве с оригинала 26 марта 2015 г.. Получено 8 января, 2015.
  84. ^ «Мисс-оксдиско». Msdn.microsoft.com. В архиве с оригинала 31 июля 2014 г.. Получено 8 января, 2015.
  85. ^ «Коды состояния HTTP в IIS 7.0». Microsoft. 14 июля 2009 г. В архиве из оригинала от 9 апреля 2009 г.. Получено 1 апреля, 2009.
  86. ^ «ngx_http_request.h». исходный код nginx 1.9.5. nginx inc. Архивировано из оригинал 19 сентября 2017 г.. Получено 9 января, 2016.
  87. ^ «ngx_http_special_response.c». исходный код nginx 1.9.5. nginx inc. Архивировано из оригинал 8 мая 2018 г.. Получено 9 января, 2016.
  88. ^ директива return В архиве 1 марта 2018 г. Wayback Machine (модуль http_rewrite) документация.
  89. ^ «Устранение неполадок: страницы ошибок». Cloudflare. Архивировано из оригинал 4 марта 2016 г.. Получено 9 января, 2016.
  90. ^ «Ошибка 520: веб-сервер возвращает неизвестную ошибку». Cloudflare. Получено 1 ноября, 2019.
  91. ^ «Ошибка 527: ошибка прослушивателя рейлгана для источника». Cloudflare. В архиве с оригинала 13 октября 2016 г.. Получено 12 октября, 2016.
  92. ^ «Ошибка 530». Cloudflare. Получено 1 ноября, 2019.
  93. ^ а б «Устранение неполадок в балансировщиках нагрузки вашего приложения — эластичная балансировка нагрузки». docs.aws.amazon.com. Получено 27 августа, 2019.

внешняя ссылка

  • RFC 7231 — протокол передачи гипертекста (HTTP / 1.1): семантика и контент — Раздел 6, Коды состояния ответа
  • Реестр кода состояния протокола передачи гипертекста (HTTP)
  • База знаний Microsoft: MSKB943891: Коды состояния HTTP в IIS 7.0
  • База знаний Microsoft Office: Код ошибки 2–11

100
Continue
[RFC9110, Section 15.2.1]

101
Switching Protocols
[RFC9110, Section 15.2.2]

102
Processing
[RFC2518]

103
Early Hints
[RFC8297]

104-199
Unassigned

200
OK
[RFC9110, Section 15.3.1]

201
Created
[RFC9110, Section 15.3.2]

202
Accepted
[RFC9110, Section 15.3.3]

203
Non-Authoritative Information
[RFC9110, Section 15.3.4]

204
No Content
[RFC9110, Section 15.3.5]

205
Reset Content
[RFC9110, Section 15.3.6]

206
Partial Content
[RFC9110, Section 15.3.7]

207
Multi-Status
[RFC4918]

208
Already Reported
[RFC5842]

209-225
Unassigned

226
IM Used
[RFC3229]

227-299
Unassigned

300
Multiple Choices
[RFC9110, Section 15.4.1]

301
Moved Permanently
[RFC9110, Section 15.4.2]

302
Found
[RFC9110, Section 15.4.3]

303
See Other
[RFC9110, Section 15.4.4]

304
Not Modified
[RFC9110, Section 15.4.5]

305
Use Proxy
[RFC9110, Section 15.4.6]

306
(Unused)
[RFC9110, Section 15.4.7]

307
Temporary Redirect
[RFC9110, Section 15.4.8]

308
Permanent Redirect
[RFC9110, Section 15.4.9]

309-399
Unassigned

400
Bad Request
[RFC9110, Section 15.5.1]

401
Unauthorized
[RFC9110, Section 15.5.2]

402
Payment Required
[RFC9110, Section 15.5.3]

403
Forbidden
[RFC9110, Section 15.5.4]

404
Not Found
[RFC9110, Section 15.5.5]

405
Method Not Allowed
[RFC9110, Section 15.5.6]

406
Not Acceptable
[RFC9110, Section 15.5.7]

407
Proxy Authentication Required
[RFC9110, Section 15.5.8]

408
Request Timeout
[RFC9110, Section 15.5.9]

409
Conflict
[RFC9110, Section 15.5.10]

410
Gone
[RFC9110, Section 15.5.11]

411
Length Required
[RFC9110, Section 15.5.12]

412
Precondition Failed
[RFC9110, Section 15.5.13]

413
Content Too Large
[RFC9110, Section 15.5.14]

414
URI Too Long
[RFC9110, Section 15.5.15]

415
Unsupported Media Type
[RFC9110, Section 15.5.16]

416
Range Not Satisfiable
[RFC9110, Section 15.5.17]

417
Expectation Failed
[RFC9110, Section 15.5.18]

418
(Unused)
[RFC9110, Section 15.5.19]

419-420
Unassigned

421
Misdirected Request
[RFC9110, Section 15.5.20]

422
Unprocessable Content
[RFC9110, Section 15.5.21]

423
Locked
[RFC4918]

424
Failed Dependency
[RFC4918]

425
Too Early
[RFC8470]

426
Upgrade Required
[RFC9110, Section 15.5.22]

427
Unassigned

428
Precondition Required
[RFC6585]

429
Too Many Requests
[RFC6585]

430
Unassigned

431
Request Header Fields Too Large
[RFC6585]

432-450
Unassigned

451
Unavailable For Legal Reasons
[RFC7725]

452-499
Unassigned

500
Internal Server Error
[RFC9110, Section 15.6.1]

501
Not Implemented
[RFC9110, Section 15.6.2]

502
Bad Gateway
[RFC9110, Section 15.6.3]

503
Service Unavailable
[RFC9110, Section 15.6.4]

504
Gateway Timeout
[RFC9110, Section 15.6.5]

505
HTTP Version Not Supported
[RFC9110, Section 15.6.6]

506
Variant Also Negotiates
[RFC2295]

507
Insufficient Storage
[RFC4918]

508
Loop Detected
[RFC5842]

509
Unassigned

510
Not Extended (OBSOLETED)
[RFC2774][status-change-http-experiments-to-historic]

511
Network Authentication Required
[RFC6585]

512-599
Unassigned

Уровень сложности
Простой

Время на прочтение
9 мин

Количество просмотров 16K

Привет! Меня зовут Ивасюта Алексей, я техлид команды Bricks в Авито в кластере Architecture. Я решил написать цикл статей об истории и развитии HTTP, рассмотреть каждую из его версий и проблемы, которые они решали и решают сейчас. 

Весь современный веб построен на протоколе HTTP. Каждый сайт использует его для общения клиента с сервером. Между собой сервера тоже часто общаются по этому протоколу. На данный момент существует четыре его версии и все они до сих пор используются. Поэтому статьи будут полезны инженерам любых уровней и специализаций, и помогут систематизировать знания об этой важной технологии.

Что такое HTTP

HTTP — это гипертекстовый протокол передачи данных прикладного уровня в сетевой модели OSI. Его представил миру Тим Бернерс-Ли в марте 1991 года. Главная особенность HTTP — представление всех данных в нём в виде простого текста. Через HTTP разные узлы в сети общаются между собой. Модель клиент-серверного взаимодействия классическая: клиент посылает запрос серверу, сервер обрабатывает запрос и возвращает ответ клиенту. Полученный ответ клиент обрабатывает и решает: прекратить взаимодействие или продолжить отправлять запросы.

Ещё одна особенность: протокол не сохраняет состояние между запросами. Каждый запрос от клиента для сервера — отдельная транзакция. Когда поступают два соседних запроса, сервер не понимает, от одного и того же клиента они поступили, или от разных. Такой подход значительно упрощает построение архитектуры веб-серверов.

Как правило, передача данных по HTTP осуществляется через открытое TCP/IP-соединение1. Серверное программное обеспечение по умолчанию обычно использует TCP-порт 80 для работы веб-сервера, а порт 443 — для HTTPS-соединений.

HTTPS (HTTP Secure) — это надстройка над протоколом HTTP, которая поддерживает шифрование посредством криптографических протоколов SSL и TLS. Они шифруют отправляемые данные на клиенте и дешифруют их на сервере. Это защищает данные от чтения злоумышленниками, даже если им удастся их перехватить.  

HTTP/0.9

В 1991 году была опубликована первая версия протокола с названием HTTP/0.9. Эта реализация была проста, как топор. От интернет-ресурса того времени требовалось только загружать запрашиваемую HTML-страницу и HTTP/0.9 справлялся с этой задачей. Обычный запрос к серверу выглядел так:

GET /http-spec.html

В протоколе был определен единственный метод GET и и указывался путь к ресурсу. Так пользователи получали страничку. После этого открытое соединение сразу закрывалось. 

HTTP/1.0

Годы шли и интернет менялся. Стало понятно, что нужно не только получать странички от сервера, но и отправлять ему данные. В 1996 году вышла версия протокола 1.0.

Что изменилось:

  1. В запросе теперь надо было указывать версию протокола. Так сервер мог понимать, как обрабатывать полученные данные.

  2. В ответе от сервера появился статус завершения обработки запроса.

  3. К запросу и ответу добавился новый блок с заголовками.

  4. Добавили поддержку новых методов:

  • HEAD запрашивает ресурс так же, как и метод GET, но без тела ответа. Так можно получить только заголовки, без самого ресурса.

  • POST добавляет сущность к определённому ресурсу. Часто вызывает изменение состояния или побочные эффекты на сервере. Например, так можно отправить запрос на добавление нового поста в блог.

Структура запроса

Простой пример запроса:

GET /path HTTP/1.0
Content-Type: text/html; charset=utf-8
Content-Length: 4
X-Custom-Header: value

test

В первой строчке указаны метод запроса — GET, путь к ресурсу — /path и версия протокола —  HTTP/1.0.

Далее идёт блок заголовков. Заголовки — это пары ключ: значение, каждая из которых записывается с новой строки и разделяется двоеточием. Они передают дополнительные данные и настройки от клиента к серверу и обратно. 

HTTP — это текстовый протокол, поэтому и все данные передаются в виде текста. Заголовки можно отделить друг от друга только переносом строки. Нельзя использовать запятые, точку с запятой, или другие разделители. Всё, что идет после имени заголовка с двоеточием и до переноса строки, будет считаться значением заголовка2.

В примере серверу передали три заголовка: 

  1. Content-Type — стандартный заголовок. Показывает, в каком формате будут передаваться данные в теле запроса или ответа.

  2. Content-Length — сообщает длину контента в теле запроса в байтах.

  3. X-Custom-Header — пользовательские заголовки, начинающиеся с X- с произвольными именем. Через них реализуется специфическая логика обработки для конкретного сервера. Если веб-сервер не поддерживает такие заголовки, то он проигнорирует их.

После блока заголовков идёт тело запроса, в котором передается текст test. 

А так может выглядеть ответ от сервера:

HTTP/1.1 200 OK
Date: Thu, 29 Jul 2021 19:20:01 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 2
Connection: close
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

OK

В первой строке — версия протокола и статус ответа, например, 200 ОК. Далее идут заголовки ответа. После блока заголовков — тело ответа, в котором записан текст OK

Статусы ответов

Клиенту зачастую недостаточно просто отправить запрос на сервер. Во многих случаях надо дождаться ответа и понять, как сервер обработал запрос. Для этого были придуманы статусы ответов. Это трёхзначные числовые коды с небольшими текстовыми обозначениями. Их можно увидеть в терминале или браузере. Сами коды делятся на 5 классов:

  • Информационные ответы: коды 100–199

  • Успешные ответы: коды 200–299

  • Редиректы: коды 300–399

  • Клиентские ошибки: коды 400–499

  • Серверные ошибки: коды 500–599

Мы рассмотрим основные коды, которые чаще всего встречаются в реальных задачах. С остальными более подробно можно ознакомиться в реестре кодов состояния HTTP.

Информационные ответы

100 Continue — промежуточный ответ. Он указывает, что запрос успешно принят.  Клиент может продолжать присылать запросы или проигнорировать этот ответ, если запрос был завершён.

Примечание

Этот код ответа доступен с версии HTTP/1.1.

101 Switching Protocol присылается в ответ на запрос, в котором есть заголовок Upgrade. Это означает, что сервер переключился на протокол, который был указан в заголовке. Такая методика используется, например, для переключения на протокол Websocket.

102 Processing — запрос получен сервером, но его обработка ещё не завершена.

Успешные ответы

200 OK — запрос принят и корректно обработан веб-сервером.

201 Created — запрос корректно обработан и в результате был создан новый ресурс. Обычно он присылается в ответ на POST запрос.

Редиректы

301 Moved Permanently — запрашиваемый ресурс на постоянной основе переехал на новый адрес. Тогда новый путь к ресурсу указывается сервером в заголовке Location ответа.

Примечание

Клиент может изменить метод последующего запроса с POST на GET.

302 Found — указывает, что целевой ресурс временно доступен по другому URl. Адрес перенаправления может быть изменен в любое время, а клиент должен продолжать использовать действующий URI для будущих запросов. Тогда временный путь к ресурсу указывается сервером в заголовке Location ответа.

Примечание

Клиент может изменить метод последующего запроса с POST на GET.

307 Temporary Redirect — имеет то же значение, что и код 302, за исключением того, что клиент не может менять метод последующего запроса.

308 Permanent Redirect — имеет то же значение, что и код 301, за исключением того, что клиент не может менять метод последующего запроса.

Клиентские ошибки

400 Bad Request — запрос от клиента к веб-серверу составлен некорректно. Обычно это происходит, если клиент не передаёт необходимые заголовки или параметры.

401 Unauthorized — получение запрашиваемого ресурса доступно только аутентифицированным пользователям.

403 Forbidden — у клиента не хватает прав для получения запрашиваемого ресурса. Например, когда обычный пользователь сайта пытается получить доступ к панели администратора.

404 Not Found — сервер не смог найти запрашиваемый ресурс.

405 Method Not Allowed — сервер знает о существовании HTTP-метода, который был указан в запросе, но не поддерживает его. В таком случае сервер должен вернуть список поддерживаемых методов в заголовке Allow ответа.

Серверные ошибки

500 Internal Server Error — на сервере произошла непредвиденная ошибка.

501 Not Implemented — метод запроса не поддерживается сервером и не может быть обработан.

502 Bad Gateway — сервер, действуя как шлюз или прокси, получил недопустимый ответ от входящего сервера, к которому он обращался при попытке выполнить запрос.

503 Service Unavailable — сервер не готов обработать запрос (например, из-за технического обслуживания или перегрузки). Обратите внимание, что вместе с этим ответом должна быть отправлена ​​удобная страница с объяснением проблемы. Этот ответ следует использовать для временных условий, а HTTP-заголовок Retry-After по возможности должен содержать расчётное время до восстановления службы.

504 Gateway Timeout — этот ответ об ошибке выдается, когда сервер действует как шлюз и не может получить ответ за отведенное время.

505 HTTP Version Not Supported — версия HTTP, используемая в запросе, не поддерживается сервером.

В HTTP из всего диапазона кодов используется совсем немного. Те коды, которые не используются для задания определенной логики в спецификации, являются неназначенными и могут использоваться веб-серверами для определения своей специфической логики. Это значит, что вы можете, например, придать коду 513 значение «Произошла ошибка обработки видео», или любое другое. Неназначенные коды вы можете посмотреть в реестре кодов состояния HTTP.3

Тело запроса и ответа

Тело запроса опционально и всегда отделяется от заголовков пустой строкой. А как понять, где оно заканчивается? Всё кажется очевидным: где кончается строка, там и заканчивается тело. Однако, два символа переноса строки в HTTP означают конец запроса и отправляют его на сервер. Как быть, если мы хотим передать в теле текст, в котором есть несколько абзацев с разрывами в две строки?

POST /path HTTP/1.1
Host: localhost

Первая строка


Вторая строка после разрыва

По логике работы HTTP соединение отправится сразу после второй пустой строки и сервер получит в качестве данных только строку Первая строка. Описанную проблему решает специальный заголовок Content-Length. Он указывает на длину контента в байтах. Обычно клиенты (например, браузеры) автоматически считают длину передаваемых данных и добавляют к запросу заголовок с этим значением. Когда сервер получит запрос, он будет ожидать в качестве контента ровно столько байт, сколько указано в заголовке.

Однако, этого недостаточно для того, чтобы передать данные на сервер. Поведение зависит от реализации сервера, но для большинства из них необходимо также передать заголовок Content-Type. Он указывает на тип передаваемых данных. В качестве значения для этого заголовка используют MIME-типы.4

MIME (Multipurpose Internet Mail Extensions, многоцелевые расширения интернет-почты) — стандарт, который является частью протокола HTTP. Задача MIME — идентифицировать тип содержимого документа по его заголовку. К примеру, текстовый файл имеет тип text/plain, а HTML-файл — text/html.

Для передачи данных в формате обычного текста надо указать заголовок Content-Type: text/plain, а для JSON — Content-Type: application/json.

Можно ли передать тело с GET-запросом?

Популярный вопрос на некоторых собеседованиях: «Можно ли передать тело с GET-запросом?». Правильный ответ — да. Тело запроса не зависит от метода. В стандарте не описана возможность принимать тело запроса у GET-метода, но это и не запрещено. Технически вы можете отправить данные в теле, но скорее всего веб-сервер будет их игнорировать.

Представим, что на абстрактном сайте есть форма аутентификации пользователя, в которой есть всего два поля: email и пароль. 

Если пользователь ввёл данные и нажал на кнопку «Войти», то данные из полей формы должны попасть на сервер. Самым простым и распространенным форматом передачи таких данных будет MIME application/x-www-form-urlencoded. В нем все поля передаются в одной строке в формате ключ=значение и разделяются знаком &

Запрос на отправку данных будет выглядеть так: 

POST /login HTTP/1.0
Host: example.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 26
login=user&password=qwerty

Тут есть небольшая особенность. Как понять, где заканчивается ключ и начинается его значение, если в пароле будет присутствовать знак «=» ?

POST /login HTTP/1.0
Host: example.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 26
login=user&password=123=45

В этом случае сервер не сможет понять, как разбить строку на параметры и их значения. На самом деле значения кодируются при помощи механизма url encoding.5 При использовании этого механизма знак «=» будет преобразован в код %3D .

Тогда наш запрос приобретёт такой вид:

POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 28

login=user&password=123%3D45

Query string

Данные на сервер можно передавать через тело запроса и через так называемую строку запроса Query String. Это параметры формата ключ=значение, которые располагаются в пути к ресурсу:

GET /files?key=value&key2=value2 HTTP/1.0

При этом параметры можно передавать прямо от корня домена:

GET /?key=value&key2=value2 HTTP/1.0

Query String имеет такой же формат, как и тело запроса с MIME application/x-www-form-urlencoded, только первая пара значений отделяется от адреса вопросительным знаком.

Некоторые инженеры ошибочно полагают, что Query String являются параметрами GET-запроса и даже называют их GET-параметрами, но на самом деле это не так. Как и тело запроса, Query String не имеет привязки к HTTP-методам и может передаваться с любым типом запросов.

Обычно параметры Query String используются в GET-запросах, чтобы конкретизировать получаемый ресурс. Например, можно получить на сервере список файлов, имена которых будут начинаться с переданного значения. 

GET-запросы по своей идеологии должны быть идемпотентными. Это значит, что множественный вызов метода с одними и теми же параметрами должен приводить к одному и тому же результату. Например, поисковые боты перемещаются по сайту только по ссылкам и делают только GET-запросы, потому что исходя из семантики они не смогут таким образом изменить данные на сайте и повлиять на его работу.

На этом я закончу говорить про версию протокола 1.0, структуру ответов и запросов. В следующей статье я расскажу, что такое Cookies, для чего нужен CORS и как это всё работает. А пока напоследок оставлю полезные ссылки, которые упомянул в тексте:

  1. Основы TCP/IP

  2. Заголовки HTTP

  3. Реестр кодов состояния HTTP

  4. MIME типы

  5. Алгоритм кодирования URL encoding

Следующая статья: Ультимативный гайд по HTTP. Cookies и CORS

Полезная информация

№114-07-2016 17:29:57

moskov1983
Участник
 
Группа: Members
Зарегистрирован: 14-07-2016
Сообщений: 4
UA: IE 8.0

443 ошибка, недействителен сертификат безопасности

подскажите, что делать?

Отсутствует

№214-07-2016 18:29:32

Журавлёва
Участник
 
Группа: Members
Зарегистрирован: 10-07-2016
Сообщений: 129
UA: Firefox 47.0

Re: 443 ошибка, недействителен сертификат безопасности

Отсутствует

№314-07-2016 18:49:25

moskov1983
Участник
 
Группа: Members
Зарегистрирован: 14-07-2016
Сообщений: 4
UA: IE 8.0

Re: 443 ошибка, недействителен сертификат безопасности

посмотрел, скорее всего не то. дело в том, что система свежая, только установил. никаких расширений или дополнений нет. может антивирус.

Добавлено 14-07-2016 18:50:46
мозила не грузит содержимое почт

Отредактировано moskov1983 (14-07-2016 18:50:46)

Отсутствует

№414-07-2016 18:58:29

Журавлёва
Участник
 
Группа: Members
Зарегистрирован: 10-07-2016
Сообщений: 129
UA: Firefox 47.0

Re: 443 ошибка, недействителен сертификат безопасности

Что мешает выключить антивирус-то и проверить? Паранойя?
Что мешает дать сюда ссылку на проблемную страницу?
Вообще, что вам мешает?
Ну проверьте страницу другим браузером, что-ли… Хоть, что-нибудь сделайте самостоятельно.
Вы понимаете, что вам могут помочь, если вы что-то сделали и на каком-то этапе не получается.
Вы-то, не сделали ничего, просто заявили, что есть ошибка 443 и вы считаете, что сам факт наличия ошибки уже достаточен для определения её причины, что-ли?

Отсутствует

№514-07-2016 19:02:17

Sergeys
Administrator
 
Группа: Administrators
Откуда: Moscow, Russia
Зарегистрирован: 23-01-2005
Сообщений: 13977
UA: Firefox 44.0
Веб-сайт

Re: 443 ошибка, недействителен сертификат безопасности

В первую очередь Правила п. 2.1 и 2.2,
потом поиск
читаем — https://forum.mozilla-russia.org/viewtopic.php?pid=584784#p584784 и выполняем


Через сомнения приходим к истине. Цицерон

Отсутствует

№614-07-2016 21:37:28

moskov1983
Участник
 
Группа: Members
Зарегистрирован: 14-07-2016
Сообщений: 4
UA: IE 8.0

Re: 443 ошибка, недействителен сертификат безопасности

Интернет експлоуер работает отлично. Глюк непосредственно в мозиле.

Добавлено 14-07-2016 21:38:44
Параноя, Вы знаете хоть что обозначает ето слово?

Добавлено 14-07-2016 21:39:36
Мне кажется у Вас какой-то комплекс , может Наполеона. Вас что-то беспокоит? Вам тяжело ответить, помочь? откуда злость? я же Вам ничего плохого не сделал, я попросил помощи, не хотите, не помогайте, такая помощь не нужна. Нечего было писать!

Добавлено 14-07-2016 21:40:29
Журавлёва

Отредактировано moskov1983 (14-07-2016 21:40:29)

Отсутствует

№714-07-2016 21:49:38

Журавлёва
Участник
 
Группа: Members
Зарегистрирован: 10-07-2016
Сообщений: 129
UA: Firefox 47.0

Re: 443 ошибка, недействителен сертификат безопасности

Страдающие паранойей отличаются нездоровой подозрительностью, склонностью видеть в случайных событиях происки врагов.
То есть, они боятся отключить антивирус, чтобы выяснить виновника глюка браузера.
Более того, они игнорируют призывы дать больше данных для анализа проблемы, например, дать адрес проблемного сайта, чтобы выяснить у всех ли там проблемы, или только у вас одного.
Вы создаёте ситуацию, при которой вам вынуждены повторять дважды.

Отсутствует

№814-07-2016 21:58:18

moskov1983
Участник
 
Группа: Members
Зарегистрирован: 14-07-2016
Сообщений: 4
UA: IE 8.0

Re: 443 ошибка, недействителен сертификат безопасности

Журавлёва, спасибо большое за пощь.

Отсутствует

Icon Ex Номер ошибки: Ошибка 443
Название ошибки: IE Error 443
Описание ошибки: Ошибка 443: Возникла ошибка в приложении Internet Explorer. Приложение будет закрыто. Приносим извинения за неудобства.
Разработчик: Microsoft Corporation
Программное обеспечение: Internet Explorer
Относится к: Windows XP, Vista, 7, 8, 10, 11

Оценка «IE Error 443»

Эксперты обычно называют «IE Error 443» «ошибкой времени выполнения». Когда дело доходит до Internet Explorer, инженеры программного обеспечения используют арсенал инструментов, чтобы попытаться сорвать эти ошибки как можно лучше. К сожалению, инженеры являются людьми и часто могут делать ошибки во время тестирования, отсутствует ошибка 443.

Ошибка 443 может столкнуться с пользователями Internet Explorer, если они регулярно используют программу, также рассматривается как «IE Error 443». Когда это происходит, конечные пользователи могут сообщить Microsoft Corporation о наличии ошибок «IE Error 443». Команда программирования может использовать эту информацию для поиска и устранения проблемы (разработка обновления). Поэтому, когда вы сталкиваетесь с запросом на обновление Internet Explorer, это обычно связано с тем, что это решение для исправления ошибки 443 и других ошибок.

Сбой во время выполнения Internet Explorer, как правило, когда вы столкнетесь с «IE Error 443» в качестве ошибки во время выполнения. Вот три наиболее заметные причины ошибки ошибки 443 во время выполнения происходят:

Ошибка 443 Crash — Ошибка 443 остановит компьютер от выполнения обычной программной операции. Это происходит много, когда продукт (Internet Explorer) или компьютер не может обрабатывать уникальные входные данные.

Утечка памяти «IE Error 443» — при утечке памяти Internet Explorer это может привести к медленной работе устройства из-за нехватки системных ресурсов. Это может быть вызвано неправильной конфигурацией программного обеспечения Microsoft Corporation или когда одна команда запускает цикл, который не может быть завершен.

Ошибка 443 Logic Error — логическая ошибка возникает, когда Internet Explorer производит неправильный вывод из правильного ввода. Это связано с ошибками в исходном коде Microsoft Corporation, обрабатывающих ввод неправильно.

Основные причины Microsoft Corporation ошибок, связанных с файлом IE Error 443, включают отсутствие или повреждение файла, или, в некоторых случаях, заражение связанного Internet Explorer вредоносным ПО в прошлом или настоящем. Как правило, любую проблему, связанную с файлом Microsoft Corporation, можно решить посредством замены файла на новую копию. Более того, поддержание чистоты реестра и его оптимизация позволит предотвратить указание неверного пути к файлу (например IE Error 443) и ссылок на расширения файлов. По этой причине мы рекомендуем регулярно выполнять очистку сканирования реестра.

Ошибки IE Error 443

IE Error 443 Проблемы, связанные с Internet Explorer:

  • «Ошибка приложения IE Error 443.»
  • «IE Error 443 не является программой Win32. «
  • «Извините, IE Error 443 столкнулся с проблемой. «
  • «IE Error 443 не может быть найден. «
  • «IE Error 443 не может быть найден. «
  • «Проблема при запуске приложения: IE Error 443. «
  • «Файл IE Error 443 не запущен.»
  • «IE Error 443 остановлен. «
  • «Ошибка в пути к программному обеспечению: IE Error 443. «

Проблемы Internet Explorer IE Error 443 возникают при установке, во время работы программного обеспечения, связанного с IE Error 443, во время завершения работы или запуска или менее вероятно во время обновления операционной системы. Запись ошибок IE Error 443 внутри Internet Explorer имеет решающее значение для обнаружения неисправностей электронной Windows и ретрансляции обратно в Microsoft Corporation для параметров ремонта.

Причины проблем IE Error 443

Заражение вредоносными программами, недопустимые записи реестра Internet Explorer или отсутствующие или поврежденные файлы IE Error 443 могут создать эти ошибки IE Error 443.

Точнее, ошибки IE Error 443, созданные из:

  • Поврежденная или недопустимая запись реестра IE Error 443.
  • Вирус или вредоносное ПО, повреждающее IE Error 443.
  • Вредоносное удаление (или ошибка) IE Error 443 другим приложением (не Internet Explorer).
  • IE Error 443 конфликтует с другой программой (общим файлом).
  • Поврежденная установка или загрузка Internet Explorer (IE Error 443).

Продукт Solvusoft

Загрузка
WinThruster 2022 — Проверьте свой компьютер на наличие ошибок.

Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

I just recently had to find a way to get a SSL certificate for my domain as facebook required this by the 1st of October as you may aware.

Therefore I signed and installed my startssl certificate on my server.

Now my problem is, when I try to go to one of my https sites it always asks me to make an exception for my certificate (which is okay at the moment) but after creating this exception my Server, which is as I know a linux server with an cPanel backend, fires a 404 page not found notification to me.

404 Not Found
The server can not find the requested page:

greentomatocars.com.au/fbtab/booking (port 443)
Please forward this error screen to greentomatocars.com.au's WebMaster.

A FaceBook Tab HTTPS Site

Any diagnostics available what’s this all about and whats the problem?

Any answer will be appreciated.

asked Oct 26, 2011 at 20:40

Evils's user avatar

You need to configure your server to also serve your content on port 443 (https). Right now it’s still using the cPanel default.

answered Oct 26, 2011 at 20:47

blahdiblah's user avatar

blahdiblahblahdiblah

32.6k21 gold badges97 silver badges152 bronze badges

1

Once you installed ther certificates, you have to activate SSL via

Security -> SSL/TLS Manager -> Activate SSL on Your Web Site (HTTPS)

answered Oct 26, 2011 at 20:50

Dennis's user avatar

DennisDennis

14.1k2 gold badges47 silver badges57 bronze badges

1

If you got the 404, your SSL is working perfectly, as the «404» was transmitted via SSL. I would investigate the actual problem, which is the 404.

answered Oct 26, 2011 at 23:34

user207421's user avatar

i had similar problem on a server with few hosts (currentlly only one with https support)

i found the sulotion in cpanel FAQ, i went to WHM Home >> Service Configuration >> Apache Configuration >> Include Editor >> Pre Virtual Host Include, and added the following lines:

<VirtualHost IPADDRESS:443>
    ServerName HOSTNAME
    DocumentRoot /usr/local/apache/htdocs
    ServerAdmin EMAIL
    <IfModule mod_suphp.c>
       suPHP_UserGroup MYUSER MYGROUP
    </IfModule>
    SSLEngine on
    SSLCertificateFile SSLCERTIFICATEFILE
    SSLCertificateKeyFile YOUR-SSLCERTIFICATEKEYFILE
</VirtualHost>

answered Aug 15, 2015 at 11:03

Ohad Cohen's user avatar

Ohad CohenOhad Cohen

5,4763 gold badges38 silver badges35 bronze badges

I realize this question is 4 years old.

If you can access the html page at your root domain (say https://midomain.com/), but pages in a directory like https://midomain.com/ give you a 404 Not Found error, then you probably need to add these lines to your httpd-ssl file:

(applies to Apache 2.4)

 <Directory />
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All

    Order deny,allow
    Allow from all
  </Directory>

answered Aug 18, 2016 at 17:48

dev4life's user avatar

dev4lifedev4life

10.5k6 gold badges57 silver badges71 bronze badges

Обновлено 25.06.2017

как открыть порт 443 windows

Добрый день уважаемые читатели и гости блога, продолжаем изучать безопасность в операционных системах Microsoft, в прошлый раз мы решили проблему с долгим поиском обновлений Windows 7, установили их и теперь система более защищена от внешнего мира, в сегодняшней же стать я затрону такую тему, как что такое порты и как открыть порт 443 в windows, за минуту. Данный материал будет полезным для системных администраторов, так и для разработчиков.

Что такое порты в Windows

Давайте я попробую по простому объяснить, что такое порт. Представим себе большой микрорайон с большим количеством многоэтажных домов, в каждом из них есть квартиры с жильцами, общим количеством 65 536, каждая квартира имеет свой уникальный, порядковый номер. Теперь представим, что вам необходимо попасть к другу Васе, который живет в 1443 квартире, вы что делаете идете в нужный дом с таким номером квартиры, далее вам нужно заскочить к Марине, которая живет в 80 квартире, а теперь представьте, что вместо вас это ваш компьютер и вместо ваших друзей, это порты. Каждый такой порт уникален и отвечает за ответ пользователю по определенной службе, например,

  • 80 — это http служба, которая отвечает вам при запрашивании страниц сайта
  • 1433 — это порт службы SQL
  • 443 — https зашифрованный вариант http, с использованием SSL сертификатов.

Из выше описанного, порты бывают двух типов:

  1. Жестко забронированные под определенные службы. Это порты которые используются исключительно определенными программами. Диапазон таких портов от 0-1024, но есть и выше, тот же 1433 у SQL или 55777 Vipnet.
  2. Динамические, используемые для повседневных вещей пользователя. Это диапазон после 1024, и используют их, например, в таком контексте: скачиваете файл, ваш компьютер использует один порт, смотрите online фильм, ваш компьютер использует второй порт и так далее. Как только передача данных заканчивается, порт освобождается.

Порты еще очень часто ассоциируют с сокетами, о которых я уже рассказывал, советую посмотреть.

Что такое порт 443?

Как я и писал выше, чаще всего он используется в двух вещах, первая это конечно подавляющее количество сайтов, работающих по https протоколу на 443 порты, и второй момент это в шифрованных каналах передачи данных. Лет 5 назад, его использовали в основном интернет банки и интернет магазины, где расплачивались электронными картами, сейчас же поисковые системы, стараются и подталкивают, всех вебмастеров, перевести свои ресурсы именно на 443 соединение.

Почему порт может не работать?

Давайте рассмотрим вопрос. по каким причинам может быть закрытым порт 443.

  • По умолчанию, когда вы только установили Windows, в ней по умолчанию все порты на ружу закрыты из политики безопасности и это правильно. Их блокирует встроенная программа брандмауэр Windows или по простому файрвол.
  • Администратор сети у вас мог заблокировать нужный порт, так как у него есть такие механизмы как групповая политика или доступ к прокси серверу.
  • 443 сокет заблокирован на маршрутизаторе

Если 443 порт закрыт, то это означает, что:

  • Если на вашем компьютере есть программа или утилита подключающаяся к 443 порту, не сможет этого сделать
  • Компьютер из вне не сможет получить доступ к сервису, расположенному вас, например, веб сайту.

Как открыть порт 443 на windows 7, 8.1 и 10

Я расскажу как открыть порт 443 на windows 7, но все описанное ниже, будет актуально и делаться один в один и на современных операционных системах Windows 10 и серверных редакциях. Порядок действий:

  • Нажмите Win+R и введите firewall.cpl, это быстрый вызов оснастки брандмауэр, полный список команд смотрите тут.

как открыть порт 443 windows

  • Либо же вы можете использовать классический путь, это открыть кнопку «Пуск» и перейти в панель управления Windows

открываем 443 соединение в панели управления

  • Выбираем в правом верхнем углу, классический вид с крупными значками и щелкаем по значку брандмауэра.

Запускаем брандмауэр Windows

  • Если вам нужно быстро протестировать 443 соединение, то я вам советую полностью отключить брандмауэр, особенно если подпирает время, для этого открываем соответствующий пункт.

выключение брандмауэра чтобы проверить порты

Для отключения, выберите соответствующие пункты, по сути теперь будут открыты все порты Windows 7. После тестирования не забываем все включить.

отключение firewall

А теперь правильный вариант, перейдите в дополнительные параметры фаэрвола. Вы попадете в повышенный режим безопасности, именно тут можно открыть порт 443 windows.

брандмауэр в режиме повышенной безопасности

  • Переходим в «Правила для входящих подключений», если нужно чтобы к вам подключались по 443 соединению, если нужно, чтобы вы могли подключаться, при условии, что он закрыт, то выберите «Правила исходящих подключений». Щелкаем правым кликом и выбираем «Создать правило»

создаем правило брандмауэра

  • Тут нам интересны два пункта, первый это «Для программы», удобен тем, что вы разрешаете конкретной программе все подключения через фаэрвол, из недостатков, то что если у нее есть зависимые программы, то работать может не полностью или вообще не будет, второй вариант для порта, удобен тем, что единожды открыв нужный порт, вам не нужно думать какая для какой программы вам его разрешать. Простой пример вы используете 80 сокет, сначал он работал на Apache, потом вы его заменили на IIS, в брандмауэре ничего не пришлось менять.

разрешаем 443 порт

  • Если выбрали второй вариант, то указываем протокол TCP или UDP (для большей безопасности)

TCP 443 port

  • Если выбрали первый пункт с программой, то вам необходимо указать до нее путь, до файла exe.

разрешаем нужную программу

  • Указываем действие, в данном случае «разрешить», так как на нужно открытие порта 443.

как открыть порт 443 на windows 7

  • Далее указываем на какой сетевой профиль будет оно применяться, доменный это для локальных сетей организаций, частный для домашних сетей, а публичный, для внешнего мира.

как открыть порт 443 на windows 7-2

  • Все задаем имя для создаваемого правила и нажимаем готово.

как открыть порт 443 на windows 10

Если вы допустили ошибку или, что-то поменялось, то вы всегда можете изменить настройки через свойства.

открыть соединение 443 в Windows

Как открыть порт 443 на windows 7 через командную строку

Когда вы набьете руку и вам надоест щелкать однотипные окна в брандмауэре Windows или вы захотите, все автоматизировать, то вам в этом поможет, командная строка запущенная с правами администратора. Вам необходимо выполнить такую команду:

netsh advfirewall firewall add rule name=»Открыть 443 порт-2″ protocol=TCP localport=443 action=allow dir=IN

  1. netsh advfirewall firewall add rule — добавление правила
  2. name — имя
  3. protocol — тип протокола
  4. localport — открываемый порт
  5. action — действие
  6. dir — тип соединения (входящий или исходящий)

открыть порт в cmd

Проверяем добавление нашего правила.

открыть порт в командной строке

Как быть если порт закрыт?

Сейчас мы говорим. про ситуации когда 443 соединение блокируется системным администратором или интернет провайдером. В обоих случаях необходимо связываться с вышестоящими инстанциями и рассказывать, что вам необходимо открыть открыть порт 443 windows, своими силами вы уже не обойдетесь. Еще очень частым вопросом, бывает, как проделать все те же действия на сетевых устройствах, однозначного ответа нет, так как у всех это делается по разному, изучайте документацию. По своей практике могу точно сказать, что провайдеры любят лочить 25 SMTP подключения, чтобы спам не рассылали. Уверен, что вы теперь знаете, как все открывать и сможете это использовать на практике.

What are the steps to troubleshoot a Port 443 error?

Troubleshoot the error step-by-step as follows:

Step 1. Check to see whether Port 443 is opened

Check (telnet <controller-host> 443) from the agent host to make sure the port has been opened. If it’s closed, open it.

Step 2. Check the proxy

If port 443 is open, but the agent still can’t telnet, check the proxy.

Does it exist? If so, curl with proxy args to see whether the network firewall/proxy is working. You want to determine whether the error is caused by the agent or whether it’s a proxy end error.

curl -x http://proxyHost:proxyPort/ -I https://<controller-host>:443/controller/rest/serverstatus

Step 3. SSL for the Java Agent

If either telnet or curl work on the port without errors, but the agent still fails with an “SSL certs missing” error, review the Enable SSL for the Java Agent documentation.

There are many SSL exception variants, of which many require expert-level debugging. If your error isn’t addressed in the above documentation, please initiate a ticket with AppDynamics customer support.

Step 4. JKK and SSL supported protocol or cipher limitations

JDK and SSL supported protocol/cipher limitations also require expert-level SSL debugging, so we recommend reaching out to AppDynamics support.

Viewing 9 replies — 1 through 9 (of 9 total)

  • Thread Starter
    Dave

    (@csn123)

    I should add the status listed is ‘Unknown Error’ and the HTTP response code is 0.

    Hi there @csn123

    Error #35 is indeed related to SSL and denotes an issue with the protocol being used on the specified port; 443 is used exclusively by https

    So if nothing has changed on your site, and nothing has changed in the plugin, the most likely source of the issue is something gone wrong with your SSL certificate; possibly expired.

    Also, the redacted URL you posted uses the insecure http protocol, which would not work with port 443 as it expects SSL/TLS 🙂

    Cheers!
    Patrick

    Thread Starter
    Dave

    (@csn123)

    I checked with the host and they blamed a cURL fault. They fixed it but they said the plugin is using far too many SSL connections and have advised uninstalling it.

    Is there a way to throttle the checking process to cap it to a sensible limit? My understanding is that it checked on link at a time in the queue but my host seems to suggest otherwise.

    I am getting the same false positives, with these error messages:

    503 Service Unavailable
    Unknown Error (same as Dave above)
    Timeout

    I am using Really Simple SSL plugin.

    The links are affiliate links to products on amazon.com.

    The SSL certificate is not expired.

    • This reply was modified 1 year, 12 months ago by denis24.

    Update: I used the “Nuclear Option” to recheck all links, and the results showed no broken links. Any idea why I would be getting false positives in normal operation?

    Hi @denis24

    Could you please create a new ticket and we can take a closer look at your issue?
    https://wordpress.org/support/plugin/broken-link-checker/#new-topic-0

    @csn123

    You can set some limits on WordPress > Settings > Link Checker > Advanced.

    Is there any log that hosting can provide that we can send to the plugin developers?

    Is the hosting support referring to the requests made by the plugin on the site itself while testing the internal links or any other request?

    Best Regards
    Patrick Freitas

    Thread Starter
    Dave

    (@csn123)

    @wpmudevsupport12 I’ve set the timeout and max execution time as 30s, and server load at 10. Both ‘Run continuously while the Dashboard is open’ and ‘Run hourly in the background’ is checked, so I wonder if this is spawning multiple instances. I have a habit of opening multiple tabs (dashboard, posts, current post editor, and preview) so would each tab likely trigger multiple instances of the checker?

    Hi @csn123

    The plugin might indeed be making quite a lot of requests as in order to check the links it actually has to visit/fetch them.

    The more links there are the more requests have to be made and if a lot of these links are “self links” (point to the site the plugin is running on) it might be somehow “throttled” by or “heavy” for the server.

    You are right about both the “Run” options. They won’t really spawn “multiple instances) but disabling them is one of the ways to limit/throttle the “intensity” of plugin requests and while it might cause the checking process to slow down (so link discovery might come “slower”) the plugin will still work anyway. These, however, are mostly about “link discovery” so you might also want to

    – set shorter timeout in “Timout” option in “Advanced” settings of the plugin
    – set shorter “Max execution time” on the same page as this will, again, make process slower but also make it check less links in one go, hence should limit requests
    – you can try (on the same page as well) limiting Server Load Limit option
    – and finally you could also set “Check each link” option in “General” settings of the plugin to more than it is know; for example if it’s set to 24 hours try setting it to 72 hours or more

    Best regards,
    Adam

    Hello @csn123 ,

    We haven’t heard from you for over two weeks now, so it looks like you no longer need our assistance.

    Please feel free to re-open this ticket if needed.

    kind regards,
    Kasia

  • Viewing 9 replies — 1 through 9 (of 9 total)

    Viewing 9 replies — 1 through 9 (of 9 total)

  • Thread Starter
    Dave

    (@csn123)

    I should add the status listed is ‘Unknown Error’ and the HTTP response code is 0.

    Hi there @csn123

    Error #35 is indeed related to SSL and denotes an issue with the protocol being used on the specified port; 443 is used exclusively by https

    So if nothing has changed on your site, and nothing has changed in the plugin, the most likely source of the issue is something gone wrong with your SSL certificate; possibly expired.

    Also, the redacted URL you posted uses the insecure http protocol, which would not work with port 443 as it expects SSL/TLS 🙂

    Cheers!
    Patrick

    Thread Starter
    Dave

    (@csn123)

    I checked with the host and they blamed a cURL fault. They fixed it but they said the plugin is using far too many SSL connections and have advised uninstalling it.

    Is there a way to throttle the checking process to cap it to a sensible limit? My understanding is that it checked on link at a time in the queue but my host seems to suggest otherwise.

    I am getting the same false positives, with these error messages:

    503 Service Unavailable
    Unknown Error (same as Dave above)
    Timeout

    I am using Really Simple SSL plugin.

    The links are affiliate links to products on amazon.com.

    The SSL certificate is not expired.

    • This reply was modified 1 year, 12 months ago by denis24.

    Update: I used the “Nuclear Option” to recheck all links, and the results showed no broken links. Any idea why I would be getting false positives in normal operation?

    Hi @denis24

    Could you please create a new ticket and we can take a closer look at your issue?
    https://wordpress.org/support/plugin/broken-link-checker/#new-topic-0

    @csn123

    You can set some limits on WordPress > Settings > Link Checker > Advanced.

    Is there any log that hosting can provide that we can send to the plugin developers?

    Is the hosting support referring to the requests made by the plugin on the site itself while testing the internal links or any other request?

    Best Regards
    Patrick Freitas

    Thread Starter
    Dave

    (@csn123)

    @wpmudevsupport12 I’ve set the timeout and max execution time as 30s, and server load at 10. Both ‘Run continuously while the Dashboard is open’ and ‘Run hourly in the background’ is checked, so I wonder if this is spawning multiple instances. I have a habit of opening multiple tabs (dashboard, posts, current post editor, and preview) so would each tab likely trigger multiple instances of the checker?

    Hi @csn123

    The plugin might indeed be making quite a lot of requests as in order to check the links it actually has to visit/fetch them.

    The more links there are the more requests have to be made and if a lot of these links are “self links” (point to the site the plugin is running on) it might be somehow “throttled” by or “heavy” for the server.

    You are right about both the “Run” options. They won’t really spawn “multiple instances) but disabling them is one of the ways to limit/throttle the “intensity” of plugin requests and while it might cause the checking process to slow down (so link discovery might come “slower”) the plugin will still work anyway. These, however, are mostly about “link discovery” so you might also want to

    – set shorter timeout in “Timout” option in “Advanced” settings of the plugin
    – set shorter “Max execution time” on the same page as this will, again, make process slower but also make it check less links in one go, hence should limit requests
    – you can try (on the same page as well) limiting Server Load Limit option
    – and finally you could also set “Check each link” option in “General” settings of the plugin to more than it is know; for example if it’s set to 24 hours try setting it to 72 hours or more

    Best regards,
    Adam

    Hello @csn123 ,

    We haven’t heard from you for over two weeks now, so it looks like you no longer need our assistance.

    Please feel free to re-open this ticket if needed.

    kind regards,
    Kasia

  • Viewing 9 replies — 1 through 9 (of 9 total)

  • 4419 ошибка на терминале
  • 4412 ошибка терминала сбербанка
  • 441 ошибка хендай акцент
  • 4408 ошибка на терминале
  • 4406 ошибка терминала сбербанка при оплате картой