Comments (4)
Can you enable logs for h2
? That should show the frames sent and frames received. (h2
uses tracing
, you might need to enable tracing's log
feature to get interop).
from h2.
Thanks @seanmonstar ,here is trace.log
[2023-11-04T00:26:15Z TRACE h2::proto::streams::streams] drop_stream_ref; stream=Stream { id: StreamId(1), state: State { inner: Closed(Error(Reset(StreamId(1), PROTOCOL_ERROR, Remote))) }, is_counted: false, ref_count: 1, next_pending_send: None, is_pending_send: false, send_flow: FlowControl { window_size: Window(1048264), available: Window(0) }, requested_send_capacity: 0, buffered_send_data: 0, send_task: None, pending_send: Deque { indices: None }, next_pending_send_capacity: None, is_pending_send_capacity: false, send_capacity_inc: true, next_open: None, is_pending_open: false, is_pending_push: false, next_pending_accept: None, is_pending_accept: false, recv_flow: FlowControl { window_size: Window(2097152), available: Window(2097152) }, in_flight_recv_data: 0, next_window_update: None, is_pending_window_update: false, reset_at: None, next_reset_expire: None, pending_recv: Deque { indices: None }, is_recv: true, recv_task: None, pending_push_promises: Queue { indices: None, _p: PhantomData<h2::proto::streams::stream::NextAccept> }, content_length: Omitted }
[2023-11-04T00:26:15Z TRACE h2::proto::streams::counts] transition_after; stream=StreamId(1); state=State { inner: Closed(Error(Reset(StreamId(1), PROTOCOL_ERROR, Remote))) }; is_closed=true; pending_send_empty=true; buffered_send_data=0; num_recv=0; num_send=0
[2023-11-04T00:26:15Z DEBUG hyper::proto::h2::client] client response error: stream error received: unspecific protocol error detected
[2023-11-04T00:26:15Z TRACE tracing::span::active] -> Connection;
[2023-11-04T00:26:15Z WARN ubs_edge::http_server] POST 127.0.0.1/UbsService/PredictBonus - http2 error: stream error received: unspecific protocol error detected
[2023-11-04T00:26:15Z TRACE tracing::span] poll;
[2023-11-04T00:26:15Z WARN hyper::proto::h2::server] http2 service errored: error from user's Service: http2 error: stream error received: unspecific protocol error detected
[2023-11-04T00:26:15Z TRACE tracing::span::active] -> poll;
[2023-11-04T00:26:15Z TRACE h2::proto::streams::send] send_reset(..., reason=PROTOCOL_ERROR, initiator=User, stream=StreamId(1), ..., is_reset=false; is_closed=false; pending_send.is_empty=true; state=State { inner: HalfClosedRemote(AwaitingHeaders) }
from h2.
It looks fine until the server claims there's a protocol error with the request. What headers do you send?
from h2.
I see where the problem is, the scheme
changed hence it needs be changed from http
to https
.
Unlike HTTP/1, Uri scheme is part of the header. thanks @seanmonstar
from h2.
Related Issues (20)
- `h2spec 2.6.0` tests are failling against `h2` HOT 3
- Settings frames are not applied correctly HOT 12
- Sending data frame results in transmission of more tcp segments than needed HOT 11
- Make tracing an optional feature
- Modifying the `akamai` example to send to `www.google.com` and adding a `host` header and errors HOT 2
- `max_send_buffer_size` documentation states default is 400 MB. It is 400 KB. HOT 2
- Remove tokio I/O traits from dependencies HOT 4
- custom SETTINGS settings
- Proposal: change the default value of `initial_max_send_streams` to 100 HOT 7
- Documentation: How to handle GOAWAY HOT 2
- Respond with an HTTP 4xx than only a `RST_STREAM` to malformed requests HOT 2
- Default server configuration prevents the use of server pushes HOT 3
- /del i am retarded
- Memory leak caused by the long-lifespan trace_debug_span within the reused connection HOT 1
- Add option to disable connection preface
- :scheme & :path pseudo-headers are included in CONNECT requests. HOT 1
- Allow max_concurrent_reset_streams>0 on browser environments
- Allow disabling header compression HOT 2
- High CPU Usage (100%) in Specific Scenarios HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from h2.