It's a stand-alone Apache server, with a name based virtual host
configuration and SSL enabled.
I'm attaching the vhost configuration file and a relevant session I
captured with the HTTP Header Live extension for Firefox. I obfuscated the
domain name for privacy.
As one can see from the log, after I reloaded the page the Last-modified
header was still the same as the one that caused the second PUT request to
fail the precondition check. It's really baffling.
Cheers.
On Tuesday, November 12, 2019 at 12:09:53 PM UTC+1, PMario wrote:
>
> On Monday, November 11, 2019 at 10:01:00 PM UTC+1, Daimon Eu wrote:
>
> Server: Apache/2.4.25 (Raspbian) using the stock dav module
>> Client: latest Firefox with no extensions apart from uBlock.
>>
>
> uBlock should not have any impact. I use it since several years and had no
> problems with any site so far.
>
>
>> The first save goes through (it does not contain the If-Unmodified-Since
>> header).
>>
>> On the second I receive the "modified" error and I can't save anymore
>> until I reload the wiki.
>>
>> I can provide you with request and response headers and relevant server
>> configuration in case you want to look into this.
>>
>
> It would be interesting, in which context you use the Apache server. Is it
> a stand alone configuration on the rasp-pi or do you use an other
> "framework" eg: NextCloud or something similar.
>
> I do have several raspberry pi's, so I may be able to test your
> configuration.
>
> I'll have to have a look, with which version we did the tests. I did the
> development for IIS, apache and nginx configurations quite some time ago.
> ... So may be a new test needs to be done.
>
>
>> I've disabled gzip compression and I confirm the stock Webdav saver is
>> working fine without it.
>>
>
> That's right.
>
> have fun!
> mario
>
--
You received this message because you are subscribed to the Google Groups
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywiki/b941b1e9-65d1-4bea-ba12-5e20e9026729%40googlegroups.com.
<VirtualHost *:80>
ServerName domain
Redirect permanent / https://domain/
</VirtualHost>
<VirtualHost *:443>
ServerName domain
DocumentRoot /var/www/domain
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/domain>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/domain/doc/>
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
Alias /dav/doc /var/www/domain/doc
<Location /dav/doc>
# uncomment next line to make TiddlyWiki core webdav saver work
#RequestHeader edit "If-Match" '^"((.*)-(gzip|br))"$' '"$1",
"$2"'
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /var/www/passwd.dav
Require valid-user
</Location>
ErrorLog ${APACHE_LOG_DIR}/error-domain.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel error
#CustomLog ${APACHE_LOG_DIR}/access.log combined
CustomLog /dev/null common
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/domain/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/domain/chain.pem
</VirtualHost>
https://[domain]/dav/doc/test.htm
Host: [domain]
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101
Firefox/70.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
DNT: 1
Authorization: Basic bWFyY286MTIz
Connection: keep-alive
Upgrade-Insecure-Requests: 1
GET: HTTP/1.1 200 OK
Date: Tue, 12 Nov 2019 13:15:21 GMT
Server: Apache/2.4.25 (Raspbian)
Last-Modified: Tue, 12 Nov 2019 13:11:35 GMT
ETag: "230ac3-59725fcdeed6b-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
---------------------
https://[domain]/dav/doc/test.htm
Host: [domain]
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101
Firefox/70.0
Accept: application/json
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
X-Requested-With: TiddlyWiki
Content-Type: text/plain;charset=UTF-8
Content-Length: 0
Origin: https://[domain]
DNT: 1
Authorization: Basic bWFyY286MTIz
Connection: keep-alive
Referer: https://[domain]/dav/doc/test.htm
OPTIONS: HTTP/1.1 200 OK
Date: Tue, 12 Nov 2019 13:15:22 GMT
Server: Apache/2.4.25 (Raspbian)
DAV: 1,2, <http://apache.org/dav/propset/fs/1>
MS-Author-Via: DAV
Allow:
OPTIONS,GET,HEAD,POST,DELETE,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,PUT,LOCK,UNLOCK
Content-Length: 0
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Content-Type: text/html
---------------------
https://[domain]/dav/doc/test.htm
Host: [domain]
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101
Firefox/70.0
Accept: */*;charset=UTF-8
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
X-Requested-With: TiddlyWiki
DNT: 1
Authorization: Basic bWFyY286MTIz
Connection: keep-alive
Referer: https://[domain]/dav/doc/test.htm
HEAD: HTTP/1.1 200 OK
Date: Tue, 12 Nov 2019 13:15:22 GMT
Server: Apache/2.4.25 (Raspbian)
Last-Modified: Tue, 12 Nov 2019 13:11:35 GMT
ETag: "230ac3-59725fcdeed6b-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=5, max=98
Connection: Keep-Alive
Content-Type: text/html
---------------------
https://[domain]/dav/doc/test.htm
Host: [domain]
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101
Firefox/70.0
Accept: application/json
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
X-Requested-With: TiddlyWiki
Content-Type: text/plain;charset=UTF-8
Content-Length: 0
Origin: https://[domain]
DNT: 1
Authorization: Basic bWFyY286MTIz
Connection: keep-alive
Referer: https://[domain]/dav/doc/test.htm
OPTIONS: HTTP/1.1 200 OK
Date: Tue, 12 Nov 2019 13:15:22 GMT
Server: Apache/2.4.25 (Raspbian)
DAV: 1,2, <http://apache.org/dav/propset/fs/1>
MS-Author-Via: DAV
Allow:
OPTIONS,GET,HEAD,POST,DELETE,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,PUT,LOCK,UNLOCK
Content-Length: 0
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
---------------------
https://[domain]/dav/doc/favicon.ico
Host: [domain]
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101
Firefox/70.0
Accept: image/webp,*/*
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
DNT: 1
Authorization: Basic bWFyY286MTIz
Connection: keep-alive
GET: HTTP/1.1 404 Not Found
Date: Tue, 12 Nov 2019 09:29:30 GMT
Server: Apache/2.4.25 (Raspbian)
Content-Length: 278
Content-Type: text/html; charset=iso-8859-1
---------------------
https://[domain]/dav/doc/test.htm
Host: [domain]
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101
Firefox/70.0
Accept: */*
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: text/html;charset=UTF-8
X-Requested-With: TiddlyWiki
Content-Length: 2296723
Origin: https://[domain]
DNT: 1
Authorization: Basic bWFyY286MTIz
Connection: keep-alive
Referer: https://[domain]/dav/doc/test.htm
<!doctype html>
[snip]
</html>
PUT: HTTP/1.1 204 No Content
Date: Tue, 12 Nov 2019 13:15:47 GMT
Server: Apache/2.4.25 (Raspbian)
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
---------------------
https://[domain]/dav/doc/test.htm
Host: [domain]
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101
Firefox/70.0
Accept: */*
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
X-Requested-With: TiddlyWiki
DNT: 1
Authorization: Basic bWFyY286MTIz
Connection: keep-alive
Referer: https://[domain]/dav/doc/test.htm
HEAD: HTTP/1.1 200 OK
Date: Tue, 12 Nov 2019 13:15:50 GMT
Server: Apache/2.4.25 (Raspbian)
Last-Modified: Tue, 12 Nov 2019 13:15:49 GMT
ETag: W/"230b93-597260c02ad16-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Content-Type: text/html
---------------------
https://[domain]/dav/doc/test.htm
Host: [domain]
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101
Firefox/70.0
Accept: */*
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: text/html;charset=UTF-8
If-Unmodified-Since: Tue, 12 Nov 2019 13:15:49 GMT
X-Requested-With: TiddlyWiki
Content-Length: 2296751
Origin: https://[domain]
DNT: 1
Authorization: Basic bWFyY286MTIz
Connection: keep-alive
Referer: https://[domain]/dav/doc/test.htm
<!doctype html>
[snip]
</html>
PUT: HTTP/1.1 412 Precondition Failed
Date: Tue, 12 Nov 2019 13:16:18 GMT
Server: Apache/2.4.25 (Raspbian)
Content-Length: 315
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
---------------------
[PAGE RELOAD]
https://[domain]/dav/doc/test.htm
Host: [domain]
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101
Firefox/70.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
DNT: 1
Authorization: Basic bWFyY286MTIz
Connection: keep-alive
Upgrade-Insecure-Requests: 1
GET: HTTP/1.1 200 OK
Date: Tue, 12 Nov 2019 13:21:14 GMT
Server: Apache/2.4.25 (Raspbian)
Last-Modified: Tue, 12 Nov 2019 13:15:49 GMT
ETag: "230b93-597260c02ad16-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
---------------------
https://[domain]/dav/doc/test.htm
Host: [domain]
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101
Firefox/70.0
Accept: application/json
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
X-Requested-With: TiddlyWiki
Content-Type: text/plain;charset=UTF-8
Content-Length: 0
Origin: https://[domain]
DNT: 1
Authorization: Basic bWFyY286MTIz
Connection: keep-alive
Referer: https://[domain]/dav/doc/test.htm
OPTIONS: HTTP/1.1 200 OK
Date: Tue, 12 Nov 2019 13:21:15 GMT
Server: Apache/2.4.25 (Raspbian)
DAV: 1,2, <http://apache.org/dav/propset/fs/1>
MS-Author-Via: DAV
Allow:
OPTIONS,GET,HEAD,POST,DELETE,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,PUT,LOCK,UNLOCK
Content-Length: 0
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Content-Type: text/html
---------------------
https://[domain]/dav/doc/test.htm
Host: [domain]
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101
Firefox/70.0
Accept: */*;charset=UTF-8
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
X-Requested-With: TiddlyWiki
DNT: 1
Authorization: Basic bWFyY286MTIz
Connection: keep-alive
Referer: https://[domain]/dav/doc/test.htm
HEAD: HTTP/1.1 200 OK
Date: Tue, 12 Nov 2019 13:21:15 GMT
Server: Apache/2.4.25 (Raspbian)
Last-Modified: Tue, 12 Nov 2019 13:15:49 GMT
ETag: "230b93-597260c02ad16-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
---------------------
https://[domain]/dav/doc/test.htm
Host: [domain]
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101
Firefox/70.0
Accept: application/json
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
X-Requested-With: TiddlyWiki
Content-Type: text/plain;charset=UTF-8
Content-Length: 0
Origin: https://[domain]
DNT: 1
Authorization: Basic bWFyY286MTIz
Connection: keep-alive
Referer: https://[domain]/dav/doc/test.htm
OPTIONS: HTTP/1.1 200 OK
Date: Tue, 12 Nov 2019 13:21:15 GMT
Server: Apache/2.4.25 (Raspbian)
DAV: 1,2, <http://apache.org/dav/propset/fs/1>
MS-Author-Via: DAV
Allow:
OPTIONS,GET,HEAD,POST,DELETE,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,PUT,LOCK,UNLOCK
Content-Length: 0
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
---------------------
https://[domain]/dav/doc/favicon.ico
Host: [domain]
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101
Firefox/70.0
Accept: image/webp,*/*
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
DNT: 1
Authorization: Basic bWFyY286MTIz
Connection: keep-alive
GET: HTTP/1.1 404 Not Found
Date: Tue, 12 Nov 2019 09:29:30 GMT
Server: Apache/2.4.25 (Raspbian)
Content-Length: 278
Content-Type: text/html; charset=iso-8859-1
---------------------