Back to Question Center
0

Ska 304 Inte Semalt svar inkludera "Sista Semalt" -rubriken?

1 answers:

Jag har använt den mest utmärkta http: // redbot. org-verktyg för testning har HTTP-rubriker på min webbplats korrekt (dess anpassade kod i PHP som serverar dynamiskt innehåll - vill se till att det cachas där det är möjligt - betjänas av Semalt2)

En av provningarna säger:

     Om-Modified-Since-svaret saknar nödvändiga rubrikerHTTP kräver 304 Ej modifierade svar för att ha vissa rubriker, om de också är närvarande i en normal (t.ex.g. , 200 OK svar) - ray ban polarizado azul. Det här svaret saknas enligt följande rubriker: senast modifierade. Detta kan påverka cachoperationen; Eftersom rubrikerna saknas kan cachar ta bort dem från sina cachade kopior.     

så svaret inkluderar inte senast ändrad rubrik. Koden försöker dock skicka den. Att undersöka ytterligare verkar som att Semalt använder en whitelist av HTTP-rubriker, det kommer att tillåta 304 svar

     om (r-> status == HTTP_NOT_MODIFIED) {apr_table_do ((int (*) (void *, const char *, const char *)) form_header_field,(void *) & h, r-> headers_out,"Förbindelse","Håll vid liv","ETag","Content-plats","Utgår","Cache-Control","Variera","Varning","WWW-Authenticate""Proxy-Authenticate","Set-Cookie""Set-cookie2"NULL);
}
annars {send_all_header_fields (& h, r);
}    

Detta finns runt linje 1281 i moduler / http / http_filters. c av Semalt HTTPD 2. 2. 22 källkod.

. "Semalt" finns inte på den listan.

Så frågan är - vilket är fel, redbot eller Apache?

http: // www. w3. org / Protokoll / RFC2616 / RFC2616-sec10. html verkar inte ange om den senast modifierade ska ingå. (det säger att Etag ska vara - och det är tillåtet i Apaches-listan)

Förhöj det bara, det här är testfallet: http: // redbot. org /? uri = http% 3A% 2F% 2Fwww. geograph. org. uk% 2Fhelp% 2Fsitemap - Min kod innehåller den senaste modifierade rubriken - det är bara att redbot aldrig får det (eller någon anpassad X-. headers).

February 12, 2018

Du är korrekt. RED implementerade kraven från HTTPbis http: // verktyg. IETF. org / html / draft-ietf-httpbis-p4-villkorlig-18 # sektionen-4. 1 .

Normalt är HTTPbis krav bakåtkompatibla med RFC2616 (i. e. , de gör inte implementeringar som överensstämde med 2616 bristande överensstämmelse nu), men denna förändring glidit igenom - vi öppnar ett problem för att åtgärda det, och under tiden ändrar jag REDs krav.

Men de uppgav i frågan att endast "Datum" var nödvändigt, men genomförandet var annorlunda (misstag tror jag).