[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox
Subject: [PATCH 0/6] httpd: Match If-Modified-Since and Last-Modified to return 304
From: Sergey Ponomarev <stokito () gmail ! com>
Date: 2021-01-09 21:09:45
Message-ID: 20210109210951.200757-1-stokito () gmail ! com
[Download RAW message or body]
Recently to httpd was added commit 4864a68 "httpd: Support caching via ETag header".
It works simple: in response to GET request we add ETag header built from file's \
mtime and size. Client caches the file and on next GET request adds it into \
If-None-Match header. Server checks that current file's ETag the same as \
If-None-Match and responds with 304 Not Modified without payload.
The patch adds similar logic to validate If-Modified-Since against Last-Modified.
This will be useful for 'wget -N' command which sends If-Modified-Since for existing \
file. Also the fix can be easily and safely ported to old BB versions.
Here is an example of usage:
WWW_DIR=$(mktemp -d)
echo "<script>document.write(new \
Date(document.lastModified).toISOString())</script>" > "$WWW_DIR/last-mod.html" \
touch -d '2021-01-01 00:00:00 +0000' "$WWW_DIR/last-mod.html" httpd -vvv -p 8080 -h \
"$WWW_DIR"
echo 'curl will return 304 Not Modified with ETag: "5fee6600-4f":'
curl -s -I 'http://localhost:8080/last-mod.html' \
--header 'If-None-Match: "5fee6600-4f"' \
--header 'If-Modified-Since: Fri, 01 Jan 2021 00:00:00 GMT'
The two last commits are not related but will be nice to apply.
Sergey Ponomarev (6):
httpd: Last-Modified optimization
httpd: Match If-Modified-Since and Last-Modified to return 304
httpd: Match If-Modified-Since only when If-None-Match is not present
httpd: Add Last-Modified only if resource returned with 200
Fix Content-type header name to Content-Type
httpd_post_upload.cgi: use mktemp to avoid $RANDOM
networking/httpd.c | 121 +++++++++++++++++++++----------
networking/httpd_post_upload.cgi | 2 +-
2 files changed, 85 insertions(+), 38 deletions(-)
--
2.27.0
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic