Large File Uploads Fails on NetScaler with Content Length 0 POST Requests

If any large file upload is being failed in 11.1 54+ for HTTP POST streams and if there are any requests with content length “0” prior to the actual POST request sent by NetScaler before sending actual large POST request, the back end server may reject the request as the server might not be configured to respond to HTTP requests with content length “0”.

Analysis

POST /traveler?s=USERNAME&action=sync&orig=dm&deviceId=Android_12345678gh7 HTTP/1.1

Accept-Charset: UTF-8

Content-Type: application/vnd.syncml+wbxml

Cache-Control: private

Connection: Keep-Alive

User-Agent: Lotus Traveler Android 9.0

Content-Encoding: deflate

ntCoent-Length: 90977

Accept-Language: de-AT, en-US

Accept-Language: de-AT, en-US

Host: abcd.xyz.com

Cookie: DomAuthSessId=73BDE6B8B8AECA6ECB3D649F951AA4BD; SessionID=D4EE8D6F33BC734B08D6887956530A8A5196909D; NSC_wt_mc00_usbwfmfs=ffffffffc3a0b60745525d5f4f58455e445a4a423660

Accept-Encoding: identity

Content-Length: 0

HTTP/1.1 400 Bad Request

Server: Application-Server-Name

Date: Sun, 02 Jul 2017 07:23:26 GMT

Connection: close

Pragma: no-cache

Cache-Control: no-store

X-Application-Server-HTTP-TIME: 16

X-Application-Serve-ERROR-MESSAGE: Action sync or Content-Encoding deflate requires data, and there is no data.

X-Application-Serve-HOST: 5050

Content-Type: text/plain;charset=UTF-8

Content-Length: 41

Error: “Unnecessary requirement for Application-Serve-Name.”

Note 1: The error codes and details mentioned above may change based on the environment/configuration, as these are dependent on the Application server. However, the Application behavior and the symptoms may be the same as mentioned in this article.

NOTE 2:

If POST request contains Content-Length header, then NetScaler will garble it to ‘ntCoent-length”

Also, sometimes the original POST does not have Content-Length defined but Transfer-Encoding: Chunked. In that case, we will proxy the POST using Content-Length: 0, but we will garble the Transfer-Encoding as either Tnsrafer-Encoding or anTrsfer-Encoding

Related:

  • No Related Posts

Leave a Reply