102 Processing
Long-running server operations that risk client timeouts are addressed by the 102 Processing informational response status code. The server sends this interim response to keep the connection alive until the final response is ready.
Usage
When a server sends the 102 Processing status code, the client maintains the HTTP connection and waits for the final response to arrive. The server must eventually return the final response, or a genuine timeout occurs.
The 102 Processing status code is no longer part of current HTTP specifications, though the code remains registered in the IANA HTTP Status Code Registry with its original WebDAV specification as the reference. Servers still use the code in practice. A well-implemented HTTP client ignores unrecognized informational status messages, so this response does not negatively affect clients without explicit support.
Note
Multiple 102 Processing status updates are sent in advance of the final HTTP response.
Example
The client requests a sample.pdf file, and the server returns a status code indicating processing takes longer than usual. After a short wait, the server sends another processing update. After another delay, the server sends the final response.
Request
GET /sample.pdf HTTP/1.1
Host: www.example.re
Response
HTTP/1.1 102 Processing
<there is a short pause in the transmission>
HTTP/1.1 102 Processing
<there is a short pause in the transmission>
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 10000
<message body will follow>
Code references
.NET
HttpStatusCode.Processing
Rust
http::StatusCode::PROCESSING
Rails
:processing
Go
http.StatusProcessing
Symfony
Response::HTTP_PROCESSING
Python3.5+
http.HTTPStatus.PROCESSING
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_PROCESSING
Angular
@angular/common/http/HttpStatusCode.Processing
See also
- RFC 2518: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) (obsoleted by RFC 4918)
- 100
- 103
- HTTP status codes