3.4.5.2 Notification Request

The server MUST validate the following aspects of a received message before determining the message type:

  • The HTTP version MUST be 1.1.

The server application MUST verify that the request message satisfies the requirements in section 2.2.12. If it fails to satisfy the requirements, the server application MUST send a valid HTTP status code based on rules defined in [RFC2616].

If the server application plans to access the uploaded data through BITS-Original-Request-URL, the server application MUST store the value in RemoteUploadURL and send the message response in the format described in section 2.2.13 with the BITS-Copy-File-To-Destination header field.

If the request's HTTP headers include both the BITS-Request-DataFile-Name and BITS-Response-DataFile-Name header fields, the back-end client is configured to pass the request and response entities by reference. The server SHOULD process the request entity by implementation-defined means and MUST specify the reply data by one of two means:

  • Omit the BITS-Static-Response-URL header field from its HTTP response, and write the data of the response entity as the message body of its HTTP response.

  • Make the data of the response entity available from a URL, and include the BITS-Static-Response-URL header field in its HTTP response.

Any errors that occur during the preceding interactions MUST be sent to the back-end client.

If the HTTP request lacks both the BITS-Request-DataFile-Name and BITS-Response-DataFile-Name header fields, the back-end client is configured to pass the request and response entities by value. The server application MUST read the request entity from the body of the HTTP request. The server MUST specify the reply data by one of two means:

  • Omit the BITS-Static-Response-URL header field from its HTTP response, and write the data of the response entity as the message body of its HTTP response.

  • Make the data of the response entity available from a URL, and include the BITS-Static-Response-URL header field in its HTTP response.

 Any errors that occur while reading or populating MUST be sent to the back-end client.