busybox/networking
Sergey Ponomarev 4864a68596 httpd: Support caching via ETag header
If server responds with ETag then next time client can resend it via If-None-Match header.
Then httpd will check if file wasn't modified and if not return 304 Not Modified status code.
The ETag value is constructed from file's last modification date in unix epoch and it's size:
"hex(last_mod)-hex(file_size)" e.g. "5e132e20-417" (with quotes).
That means that it's not completely reliable as hash functions but fair enough.
The same form of ETag is used by Nginx so load balancing of static content is safe.

function                                             old     new   delta
handle_incoming_and_exit                            2135    2201     +66
http_response                                         88      96      +8
send_headers                                         676     683      +7
parse_conf                                          1362    1365      +3
http_response_type                                    22      24      +2
send_file_and_exit                                   847     841      -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/1 up/down: 86/-6)              Total: 80 bytes

Signed-off-by: Sergey Ponomarev <stokito@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2020-08-15 23:54:48 +02:00
..
libiproute ip address: Add support for "valid_lft" and "preferred_lft" options 2020-07-31 18:48:50 +02:00
ssl_helper networking/ssl_helper: experimental matrixssl-based ssl helper 2014-02-23 23:31:13 +01:00
ssl_helper-wolfssl Update information on building httpd and wget helpers 2016-12-22 15:13:37 +01:00
udhcp build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
arp.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
arping.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
brctl.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
Config.src tls: introduce FEATURE_TLS_SHA1 to make SHA1 code optional 2018-12-10 16:14:58 +01:00
dnsd.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
ether-wake.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
ftpd.c ftpd: allow -A if !FTPD_AUTHENTICATION as well 2018-04-07 14:18:42 +02:00
ftpgetput.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
hostname.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
httpd_helpers.sh Update information on building httpd and wget helpers 2016-12-22 15:13:37 +01:00
httpd_indexcgi.c httpd_indexcgi.c: use CSS for odd/even rows 2020-07-31 18:14:54 +02:00
httpd_post_upload.cgi Make POST upload example script easier to use 2016-12-22 15:33:11 +01:00
httpd_ssi.c whitespace fixes. no code changes 2013-01-14 01:34:48 +01:00
httpd.c httpd: Support caching via ETag header 2020-08-15 23:54:48 +02:00
ifconfig.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
ifenslave.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
ifplugd.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
ifupdown.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
inetd.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
interface.c networking/interface.c: get rid of global data 2018-03-05 18:30:33 +01:00
ip.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
ipcalc.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
isrv_identd.c config: update size information 2018-12-28 03:20:17 +01:00
isrv.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
isrv.h fixlet for the previous commit #2 2014-01-09 20:09:43 +01:00
Kbuild.src Convert all networking/* applets to "new style" applet definitions 2016-11-23 09:05:14 +01:00
nameif.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
nbd-client.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
nc_bloaty.c nc_bloaty: support udp broadcast ports 2020-06-29 13:53:17 +02:00
nc.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
netstat.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
nslookup.c nslookup: implement support for SRV records 2019-10-27 17:07:35 +01:00
ntpd.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
ntpd.diff ntpd: add experimental patch 2016-03-04 07:36:04 +01:00
parse_pasv_epsv.c networking: support ftp PASV responses not ending with ')' 2020-07-19 20:59:35 +02:00
ping.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
pscan.c config: update size information 2018-12-28 03:20:17 +01:00
route.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
slattach.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
ssl_client.c config: update size information 2018-12-28 03:20:17 +01:00
tc.c tc: array address is never NULL 2019-10-25 13:41:31 +02:00
tcpudp_perhost.c tcpudp: shrink per-host rate-limiting code 2018-02-27 13:03:44 +01:00
tcpudp_perhost.h tcpudp: shrink per-host rate-limiting code 2018-02-27 13:03:44 +01:00
tcpudp.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
telnet.c telnet: add disabled code to emit EC and IP 2019-10-18 16:47:37 +02:00
telnetd.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
telnetd.ctrlSQ.patch *: slap on a few ALIGN1/2s where appropriate 2016-04-22 18:09:21 +02:00
telnetd.IAC_test.sh telnetd: fix corner case of input processing of 0xff bytes 2016-10-12 19:13:46 +02:00
tftp.c tftp: on download, open local file only when first bit of data arrived 2020-02-13 15:27:23 +01:00
tls_aes.c *: slap on a few ALIGN1/2s where appropriate 2019-05-21 17:29:24 +02:00
tls_aes.h tls: in AES-CBC code, do not set key for every record - do it once 2018-11-23 18:02:44 +01:00
tls_aesgcm.c suppress a few "unused function" warnings 2019-10-25 13:05:15 +02:00
tls_aesgcm.h tls: in AES-GCM decoding, avoid memmove 2018-11-24 13:51:46 +01:00
tls_fe.c tls: code shrink 2019-01-10 20:18:02 +01:00
tls_fe.h tls: add support for TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 cipher 2018-11-23 17:48:07 +01:00
tls_pstm_montgomery_reduce.c networking: cc is not a register 2019-05-17 22:56:47 +02:00
tls_pstm_mul_comba.c networking: cc is not a register 2019-05-17 22:56:47 +02:00
tls_pstm_sqr_comba.c networking: cc is not a register 2019-05-17 22:56:47 +02:00
tls_pstm.c tls: pstm code shrink 2019-01-01 15:40:43 +01:00
tls_pstm.h tls: pstm code shrink 2019-01-01 15:40:43 +01:00
tls_rsa.c tls: pstm code shrink 2019-01-01 15:40:43 +01:00
tls_rsa.h tls: do not leak RSA key 2018-11-25 16:17:26 +01:00
tls_symmetric.h tls: set TLS_DEBUG to 0; placate a gcc indentation warning 2017-01-23 01:15:13 +01:00
tls.c ntpd: fix refid reported in server mode, closes 13056 2020-07-20 00:04:33 +02:00
tls.h libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
traceroute.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
tunctl.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
vconfig.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
wget.c wget: fix openssl options for cert verification 2020-06-29 14:32:09 +02:00
whois.c whois: limit total length of response to 32+2 kb 2019-12-03 14:52:17 +01:00
zcip.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00