我的本地机器上有一个networking服务器和鱿鱼。 鱿鱼在caching外部网站时工作正常。 我已经告诉Firefox也将其用于我的本地网站(因为该网站有很多服务器端的dynamic,并将受益很多)。
问题是一些内容以零长度返回。
我曾尝试通过在Firefox中使用开发人员工具进行debugging,然后查看服务器日志,然后使用wireshark查看对话,因为它会显示所有内容。 我注意到,在鱿鱼返回零长度响应后的谈话结束。 它改变主意并发出正确的回应。 我花了一些时间来注意到这一点(通过编写这个问题的一部分,和浏览器(Firefox似乎并没有注意到,相同的铬)。
到底是怎么回事? 我如何解决它? (获取要显示的页面。)
浏览器→鱿鱼
我的解释是:浏览器正在发出一个新的请求(无caching信息)。
Hypertext Transfer Protocol GET http://bookmarkdb/bookmarks HTTP/1.1\r\n Host: bookmarkdb\r\n User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0\r\n Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n Accept-Language: en-US,en;q=0.5\r\n Accept-Encoding: gzip, deflate\r\n Connection: keep-alive\r\n Upgrade-Insecure-Requests: 1\r\n \r\n
鱿鱼→networking服务器
我的解释是:鱿鱼说在caching里有7GJB87730EFEYP81610H6CGEQ
GET /bookmarks HTTP/1.1 If-Modified-Since: Fri, 03 Nov 2017 11:38:19 GMT If-None-Match: "7GJB87730EFEYP81610H6CGEQ" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Upgrade-Insecure-Requests: 1 Host: bookmarkdb Via: 1.1 delorenzi (squid/3.5.23) X-Forwarded-For: 127.0.0.1 Cache-Control: max-age=259200 Connection: keep-alive
networking服务器→鱿鱼
我的解释:使用你所拥有的,我仍然在7GJB87730EFEYP81610H6CGEQ
HTTP/1.1 304 Not Modified Server: CouchDB/1.6.1 (Erlang OTP/17) ETag: "7GJB87730EFEYP81610H6CGEQ" Date: Fri, 03 Nov 2017 11:52:24 GMT Content-Length: 0
鱿鱼→浏览器
我的解释是:Squid返回页面,但告诉我们这是零长度。
HTTP/1.1 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Server: CouchDB/1.6.1 (Erlang OTP/17) ETag: "7GJB87730EFEYP81610H6CGEQ" Date: Fri, 03 Nov 2017 11:52:24 GMT Content-Length: 0 Age: 0 X-Cache: HIT from delorenzi X-Cache-Lookup: HIT from delorenzi:3128 Via: 1.1 delorenzi (squid/3.5.23) Connection: keep-alive <html> <head> <meta charset="utf-8"> …