Comments (5)
I think this is fine, since you can choose your own representation for a Header if you want better support for a non-standard value for that Header.
from hyper.
However, I think we have to be very careful with Headers like TransferEncoding, Date, and Host, which are baked into hyper.
from hyper.
Hm, oh right! The hyper server uses those headers internally to meet the spec, and if someone wants a completely different struct of handle TransferEncoding or something, then the Typed
return value would be wrong (I think currently that would be a downcast to the wrong type), and there'd be no more Raw
to rebuild a different format.
I'm starting to think that design in teepee (keeping raw
around even after parsing) makes more sense... I just was hoping to save on memory.
from hyper.
Uh oh, you're right. It just occurred to me that the existing scheme is entirely unsafe. If you try to access a header through two representations, you'll get an undefined transmute!
from hyper.
This is fixable by tracking TypeId, but I don't see a good way to allow access under two representations in the same app - if you use one representation you can make a change that might not be represented in the raw header. i.e. I can write the transfer encoding to gzip
using one representation, but another representation still sees the original encoding.
from hyper.
Related Issues (20)
- Memory Leak in case of "IncompleteMessage: connection closed before message completed" HOT 4
- Hyper server hangs when handling a request from a client on the same host (not necessarily the same process) HOT 2
- Panic on graceful shutdown for http/1
- HTTP2 Max Streams aware client pooling HOT 5
- Support HTTP2 upgrades with !Send executors HOT 2
- Panic in `UpgradeableConnection` due to `unwrap`
- hyper-util: client connection pool idle timeout does not work as expected HOT 4
- How does hyper serialize a Request into bytes and then send it to the server over a TCP connection?
- Lack of documentation on Read trait HOT 2
- Bug with response using struct implementing bytes::Buf HOT 4
- Hyper-util doesn't build for the web
- Issues with client termination of H2 CONNECT streams HOT 3
- `hyper` v0.14.28 fails to build w/ tokio < v1.27
- Requests with empty bodies don't set a content-length header HOT 2
- Documentation for Service::Error behavior should say it is protocol dependent HOT 1
- Current master brunch of `hyper-util` failed to compile with `client` feature enabled.
- hyper_client set client_builder.http2_keep_alive_interval(Duration::from_millis(H2_KEEP_ALIVE_INTERVAL)); got mistake HOT 1
- how hyper server set idle time out for h1 and h2 server? HOT 1
- Got error "Transport endpoint is not connected" when benchmarking the hello example with wrk HOT 2
- hyper why not support get request when send request failed becase of connection error?
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 hyper.