Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HttpClient] fix support for 103 Early Hints and other informational status codes #33391

Merged
merged 1 commit into from Sep 3, 2019

Conversation

@nicolas-grekas
Copy link
Member

nicolas-grekas commented Aug 30, 2019

Q A
Branch? 4.3
Bug fix? yes
New feature? no
BC breaks? no
Deprecations? no
Tests pass? yes
Fixed tickets -
License MIT
Doc PR -

I learned quite recently how 1xx status codes work in HTTP 1.1 when I discovered the 103 Early Hint status code from RFC8297

This PR fixes support for them by adding a new getInformationalStatus() method on ChunkInterface. This means that you can now know about 1xx status code by using the $client->stream() method:


$response = $client->request('GET', '...');

foreach ($client->stream($response) as $chunk) {
    [$code, $headers] = $chunk->getInformationalStatus();
    if (103 === $code) {
        // $headers['link'] contains the early hints defined in RFC8297
    }

    // ...
}
@nicolas-grekas nicolas-grekas added this to the 4.3 milestone Aug 30, 2019
@nicolas-grekas nicolas-grekas force-pushed the nicolas-grekas:hc-informational branch from 84782e2 to 4ccf132 Aug 30, 2019
@nicolas-grekas nicolas-grekas force-pushed the nicolas-grekas:hc-informational branch from 4ccf132 to 60f771b Aug 30, 2019
@nicolas-grekas nicolas-grekas force-pushed the nicolas-grekas:hc-informational branch 2 times, most recently from 0a9982c to fb08681 Aug 31, 2019
@nicolas-grekas nicolas-grekas force-pushed the nicolas-grekas:hc-informational branch 3 times, most recently from cc9a012 to 96bdf08 Sep 1, 2019
@nicolas-grekas nicolas-grekas force-pushed the nicolas-grekas:hc-informational branch from 96bdf08 to 34275bb Sep 3, 2019
@dunglas
dunglas approved these changes Sep 3, 2019
nicolas-grekas added a commit that referenced this pull request Sep 3, 2019
…ormational status codes (nicolas-grekas)

This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] fix support for 103 Early Hints and other informational status codes

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

I learned quite recently how 1xx status codes work in HTTP 1.1 when I discovered the [103 Early Hint](https://evertpot.com/http/103-early-hints) status code from [RFC8297](https://tools.ietf.org/html/rfc8297)

This PR fixes support for them by adding a new `getInformationalStatus()` method on `ChunkInterface`. This means that you can now know about 1xx status code by using the `$client->stream()` method:

```php

$response = $client->request('GET', '...');

foreach ($client->stream($response) as $chunk) {
    [$code, $headers] = $chunk->getInformationalStatus();
    if (103 === $code) {
        // $headers['link'] contains the early hints defined in RFC8297
    }

    // ...
}
```

Commits
-------

34275bb [HttpClient] fix support for 103 Early Hints and other informational status codes
@nicolas-grekas nicolas-grekas merged commit 34275bb into symfony:4.3 Sep 3, 2019
2 of 3 checks passed
2 of 3 checks passed
continuous-integration/appveyor/pr AppVeyor build failed
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
fabbot.io Your code looks good.
Details
@nicolas-grekas nicolas-grekas deleted the nicolas-grekas:hc-informational branch Sep 4, 2019
@fabpot fabpot mentioned this pull request Oct 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
6 participants
You can’t perform that action at this time.