Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

HTTP 411 Length Required means the server that received your request would not accept a body without a defined Content-Length. The usual trigger is a POST, PUT, or upload sent with no length or with Transfer-Encoding: chunked to a strict origin or proxy. Fix it by identifying the hop that generated the response, sending an exact byte count when the body size is known, or configuring the relevant reverse proxy to use fixed-length forwarding. Do not “solve” 411 by guessing a length or by setting Content-Length: 0 on a request that has data.

What the 411 Length Required error means

HTTP 411 is a client-error status. MDN defines it as a response in which “the server refused to accept the request without a defined Content-Length header.” The status describes the request framing, not the size of the payload. A server can accept a very large request when its length is declared, and reject a tiny request when the length is absent.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

HTTP/1.1 can frame a request body in two relevant ways:

Framing What the receiver sees Why it can produce 411
Content-Length: N A decimal byte count followed by exactly that many bytes Normally accepted when the count is correct and within configured limits
Transfer-Encoding: chunked Data arrives as a sequence of chunks, so there is no one overall length in the request headers Some servers, gateways, and older applications insist on a fixed length and reject the request
No body framing The request has a body but neither a usable length nor an accepted transfer coding The receiving server may answer 411 rather than try to determine where the body ends

RFC 7230 allows a server to reject a request that contains a message body but no Content-Length with 411. It also recommends that a sender include a valid length when the size is known, because services that understand HTTP may still reject chunked requests for compatibility reasons. See the IETF RFC 7230 and the MDN 411 reference for the protocol definitions.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.

Find the component that actually returned 411

The first repair step is attribution. A browser, API client, CDN, load balancer, client-facing Nginx, Apache, or the application behind a proxy can each generate a response that looks similar. Changing the wrong layer leaves the error unchanged and can introduce buffering or latency elsewhere.

  1. Capture the outgoing request. Record the method, whether a body is present, the exact Content-Length, Transfer-Encoding, Expect, and the response status and headers. A command-line trace, API-client export, or packet capture is useful as long as it shows the headers actually sent on the wire.
  2. Capture the request at every proxy hop. Compare what leaves the client with what reaches Nginx, Apache, a load balancer, and the origin. A proxy may remove, add, or replace framing headers.
  3. Inspect the response Server and related headers. They can identify the responding layer, but treat them as clues rather than proof; headers may be changed or hidden.
  4. Repeat the request directly to the origin. Use the same method, body, and authentication where possible. If direct origin access succeeds but the proxied path returns 411, focus on the intermediary. If both fail, inspect the origin’s request parser and logs.
  5. Check logs at the suspected hop. Nginx access and error logs, Apache logs, load-balancer logs, and application logs should be correlated by timestamp, request ID, and path.

A CDN-generated-looking page does not establish that the CDN caused the error. The provider’s documentation says its 411 response can be proxied from the origin. Follow the request to the source that emitted the status; the provider’s 411 troubleshooting page describes this distinction.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose the correct fix for the request body

When the body length is known

Serialize the body first, count its bytes, and send that decimal count in one Content-Length header. “Bytes” matters: a UTF-8 character can occupy more than one byte, so counting source-language characters can produce a mismatch. The number must describe the encoded wire representation, not an estimate, a character count, or a file’s uncompressed size when compression changes what is sent.

  • Send one valid Content-Length value.
  • Make the body contain exactly that many bytes.
  • Do not also send a non-identity Transfer-Encoding.
  • Confirm that any middleware has not re-encoded, compressed, or modified the body after the count was calculated.

When the body is streamed and its size is unknown

You have two sound choices: buffer the body until its length can be calculated, or make the receiving hop and upstream application accept chunked requests. Buffering consumes memory or disk and can delay the request; accepting chunked encoding may require changes to an old server or application. Never guess a length. A guessed value can cause truncation, request desynchronization, or rejection.

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth

When both framing headers appear

Do not send Content-Length together with a non-identity Transfer-Encoding. Under RFC 7230 framing rules, transfer encoding governs how the message is delimited and the Content-Length value is ignored. Conflicting headers are also a security risk because different intermediaries may parse the request differently. Remove the conflicting header and make the sender use exactly one framing method.

Fix the client request first

Known-size JSON with curl

For a small JSON request, serialize the exact payload and let curl send it as a fixed-length body:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
body='{"name":"Ada"}'
curl -X POST https://example.test/api 
  -H 'Content-Type: application/json' 
  --data-binary "$body"

curl normally computes the length for --data-binary. Avoid options, wrappers, or HTTP libraries that force chunked streaming when the destination requires a fixed length. For a file or generated payload, make sure the bytes are final before the request begins and verify that any transformation performed by the client is included in the count.

Application-code checklist

Use your HTTP library’s fixed-length request mode when the serialized body is available. The safe sequence is:

Rank #3
Sale
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black | LED mouse pad with 14 lighting modes, covers keyboard & mouse, anti-slip rubber base, waterproof surface, USB powered
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
  1. Build the logical object or text.
  2. Encode it exactly as the client will transmit it, commonly UTF-8 for JSON.
  3. Measure the encoded byte array or buffer.
  4. Pass that buffer and its byte count to the library’s fixed-length API.
  5. Inspect the emitted request in a trace to confirm one matching Content-Length and no chunked transfer coding.

Do not add Content-Length: 0 merely because a server requested a length. That header is correct only for a genuinely empty body. If the request contains data, zero creates a length mismatch and may cause the server or a proxy to read no body, truncate it, or reject it.

Resolve 411 on Nginx

Understand what Nginx’s directive controls

Nginx provides chunked_transfer_encoding on|off, whose default is on. The directive controls Nginx’s transfer behavior when it sends a response or forwards data; it does not repair a client that has already sent an invalid or incorrect Content-Length. Nginx documents that disabling chunked transfer can help when communicating with software that does not support chunked encoding. Read the current Nginx HTTP core module documentation for directive context and version details.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Apply the compatibility setting narrowly

Put the directive only in the http, server, or location context that serves the incompatible endpoint. A narrow location prevents streaming APIs and unrelated uploads from being buffered or changed unnecessarily.

location /legacy-upstream/ {
    chunked_transfer_encoding off;
    proxy_pass http://legacy_backend;
}
  1. Identify the path whose upstream returns 411.
  2. Place chunked_transfer_encoding off; in that location, or in the smallest suitable parent context.
  3. Validate the configuration with your normal Nginx configuration-test command before reloading.
  4. Reload Nginx, reproduce with a small fixed-length request, and compare the request received by the upstream.
  5. Review access and error logs, then test the real payload and any streaming endpoints that share the configuration.

Turning the directive off globally can force buffering or other transfer changes for endpoints designed to stream. If memory use, temporary-disk use, latency, or timeout behavior worsens, roll back the broad setting and keep the compatibility rule local to the legacy route.

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.

When the problem is a broken HTTP/1.0 backend response

A related but different failure occurs when a backend sends a chunked response while speaking HTTP/1.0. Nginx’s FAQ says that this violates the HTTP specification and recommends correcting the backend or using a newer Nginx version that handles the errant behavior. That advice concerns a malformed backend response; it is not a substitute for fixing a client request that lacks a length. See the Nginx chunked-encoding FAQ when packet captures show this HTTP/1.0 response pattern.

Resolve 411 with Apache httpd and mod_proxy

How mod_proxy chooses request framing

Apache’s mod_proxy sends a request body either with chunked transfer encoding or with a Content-Length header. For an upstream that responds 411, set the proxy-sendcl environment variable so the proxy sends a fixed length. The opposite setting, proxy-sendchunked, forces chunked encoding and is appropriate only when the upstream accepts it.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Apache notes that proxy-sendcl offers maximum compatibility, but a large chunked body may be spooled to disk while Apache determines its length. That trade-off should be included in capacity planning. The behavior and directives are described in the Apache HTTP Server 2.4 documentation.

Example for a legacy upstream

<Location "/legacy-upstream/">
    ProxyPass "http://legacy-backend/"
    SetEnv proxy-sendcl 1
</Location>
  1. Scope the rule to the proxied path that requires fixed-length requests.
  2. Set proxy-sendcl for that location.
  3. Check the Apache configuration, reload gracefully, and reproduce the request.
  4. Inspect the upstream-facing capture or logs to verify that Apache sends one correct Content-Length.
  5. Measure temporary-disk use and latency with realistic payloads, especially large uploads.

HTTP/1.0 and keep-alive compatibility controls

If logs or a packet capture show that the origin requires HTTP/1.0 or has broken keep-alive behavior, Apache documents force-proxy-request-1.0 and proxy-nokeepalive as compatibility controls. Use them only for the demonstrated protocol mismatch. They change the proxy connection behavior; they do not create a correct request length and therefore cannot replace proxy-sendcl or a properly framed client request.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Distinguish 411 from upload-size errors

