aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http.h
Commit message (Collapse)AuthorAge
* Upstream: early hints support.Roman Arutyunyan2025-06-19
| | | | | | | | | | | | | | | | | The change implements processing upstream early hints response in ngx_http_proxy_module and ngx_http_grpc_module. A new directive "early_hints" enables sending early hints to the client. By default, sending early hints is disabled. Example: map $http_sec_fetch_mode $early_hints { navigate $http2$http3; } early_hints $early_hints; proxy_pass http://example.com;
* Proxy: proxy_pass_trailers directive.Sergey Kandaurov2024-09-13
| | | | The directive allows to pass upstream response trailers to client.
* Merged with the default branch.Sergey Kandaurov2022-06-22
|\
| * Reworked multi headers to use linked lists.Maxim Dounin2022-05-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Multi headers are now using linked lists instead of arrays. Notably, the following fields were changed: r->headers_in.cookies (renamed to r->headers_in.cookie), r->headers_in.x_forwarded_for, r->headers_out.cache_control, r->headers_out.link, u->headers_in.cache_control u->headers_in.cookies (renamed to u->headers_in.set_cookie). The r->headers_in.cookies and u->headers_in.cookies fields were renamed to r->headers_in.cookie and u->headers_in.set_cookie to match header names. The ngx_http_parse_multi_header_lines() and ngx_http_parse_set_cookie_lines() functions were changed accordingly. With this change, multi headers are now essentially equivalent to normal headers, and following changes will further make them equivalent.
* | Fixed a mismerge in 5c86189a1c1b.Ruslan Ermilov2021-12-28
| |
* | Merged with the default branch.Ruslan Ermilov2021-12-24
|\|
| * Moved Huffman coding out of HTTP/2.Ruslan Ermilov2021-12-21
| | | | | | | | | | ngx_http_v2_huff_decode.c and ngx_http_v2_huff_encode.c are renamed to ngx_http_huff_decode.c and ngx_http_huff_encode.c.
* | HTTP/3: merged ngx_http_quic_module into ngx_http_v3_module.Roman Arutyunyan2021-12-06
| |
* | HTTP/3: make ngx_http_log_error() static again.Roman Arutyunyan2021-09-17
| | | | | | | | | | | | | | | | This function was only referenced from ngx_http_v3_create_push_request() to initialize push connection log. Now the log handler is copied from the parent request connection. The change reduces diff to the default branch.
* | HTTP/3: got rid of HTTP/2 module dependency.Vladimir Homutov2021-08-05
| | | | | | | | The Huffman encoder/decoder now can be built separately from HTTP/2 module.
* | HTTP/3: renamed ngx_http_v3_connection_t to ngx_http_v3_session_t.Roman Arutyunyan2021-05-05
| |
* | HTTP/3: reference h3c directly from ngx_http_connection_t.Roman Arutyunyan2021-05-05
| | | | | | | | | | | | | | Previously, an ngx_http_v3_connection_t object was created for HTTP/3 and then assinged to c->data instead of the generic ngx_http_connection_t object. Now a direct reference is added to ngx_http_connection_t, which is less confusing and does not require a flag for http3.
* | HTTP/3: introduced ngx_http_v3_parse_t structure.Roman Arutyunyan2021-02-17
| | | | | | | | | | | | | | | | The structure is used to parse an HTTP/3 request. An object of this type is added to ngx_http_request_t instead of h3_parse generic pointer. Also, the new field is located outside of the request ephemeral zone to keep it safe after request headers are parsed.
* | HTTP/3: refactored request body parser.Roman Arutyunyan2021-01-25
| | | | | | | | | | | | | | | | The change reduces diff to the default branch for src/http/ngx_http_request_body.c. Also, client Content-Length, if present, is now checked against the real body size sent by client.
* | HTTP/3: refactored request parser.Roman Arutyunyan2021-01-22
| | | | | | | | | | The change reduces diff to the default branch for src/http/ngx_http_request.c and src/http/ngx_http_parse.c.
* | HTTP/3: server pushes.Roman Arutyunyan2020-07-23
| | | | | | | | | | | | | | New directives are added: - http3_max_concurrent_pushes - http3_push - http3_push_preload
* | QUIC: added "quic" listen parameter.Roman Arutyunyan2020-07-21
| | | | | | | | | | | | The parameter allows processing HTTP/0.9-2 over QUIC. Also, introduced ngx_http_quic_module and moved QUIC settings there
* | Parsing HTTP/3 request body.Roman Arutyunyan2020-03-27
| |
* | HTTP/3.Roman Arutyunyan2020-03-13
|/
* SSL: variables support in ssl_certificate and ssl_certificate_key.Maxim Dounin2019-02-25
| | | | | | | | | | To evaluate variables, a request is created in the certificate callback, and then freed. To do this without side effects on the stub_status counters and connection state, an additional function was introduced, ngx_http_alloc_request(). Only works with OpenSSL 1.0.2+, since there is no SSL_CTX_set_cert_cb() in older versions.
* Modules compatibility: http2.Maxim Dounin2016-10-03
| | | | | HTTP/2-specific fields in structures are now available unconditionally. Removed NGX_HTTP_V2 from the signature accordingly.
* The HTTP/2 implementation (RFC 7240, 7241).Valentin Bartenev2015-09-11
| | | | The SPDY support is removed, as it's incompatible with the new module.
* Moved ngx_http_parse_time() to core, renamed accordingly.Maxim Dounin2015-06-11
| | | | | | | | | The function is now called ngx_parse_http_time(), and can be used by any code to parse HTTP-style date and time. In particular, it will be used for OCSP stapling. For compatibility, a macro to map ngx_http_parse_time() to the new name provided for a while.
* Removed unused ngx_http_get_time() declaration.Maxim Dounin2015-06-11
|
* Request body: unbuffered reading.Maxim Dounin2015-03-23
| | | | | | | | | | | The r->request_body_no_buffering flag was introduced. It instructs client request body reading code to avoid reading the whole body, and to call post_handler early instead. The caller should use the ngx_http_read_unbuffered_request_body() function to read remaining parts of the body. Upstream module is now able to use this mode, if configured with the proxy_request_buffering directive.
* Request body: filters support.Maxim Dounin2015-03-23
|
* Removed busy locks.Ruslan Ermilov2015-03-20
|
* Style: moved ngx_http_ephemeral() macro to ngx_http_request.h.Ruslan Ermilov2015-03-04
|
* Upstream: added the "$upstream_cookie_<name>" variables.Vladimir Homutov2014-04-29
|
* Fixed build with --with-mail_ssl_module.Maxim Dounin2013-05-11
| | | | | | | | | If nginx was compiled without --with-http_ssl_module, but with some other module which uses OpenSSL (e.g. --with-mail_ssl_module), insufficient preprocessor check resulted in build failure. The problem was introduced by e0a3714a36f8 (1.3.14). Reported by Roman Arutyunyan.
* Preliminary experimental support for SPDY draft 2.Valentin Bartenev2013-03-20
|
* Removed unused prototype of ngx_http_find_server_conf().Valentin Bartenev2013-03-11
| | | | | This function prototype and its implementation was added in r90, but the implementation was removed in r97.
* SNI: reuse selected configuration for all requests in a connection.Valentin Bartenev2013-02-27
| | | | | | | | | | | | | | | | | | Previously, only the first request in a connection was assigned the configuration selected by SNI. All subsequent requests initially used the default server's configuration, ignoring SNI, which was wrong. Now all subsequent requests in a connection will initially use the configuration selected by SNI. This is done by storing a pointer to configuration in http connection object. It points to default server's configuration initially, but changed upon receipt of SNI. (The request's configuration can be further refined when parsing the request line and Host: header.) This change was not made specific to SNI as it also allows slightly faster access to configuration without the request object.
* Fixed and improved the "*_bind" directives of proxying modules.Ruslan Ermilov2013-01-16
| | | | | | | The "proxy_bind", "fastcgi_bind", "uwsgi_bind", "scgi_bind" and "memcached_bind" directives are now inherited; inherited value can be reset by the "off" parameter. Duplicate directives are now detected. Parameter value can now contain variables.
* Request body: chunked parsing moved to ngx_http_parse.c from proxy.Maxim Dounin2012-11-21
| | | | No functional changes.
* Copyright updated.Maxim Konovalov2012-01-18
|
* Protocol version parsing in ngx_http_parse_status_line().Maxim Dounin2011-09-15
| | | | | Once we know protocol version, set u->headers_in.connection_close to indicate implicitly assumed connection close with HTTP before 1.1.
* ngx_http_degraded()Igor Sysoev2010-10-04
|
* ngx_http_parse_status_line()Igor Sysoev2010-06-15
|
* fix building by gcc 4.x with -O2/3/s in some Linux distributions:Igor Sysoev2009-12-21
| | | | | dereferencing type-punned pointer will break strict-aliasing rules the bug has been introduced in r3065
* support "*" in gzip_types, ssi_types, etcIgor Sysoev2009-11-30
|
* *) move sockaddr to the listen optionsIgor Sysoev2009-10-21
| | | | *) rename ngx_http_listen_t to ngx_http_listen_opt_t
* refactor http listen code:Igor Sysoev2009-10-21
| | | | | *) add listen's to the global cmcf->ports array instead of server's one *) rename ngx_http_listen_conf_t to ngx_http_listen_opt_t
* restore discard body handler after ngx_http_set_writer() set it toIgor Sysoev2009-10-19
| | | | ngx_http_test_reading(), the bug was introduced in r3050
* *) ngx_http_ephemeralIgor Sysoev2009-08-30
| | | | *) use preallocated terminal_posted_request
* allow to pass image filter errors via the same location where the filter is setIgor Sysoev2009-05-08
|
* ngx_http_filter_finalize_request() and ngx_http_clean_header()Igor Sysoev2009-05-01
|
* a prelimiary proxy cache supportIgor Sysoev2009-03-23
|
* use complex value in error_pageIgor Sysoev2009-03-22
|
* ngx_http_split_args()Igor Sysoev2009-03-19
|