summaryrefslogtreecommitdiff
path: root/ext/http/01_http.js
AgeCommit message (Collapse)Author
2023-01-16chore: update dlint to v0.37.0 for GitHub Actions (#17295)Kenta Moriuchi
Updated third_party dlint to v0.37.0 for GitHub Actions. This PR includes following changes: * fix(prefer-primordials): Stop using array pattern assignments * fix(prefer-primordials): Stop using global intrinsics except for `SharedArrayBuffer` * feat(guard-for-in): Apply new guard-for-in rule
2023-01-15fix(ext/fetch) Fix request clone error in flash server (#16174)Isaiah Gamble
2023-01-02chore: update copyright year to 2023 (#17247)David Sherret
Yearly tradition of creating extra noise in git.
2022-12-20fix(ext/http): close stream on resp body error (#17126)Luca Casonato
Previously, errored streaming response bodies did not cause the HTTP stream to be aborted. It instead caused the stream to be closed gracefully, which had the result that the client could not detect the difference between a successful response and an errored response. This commit fixes the issue by aborting the stream on error.
2022-12-20chore: Update dlint (#17031)Kenta Moriuchi
Introduces `SafeSetIterator` and `SafeMapIterator` to primordials
2022-10-24experiment(ext/web): Don't expose event classes during the bootstrap phase ↵Andreu Botella
(#16213)
2022-09-30refactor(ext/http): remove op_http_read (#16096)Luca Casonato
We can use Resource::read_return & op_read instead. This allows HTTP request bodies to participate in FastStream. To make this work, `readableStreamForRid` required a change to allow non auto-closing resources to be handled. This required some minor changes in our FastStream paths in ext/http and ext/flash.
2022-08-24feat(ext/flash): split upgradeHttp into two APIs (#15557)Luca Casonato
This commit splits `Deno.upgradeHttp` into two different APIs, because the same API is currently overloaded with two different functions. Flash requests upgrade immediately, with no need to return a `Response` object. Instead you have to manually write the response to the socket. Hyper requests only upgrade once a `Response` object has been sent. These two behaviours are now split into `Deno.upgradeHttp` and `Deno.upgradeHttpRaw`. The latter is flash only. The former only supports hyper requests at the moment, but can be updated to support flash in the future. Additionally this removes `void | Promise<void>` as valid return types for the handler function. If one wants to use `Deno.upgradeHttpRaw`, they will have to type cast the handler signature - the signature is meant for the 99.99%, and should not be complicated for the 0.01% that use `Deno.upgradeHttpRaw()`.
2022-08-18feat(ext/flash): An optimized http/1.1 server (#15405)Divy Srivastava
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com> Co-authored-by: Ben Noordhuis <info@bnoordhuis.nl> Co-authored-by: crowlkats <crowlkats@toaxl.com> Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
2022-08-17refactor(fetch/request): use callback for url and method (#15483)Leo Kettmeir
2022-08-11perf(ops): Monomorphic sync op calls (#15337)Aapo Alasuutari
Welcome to better optimised op calls! Currently opSync is called with parameters of every type and count. This most definitely makes the call megamorphic. Additionally, it seems that spread params leads to V8 not being able to optimise the calls quite as well (apparently Fast Calls cannot be used with spread params). Monomorphising op calls should lead to some improved performance. Now that unwrapping of sync ops results is done on Rust side, this is pretty simple: ``` opSync("op_foo", param1, param2); // -> turns to ops.op_foo(param1, param2); ``` This means sync op calls are now just directly calling the native binding function. When V8 Fast API Calls are enabled, this will enable those to be called on the optimised path. Monomorphising async ops likely requires using callbacks and is left as an exercise to the reader.
2022-07-06fix(ext/http) nextRequest return type annotation from ResponseEvent to ↵Zach
RequestEvent (#15100) Fixes #15099
2022-07-04perf(ext/http): lazy load headers (#15055)Divy Srivastava
2022-05-23fix(ext/websocket): WebSocket dispatch single close event (#13443)Leo Kettmeir
2022-05-18fix(ext/http): no response body reader when cancelling during shutdown (#14653)Divy Srivastava
2022-05-04fix(ext/http): explicitly close resource after reading (#14471)Divy Srivastava
2022-04-25fix(ext/http): truncate read bytes when streaming bodies (#14389)Divy Srivastava
stream shutdown wasn't happening correctly (moved it to call op_http_shutdown) & extra zeroed bytes were being sent for when body length not a multiple of 64*1024
2022-04-22Reland "perf(http): optimize ReadableStreams backed by a resource" (#14346)Divy Srivastava
2022-04-21Revert various PRs related to "ext/http" (#14339)Bartek Iwańczuk
* Revert "feat(ext/http): stream auto resp body compression (#14325)" * Revert "core: introduce `resource.read_return` (#14331)" * Revert "perf(http): optimize `ReadableStream`s backed by a resource (#14284)"
2022-04-20perf(http): optimize `ReadableStream`s backed by a resource (#14284)Divy Srivastava
2022-04-04chore(ext/websocket): custom arity (#14202)Divy Srivastava
2022-04-04chore(ext/http): custom arity (#14200)Divy Srivastava
2022-03-23perf(http): avoid Set.has() when closing connection resource (#14085)Divy Srivastava
2022-03-23perf(http): avoid checking promise every request (#14079)Divy Srivastava
2022-03-19feat(ext/net): Deno.upgradeHttp handles unix connections (#13987)Bartek Iwańczuk
2022-03-16feat(unstable): Add Deno.upgradeHttp API (#13618)Bert Belder
This commit adds "Deno.upgradeHttp" API, which allows to "hijack" connection and switch protocols, to eg. implement WebSocket required for Node compat. Co-authored-by: crowlkats <crowlkats@toaxl.com> Co-authored-by: Ryan Dahl <ry@tinyclouds.org> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-02-01refactor: primordials for instanceof (#13527)Bartek Iwańczuk
2022-01-27Revert "refactor: update runtime code for primordial checks for "instanceof" ↵Bartek Iwańczuk
(#13497)" (#13511) This reverts commit 884143218fad0e18f7553aaf079d52de703f7601.
2022-01-27refactor: update runtime code for primordial checks for "instanceof" (#13497)Bartek Iwańczuk
2022-01-07chore: update copyright to 2022 (#13306)Ryan Dahl
Co-authored-by: Erfan Safari <erfanshield@outlook.com>
2022-01-06feat(ext/websocket): server automatically handle ping/pong for incoming ↵Leo Kettmeir
WebSocket (#13172)
2021-11-17chore(ext/http): deno fmt (#12798)Bert Belder
2021-11-10refactor(ext/http): rewrite hyper integration and fix bug (#12732)Bert Belder
Fixes: #12193 Fixes: #12251 Closes: #12714
2021-11-09Revert "refactor(ext/http): rewrite hyper integration and fix bug (#12332)" ↵Luca Casonato
(#12704) This reverts commit 5b1e537446454f6332de44adbeb6a15ff072c2fa.
2021-11-08refactor(ext/http): rewrite hyper integration and fix bug (#12332)Bert Belder
Fixes: #12193
2021-10-26fix(ext/http): allow multiple values in upgrade header for websocket (#12551)Leo K
Co-authored-by: Aaron O'Mullan <aaron.omullan@gmail.com>
2021-10-26perf(http): encode string bodies in op-layer (#12451)Aaron O'Mullan
Using serde_v8's StringOrBuffer
2021-10-11fix(http): don't expose body on GET/HEAD requests (#12260)Luca Casonato
GET/HEAD requests can't have bodies according to `fetch` spec. This commit changes the HTTP server to hide request bodies for requests with GET or HEAD methods.
2021-09-29fix(ext/http): merge identical if/else branches (#12269)mynane
2021-09-27perf(fetch): optimize newInnerRequest blob url check (#12245)Aaron O'Mullan
Avoid "blob:" prefix check on requests built in the http module since those can never be blob objects Reduces cost of `newInnerRequest()` from 20ms to 0.1ms in my profiled run on ~2.5M reqs
2021-09-11refactor: use Deno.core.tryClose (#11980)Bartek Iwańczuk
2021-09-10perf(ext/http): optimize auto cleanup of request resource (#11978)Bert Belder
Fixes #11963.
2021-09-08fix(ext/http): resource leak if request body is not consumed (#11955)Bartek Iwańczuk
2021-08-25fix(ext/http): websocket upgrade header check (#11830)Dayan C. Galiazzi
2021-08-23fix(ext/http): resource leak on HttpConn.close() (#11805)Bartek Iwańczuk
This commit adds tracking of resources that are related to "HttpConn" so they can be closed automatically when closing the connection.
2021-08-11Rename extensions/ directory to ext/ (#11643)Ryan Dahl