Andrew Kelley 8248fdbbdb std.http.Client: support HTTP redirects
* std.http.Status.Class: add a "nonstandard" enum tag. Instead of
   having `class` return an optional value, it can potentially return
   nonstandard.
 * extract out std.http.Client.Connection from std.http.Client.Request
   - this code abstracts over plain/TLS only
   - this is the type that will potentially be stored in a client's LRU
     connection map
 * introduce two-staged HTTP header parsing
   - API users can rely on a heap-allocated buffer with a maximum limit,
     which defaults to 16 KB, or they can provide a static buffer that
     is borrowed by the Request instance.
   - The entire HTTP header is buffered because there are strings in
     there and they must be accessed later, such as with the case of
     HTTP redirects.
   - When buffering the HTTP header, the parser only looks for the
     \r\n\r\n pattern. Further validation is done later.
   - After the full HTTP header is buffered, it is parsed into
     components such as Content-Length and Location.
 * HTTP redirects are handled, with a maximum redirect count option that
   defaults to 3.
   - Connection: close is always used for now; implementing keep-alive
     connections and an LRU connection pool in std.http.Client is a task
     for another day.

see #2007
2023-01-04 18:37:53 -07:00
..
2022-12-31 20:49:02 -05:00
2022-12-13 15:04:03 -05:00
2022-12-18 01:46:09 -05:00
2022-12-13 13:14:20 +02:00
2022-12-09 21:57:17 +01:00
2022-11-04 00:09:27 +03:30
2023-01-04 01:26:50 +02:00
2023-01-02 16:57:15 -07:00
2023-01-02 16:57:15 -07:00
2022-12-13 13:14:20 +02:00
2022-12-31 20:49:02 -05:00
2022-01-07 00:06:06 -05:00
2022-09-11 23:18:43 -04:00
2023-01-03 12:47:48 +02:00
2022-12-30 17:23:31 +02:00
2023-01-02 16:57:15 -07:00
2023-01-04 01:26:50 +02:00
2022-12-13 13:14:20 +02:00
2022-04-15 17:01:01 -05:00
2023-01-02 16:57:15 -07:00
2022-12-21 17:02:53 +01:00