Changes for version 2.0 - 2011-01-04

  • hopefully fully upgraded to HTTP/1.1.
  • support HTTP/1.1 persistent and HTTP/1.0 keep-alive connections.
  • drop https-proxy-connection support. seems unused and ill-specified.
  • use more differentiated status 59x codes.
  • properly use url hostname to verify server certificate.
  • much improved cookie implementation:
    • properly implement cookie expiry (for new cookies).
    • new function to expire cookies and sessions: cookie_jar_expire.
    • add special exception to parse broken expires= keys in set-cookie headers.
    • do not quote cookie values when not strictly necessary, to improve compatibility with broken servers.
    • accept and send lots of invalid cookie values exactly as they were received - this should not impact valid values.
    • lowercase cookie parameter names for improved compatibility.
    • support the max-age cookie parameter, used if expires is missing.
    • support cookie dates (and a few others) in parse_date.
    • suppoer value-less parameters (e.g. secure, httponly).
  • do not send Host: header in a proxy CONNECT request.
  • use common::sense.
  • lowercase hostnames and schemes.
  • ignore leading zeroes in http version.
  • handle spaces in content-length headers more gracefully.

Modules

simple but non-blocking HTTP/HTTPS client