Do not change body-size limits as a first response to 411. Nginx’s client_max_body_size and Apache’s request-body limits govern how large a body may be. Exceeding such a limit normally produces HTTP 413 (Payload Too Large), not 411 (Length Required). Raising a limit can increase exposure to large uploads while leaving missing or conflicting framing untouched.

Use the status and the captured headers to separate the cases:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Observed symptom Likely issue Next action
411 with no usable Content-Length Strict receiver requires fixed-length framing Calculate and send the exact byte count, or configure the receiver to accept chunked data
411 with Transfer-Encoding: chunked Receiver or upstream rejects chunked requests Buffer and send a fixed length, or use Nginx/Apache compatibility controls
411 with both framing headers Conflicting request framing Remove the conflict and send one valid method
413 after framing is corrected Body exceeds a configured size limit Review the applicable size setting and intended upload policy
Works direct to origin but fails through a proxy Intermediary rewrites or rejects framing Compare hop-by-hop captures and scope the proxy fix

Common mistakes and their consequences

  • Setting Content-Length: 0 on a non-empty request: the receiver may treat the body as absent, truncate it, or reject the mismatch.
  • Sending both Content-Length and chunked transfer coding: transfer coding governs framing, while intermediaries may still disagree about the ignored value.
  • Guessing a length for a stream: an incorrect count can leave unread bytes on a persistent connection or make the receiver wait for bytes that will never arrive.
  • Disabling chunked encoding everywhere: streaming routes can become buffered, increasing memory or temporary-disk use and response latency.
  • Changing upload-size limits to cure 411: this addresses a different status and can create an unnecessarily permissive upload policy.
  • Blaming a CDN page automatically: the CDN may simply be relaying the origin’s 411. Trace the emitting hop before changing CDN or origin settings.
  • Fixing only the browser or only the proxy: the request must be correctly framed at the hop that rejects it. A downstream proxy cannot infer a trustworthy length from a malformed upstream request without buffering and validating the body.

Verify the repair end to end

Use a two-stage test so a compatibility change is not mistaken for a complete fix.

  1. Start with a small deterministic body. Send a short JSON or text payload whose encoded bytes you can count.
  2. Check the client trace. Confirm the method, body presence, one correct Content-Length, and no non-identity Transfer-Encoding.
  3. Check each proxy hop. Ensure Nginx, Apache, the load balancer, and the origin receive the framing you expect; do not assume a proxy preserves headers.
  4. Compare direct and proxied requests. The same body and headers should produce the same result at the origin and through the public path.
  5. Test the real payload. Include its actual encoding, size, authentication, compression behavior, and any upload streaming code.
  6. Review logs and resource use. Look for retries, request truncation, temporary files, buffering delays, connection resets, and upstream timeouts.
  7. Exercise unrelated endpoints. Verify that streaming and large-upload routes did not inherit an overly broad Nginx or Apache compatibility rule.
  8. Keep a rollback ready. If fixed-length forwarding causes unacceptable buffering or disk use, revert the narrow directive and either make the upstream support chunked requests or redesign the client to know the length.

A practical decision guide

Your situation Preferred action Trade-off to account for
JSON, form data, or a file is fully available before sending Encode it, measure bytes, and send fixed-length framing The body must not change after measurement
Client streams an unknown-size body to Nginx Buffer and calculate a length, or make the upstream accept chunked requests Buffering can consume memory or disk and add latency
Nginx proxies a legacy endpoint that rejects chunked data Use chunked_transfer_encoding off; in the relevant location and reload after validation Do not apply it globally without testing streaming routes
Apache mod_proxy upstream returns 411 Set proxy-sendcl 1 for the affected location Apache may spool large bodies to disk to determine length
Origin requires HTTP/1.0 or has broken keep-alive Consider force-proxy-request-1.0 or proxy-nokeepalive only after evidence of that mismatch These controls do not replace correct body framing
Request contains conflicting framing headers Remove the conflict and emit exactly one valid framing method Retest every intermediary because parsing differences can persist in caches or gateways

What to remember

411 is a framing failure at a particular receiving hop. Locate that hop before editing configuration. If the payload size is known, send the exact encoded byte count in Content-Length and omit conflicting transfer coding. If the payload is truly streamed, either buffer it or update the receiving path to accept chunked requests. Nginx exposes chunked_transfer_encoding; Apache mod_proxy exposes proxy-sendcl and proxy-sendchunked. Apply compatibility settings narrowly, validate the request at every hop, and test resource impact before keeping the change.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.