Skip to content

Commit

Permalink
Bump minor version.
Browse files Browse the repository at this point in the history
  • Loading branch information
ioquatix committed Jan 29, 2025
1 parent f9e5986 commit 5bded8a
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 7 deletions.
2 changes: 1 addition & 1 deletion lib/async/http/version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@

module Async
module HTTP
VERSION = "0.86.0"
VERSION = "0.87.0"
end
end
4 changes: 4 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ Please see the [project documentation](https://socketry.github.io/async-http/) f

Please see the [project releases](https://socketry.github.io/async-http/releases/index) for all releases.

### v0.87.0

- [Unify HTTP/1 and HTTP/2 `CONNECT` semantics](https://socketry.github.io/async-http/releases/index#unify-http/1-and-http/2-connect-semantics)

### v0.86.0

- Add support for HTTP/2 `NO_RFC7540_PRIORITIES`. See <https://www.rfc-editor.org/rfc/rfc9218.html> for more details.
Expand Down
10 changes: 4 additions & 6 deletions releases.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,24 @@
# Releases

## Unreleased
## v0.87.0

### Unify HTTP/1 and HTTP/2 `CONNECT` semantics

HTTP/1 has a request line "target" which takes different forms depending on the kind of request. For `CONNECT` requests, the target is the authority (host and port) of the target server, e.g.

```
CONNECT example.com:443 HTTP/1.1
```
CONNECT example.com:443 HTTP/1.1

In HTTP/2, the `CONNECT` method uses the `:authority` pseudo-header to specify the target, e.g.

```http
``` http
[HEADERS FRAME]
:method: connect
:authority: example.com:443
```

In HTTP/1, the `Request#path` attribute was previously used to store the target, and this was incorrectly mapped to the `:path` pseudo-header in HTTP/2. This has been corrected, and the `Request#authority` attribute is now used to store the target for both HTTP/1 and HTTP/2, and mapped accordingly. Thus, to make a `CONNECT` request, you should set the `Request#authority` attribute, e.g.

```ruby
``` ruby
response = client.connect(authority: "example.com:443")
```

Expand Down

0 comments on commit 5bded8a

Please # to comment.