Comments (6)
This brings up an interesting question, what should the behavior of basic_headers::replace
do? There are a few choices:
- Replace the first occurrence
- Replace the first occurrence, remove any additional occurrences
- Replace the first occurrence if there is only one occurrence, else throw an exception.
from beast.
Another problem, what happens with basic_headers::operator[]
if there is more than one field with the same name? I guess it could return the first occurrence.
from beast.
i would remove operator[] and instead do something like equal_range in multimap or maybe return a vector with all values.
i would say replace should do remove(name) insert(name, value)
from beast.
The problem with removing operator[]
is that it inconveniences the majority of use-cases where only one field with a given name exists. For example:
https://github.com/vinniefalco/Beast/blob/master/include/beast/websocket/impl/stream.ipp#L970
Also note that the fields in the headers are in insertion order and not in set order. This is an important detail, because proxies are not supposed to reorder header fields. Many other HTTP libraries make the mistake of returning the fields in alphabetical order, which breaks proxies.
from beast.
This seems to pass tests, it changes basic_headers
to behave like a std::multiset
https://github.com/vinniefalco/Beast/commits/rfc
from beast.
Fixed in 1.0.0-b8
from beast.
Related Issues (20)
- body_limit exceeded error using coro server example HOT 4
- support SSLKEYLOGFILE env var for wireshark HOT 3
- Test Matrix needs work
- Issue trying to read an "endless" chunked stream HOT 3
- How to establish mapping between C++ classes and database tables using Boost Beast. HOT 3
- Any possibility to make dependency on Boost not required(like ASIO does)? HOT 2
- Chat-Multi Code of Boost Beast is crashing when made some changes. HOT 5
- Question about field used hash function HOT 6
- Web link is broken HOT 1
- Websocket Async Client as a DLL HOT 1
- CI should build documentation on Windows platform
- Beast Server Exits for reasons that Client is disconnecting? HOT 2
- Any benefit to multiple sockets between a server and a single client instance using Boost Beast? HOT 4
- Using a minimal executor causes compile errors with beast::websocket HOT 3
- How to check whether there is any available data on the stream HOT 4
- [HELP] Server heartbeat and response HOT 2
- Limitation of `websocket::stream::accept(...)` and `websocket::stream::async_accept(...)`. HOT 3
- Session communication without Mutex? HOT 4
- The beast Server Exits frequently HOT 3
- Is it possible to serialize the body directly to file from a request_parser<empty_body> HOT 7
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 beast.