Skip to content

Instantly share code, notes, and snippets.

@thanatos
Created March 12, 2020 01:31
Show Gist options
  • Save thanatos/d6badbe1a20e24374440ff447ce02360 to your computer and use it in GitHub Desktop.
Save thanatos/d6badbe1a20e24374440ff447ce02360 to your computer and use it in GitHub Desktop.
The Ultimate HTTP Test Suite

Server-side

  • After request to which the Expect: 100-continue is met w/ a non-100 response (i.e., the client is never told to send the body) does the client send the body and does the server spool through it? (Presuming the server is not taking the option of closing the server.)

  • Does a malformed request target get rejected? Malformed includes:

    • not-a-path — there should be a starting /
    • /foo% — the URL encoding should have two hex chars following the %
    • /foo%f — similar.
    • /foo%gg — similar.
  • Are well-formed requests accepted?

    • /foo%ff — (optional) this should be accepted, but there are legitimate reasons to reject it, as it isn't valid UTF-8 if decoded.
  • Is an HTTP/1.0 request with an Expect header properly ignored (not given a 100-continue?)

  • Are HTTP/1.0 requests sent an HTTP/1.1 response. (This is not legal. The response should be HTTP/1.0 for those requests.)

Optional stuff:

  • Is upgrading to HTTP/2 supported?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment