Age | Commit message (Collapse) | Author |
|
|
|
The old undocumented API is removed entirely.
While a documentation exists for the new API, it will not
be considered set in stone until further testing has been
performed, and a file upload example has been added.
The new API should be a little more efficient than the
old API, especially with smaller messages.
|
|
|
|
|
|
|
|
Changes include:
* Much simplified route configuration.
* Etag generation is now enabled by default.
* Web mimetypes are now detected by default. A bigger list of
mimetypes can be detected without any additional library.
* Mimetypes can no longer be specified as a list. Copying this
list for new connections is too costy. You can easily convert
it into a function and pass that function to the handler instead.
* You can however specify a single hardcoded mimetype. Mostly
useful when serving a single file, like an index.html file,
to avoid extra operations.
* Specifying a path as a list of tokens is not possible anymore.
Use either a binary or a string.
* Using a private directory will not work if the application
was not started properly. Cowboy will not attempt to find
the location of this directory if the VM doesn't know it,
as this caused issues in some setups.
* Overall the code has been much simplified and clarified,
and of course has now been documented.
|
|
|
|
Cut in four different chapters: request, request body,
response and cookies.
|
|
|
|
|
|
Reworked the table of contents also.
|
|
|
|
We now describe how to build a hello world application from
start to finish, including setting up erlang.mk for building,
and using relx for generating the release. All concepts are
not explained in details of course, but we don't need to at
this point, we just want things to be working.
|
|
Start moving a few functions from Cowboy into cowlib.
|
|
|
|
|
|
|
|
We don't care about parameterized modules anymore. They're gone!
|
|
Now instead of {1, 1} we have 'HTTP/1.1', and instead of {1, 0}
we have 'HTTP/1.0'. This is more efficient, easier to read in
crash logs, and clearer in the code.
|
|
Clients do not send it. We skip the value if we receive it now,
as it shouldn't happen, and won't for all the mainstream clients.
|
|
|
|
|
|
Add more infos about MIME types and the file option.
|
|
You can use these values to perform a reply using the negotiated
content-type and language for non-HEAD/GET methods.
|
|
|
|
It defaults to setting the Allow header to "HEAD, GET, OPTIONS".
|
|
|
|
Thanks to Martin Törnwall for pointing this out.
|
|
|
|
This kind of function is highly dependent on the proxy used,
therefore parsing was added for x-forwarded-for instead and we
just let users write the function that works for them. The code
can be easily extracted if anyone was using the function.
|
|
|
|
|
|
This allows us to change the max chunk length on a per chunk basis
instead of for the whole stream. It's also much easier to use this
way even if we don't want to change the chunk size.
|
|
|
|
|
|
Defaults to a maximum of 1000000 bytes.
Also standardize the te_identity and te_chunked decoding functions.
Now they both try to read as much as possible (up to the limit),
making body reading much faster when not using chunked encoding.
|
|
|
|
|
|
|
|
Also fix the guide entry on hooks.
|
|
Reported by Joe Armstrong.
|
|
|
|
|
|
|
|
|
|
|
|
This is obviously not proper documentation. We will properly document
it when the API stabilizes.
|
|
Make cowboy_router:compile/1 return to be consistent with current
implementation.
|
|
Reported by Michel Rijnders.
|
|
|