Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9177707
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 17, 20262026-06-17T17:23:13+00:00 2026-06-17T17:23:13+00:00

Many libraries include Expect: 100-continue on all HTTP 1.1 POST and PUT requests by

  • 0

Many libraries include Expect: 100-continue on all HTTP 1.1 POST and PUT requests by default.

I intend to reduce perceived latency by removing 100-continue mechanism on the client side on those requests for which I know the expense of sending data right away is less than waiting a roundtrip for 100-continue, namely on short requests.

Of course I still want all the other great features of HTTP 1.1, thus only I want to kill Expect: 100-continue header. I have two options:

  • remove expect header entirely, or
  • send empty expect header, Expect:\r\n

Is there ever any difference between the two?

Any software that might break for one or the other?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-17T17:23:14+00:00Added an answer on June 17, 2026 at 5:23 pm

    Nothing should break if you remove the Expect header, but I know that Microsoft IIS has had issues with 100 Continue in the past. For example, IIS5 always sends 100 continue responses. So, I wonder if at least some of the uses of it in libraries might be to work around similarly broken behaviour in servers.

    Many libraries seem to set this header and then not actually handle 100 Continue properly – e.g. they begin to send the request body immediately without waiting for a 100 Continue and then don’t handle the fact that the server might send back any HTTP error code before they’ve finished sending the request body (the first part’s OK, it’s the second part which is broken – see later in my answer). This leads me to believe that some authors have just copied it from elsewhere without fully understanding the subtleties.

    I can’t see any reason to include a blank Expect header – if you’re not going to include 100-continue (or some other Expect clause) then omit the header entirely. The only reason to include it would be to work around broken webservers, but I’m not aware of any which behave in this way.

    Finally, if you’re just looking to reduce roundtrip latencies it seems to me that it wouldn’t actually be inconsistent with the RFC to simply begin to transmit the request body immediately. You’re not supposed to wait indefinitely to send the request body (as per the RFC), so you’re behaving to the spec – it’s just your timeout before sending anyway is zero.

    You must be aware that servers are at liberty to not send the 100 Continue response if they’ve already received some of the request body, so you have to handle servers which send 100 Continue, those which send nothing and wait for the full request and those which immediately send any HTTP error code (which may be 417, but more likely a generic 4xx code). In this way, your short requests shouldn’t have any overhead (aside from the Expect header) but you won’t have to wait for the 100 Continue. Of course, for this approach to work you’ll need to be doing things in a way which lets you interrupt the request as soon as the server returns an error code (e.g. non-blocking IO with poll() or select()).

    Doing things this way might help keep your code more consistent between small and large requests while reducing the latency. The downside is that it’s perhaps not what the RFC authors had in mind, even if it doesn’t explicitly violate any of the requirements. Also, it might make your later code more complicated if you’re not already doing non-blocking IO or similar.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Possible duplicate of: should-i-link-to-google-apis-cloud-for-js-libraries also many other discussions, including: Where do you include the
I have a question: Many repositories do not include libraries that have debug symbols
In project with many multiple targets, I wish to add include libraries for a
I used to like to include all of clojure.contrib, and require all the libraries.
I wrote a complex Java application with eclipse that uses many .jar libraries included
I heard many libraries such as JXTA and PjSIP have smaller footprints. Is this
Here is my situation: I have a C project linking with many libraries (I
I come from the ruby and python worlds where we have many libraries that
I want to use bar chart in web application. I have searched many libraries
I normally write code with tabs but many python libraries use spaces. Is there

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.