summaryrefslogtreecommitdiffhomepage
path: root/src/http/v2/ngx_http_v2.h
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2023-06-08 16:56:46 +0400
committerSergey Kandaurov <pluknet@nginx.com>2023-06-08 16:56:46 +0400
commit6915d2fb2e88e0c339fe37b37ce14f5fe446c1c6 (patch)
tree7abd9b350b80b07a2c96583025621151dffe1ba5 /src/http/v2/ngx_http_v2.h
parentd32f66f1e8dc81a0edbadbacf74191684a653d09 (diff)
downloadnginx-6915d2fb2e88e0c339fe37b37ce14f5fe446c1c6.tar.gz
nginx-6915d2fb2e88e0c339fe37b37ce14f5fe446c1c6.tar.bz2
HTTP/2: removed server push (ticket #2432).
Although it has better implementation status than HTTP/3 server push, it remains of limited use, with adoption numbers seen as negligible. Per IETF 102 materials, server push was used only in 0.04% of sessions. It was considered to be "difficult to use effectively" in RFC 9113. Its use is further limited by badly matching to fetch/cache/connection models in browsers, see related discussions linked from [1]. Server push was disabled in Chrome 106 [2]. The http2_push, http2_push_preload, and http2_max_concurrent_pushes directives are made obsolete. In particular, this essentially reverts 7201:641306096f5b and 7207:3d2b0b02bd3d. [1] https://jakearchibald.com/2017/h2-push-tougher-than-i-thought/ [2] https://chromestatus.com/feature/6302414934114304
Diffstat (limited to 'src/http/v2/ngx_http_v2.h')
-rw-r--r--src/http/v2/ngx_http_v2.h14
1 files changed, 0 insertions, 14 deletions
diff --git a/src/http/v2/ngx_http_v2.h b/src/http/v2/ngx_http_v2.h
index cb7a313e0..cb9014ccf 100644
--- a/src/http/v2/ngx_http_v2.h
+++ b/src/http/v2/ngx_http_v2.h
@@ -24,8 +24,6 @@
#define NGX_HTTP_V2_MAX_FIELD \
(127 + (1 << (NGX_HTTP_V2_INT_OCTETS - 1) * 7) - 1)
-#define NGX_HTTP_V2_STREAM_ID_SIZE 4
-
#define NGX_HTTP_V2_FRAME_HEADER_SIZE 9
/* frame types */
@@ -67,7 +65,6 @@ typedef struct {
ngx_flag_t enable;
size_t pool_size;
ngx_uint_t concurrent_streams;
- ngx_uint_t concurrent_pushes;
size_t preread_size;
ngx_uint_t streams_index_mask;
} ngx_http_v2_srv_conf_t;
@@ -136,9 +133,6 @@ struct ngx_http_v2_connection_s {
ngx_uint_t idle;
ngx_uint_t priority_limit;
- ngx_uint_t pushing;
- ngx_uint_t concurrent_pushes;
-
size_t send_window;
size_t recv_window;
size_t init_window;
@@ -165,7 +159,6 @@ struct ngx_http_v2_connection_s {
ngx_uint_t closed_nodes;
ngx_uint_t last_sid;
- ngx_uint_t last_push;
time_t lingering_time;
@@ -173,7 +166,6 @@ struct ngx_http_v2_connection_s {
unsigned table_update:1;
unsigned blocked:1;
unsigned goaway:1;
- unsigned push_disabled:1;
};
@@ -303,9 +295,6 @@ void ngx_http_v2_init(ngx_event_t *rev);
ngx_int_t ngx_http_v2_read_request_body(ngx_http_request_t *r);
ngx_int_t ngx_http_v2_read_unbuffered_request_body(ngx_http_request_t *r);
-ngx_http_v2_stream_t *ngx_http_v2_push_stream(ngx_http_v2_stream_t *parent,
- ngx_str_t *path);
-
void ngx_http_v2_close_stream(ngx_http_v2_stream_t *stream, ngx_int_t rc);
ngx_int_t ngx_http_v2_send_output_queue(ngx_http_v2_connection_t *h2c);
@@ -407,15 +396,12 @@ ngx_int_t ngx_http_v2_table_size(ngx_http_v2_connection_t *h2c, size_t size);
#define NGX_HTTP_V2_STATUS_404_INDEX 13
#define NGX_HTTP_V2_STATUS_500_INDEX 14
-#define NGX_HTTP_V2_ACCEPT_ENCODING_INDEX 16
-#define NGX_HTTP_V2_ACCEPT_LANGUAGE_INDEX 17
#define NGX_HTTP_V2_CONTENT_LENGTH_INDEX 28
#define NGX_HTTP_V2_CONTENT_TYPE_INDEX 31
#define NGX_HTTP_V2_DATE_INDEX 33
#define NGX_HTTP_V2_LAST_MODIFIED_INDEX 44
#define NGX_HTTP_V2_LOCATION_INDEX 46
#define NGX_HTTP_V2_SERVER_INDEX 54
-#define NGX_HTTP_V2_USER_AGENT_INDEX 58
#define NGX_HTTP_V2_VARY_INDEX 59
#define NGX_HTTP_V2_PREFACE_START "PRI * HTTP/2.0\r\n"