Mercurial > hg > nginx
annotate src/http/v3/ngx_http_v3_encode.h @ 8903:0d3bf08eaac0 quic
HTTP/3: allowed QUIC stream connection reuse.
A QUIC stream connection is treated as reusable until first bytes of request
arrive, which is also when the request object is now allocated. A connection
closed as a result of draining, is reset with the error code
H3_REQUEST_REJECTED. Such behavior is allowed by quic-http-34:
Once a request stream has been opened, the request MAY be cancelled
by either endpoint. Clients cancel requests if the response is no
longer of interest; servers cancel requests if they are unable to or
choose not to respond.
When the server cancels a request without performing any application
processing, the request is considered "rejected." The server SHOULD
abort its response stream with the error code H3_REQUEST_REJECTED.
The client can treat requests rejected by the server as though they had
never been sent at all, thereby allowing them to be retried later.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Mon, 18 Oct 2021 15:47:06 +0300 |
parents | 0ac25efb2da3 |
children |
rev | line source |
---|---|
8773
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
1 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
2 /* |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
3 * Copyright (C) Roman Arutyunyan |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
4 * Copyright (C) Nginx, Inc. |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
5 */ |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
6 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
7 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
8 #ifndef _NGX_HTTP_V3_ENCODE_H_INCLUDED_ |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
9 #define _NGX_HTTP_V3_ENCODE_H_INCLUDED_ |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
10 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
11 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
12 #include <ngx_config.h> |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
13 #include <ngx_core.h> |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
14 #include <ngx_http.h> |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
15 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
16 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
17 uintptr_t ngx_http_v3_encode_varlen_int(u_char *p, uint64_t value); |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
18 uintptr_t ngx_http_v3_encode_prefix_int(u_char *p, uint64_t value, |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
19 ngx_uint_t prefix); |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
20 |
8807
0ac25efb2da3
HTTP/3: quic-qpack term updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8773
diff
changeset
|
21 uintptr_t ngx_http_v3_encode_field_section_prefix(u_char *p, |
8773
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
22 ngx_uint_t insert_count, ngx_uint_t sign, ngx_uint_t delta_base); |
8807
0ac25efb2da3
HTTP/3: quic-qpack term updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8773
diff
changeset
|
23 uintptr_t ngx_http_v3_encode_field_ri(u_char *p, ngx_uint_t dynamic, |
8773
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
24 ngx_uint_t index); |
8807
0ac25efb2da3
HTTP/3: quic-qpack term updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8773
diff
changeset
|
25 uintptr_t ngx_http_v3_encode_field_lri(u_char *p, ngx_uint_t dynamic, |
8773
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
26 ngx_uint_t index, u_char *data, size_t len); |
8807
0ac25efb2da3
HTTP/3: quic-qpack term updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8773
diff
changeset
|
27 uintptr_t ngx_http_v3_encode_field_l(u_char *p, ngx_str_t *name, |
8773
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
28 ngx_str_t *value); |
8807
0ac25efb2da3
HTTP/3: quic-qpack term updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8773
diff
changeset
|
29 uintptr_t ngx_http_v3_encode_field_pbi(u_char *p, ngx_uint_t index); |
0ac25efb2da3
HTTP/3: quic-qpack term updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8773
diff
changeset
|
30 uintptr_t ngx_http_v3_encode_field_lpbi(u_char *p, ngx_uint_t index, |
8773
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
31 u_char *data, size_t len); |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
32 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
33 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
34 #endif /* _NGX_HTTP_V3_ENCODE_H_INCLUDED_ */ |