Kā BlackPink dziedātu "DDD" ar EXID

Es testēšanai izmantoju izcilāko http://redbot.org rīku, kurā manā vietnē ir pareizas HTTP galvenes (tās pielāgotais kods PHP, kas apkalpo dinamisko saturu - vēloties nodrošināt, ka tas tiek saglabāts kešatmiņā, ja iespējams, to nodrošina Apache2)

Vienā no testiem teikts:

The If-Modified-Since response is missing required headers HTTP requires 304 Not Modified responses to have certain headers, if they are also present in a normal (e.g., 200 OK response). This response is missing the following headers: last-modified. This can affect cache operation; because the headers are missing, caches might remove them from their cached copies. 

... tāpēc rezonansē nav galvenes Last-Modified. Tomēr kods mēģina to nosūtīt. Turpmāk izpētot, šķiet, ka Apache izmanto HTTP galvenes balto sarakstu, tas ļaus atbildēt uz 304 ...

if (r->status == HTTP_NOT_MODIFIED) { apr_table_do((int (*)(void *, const char *, const char *)) form_header_field, (void *) &h, r->headers_out, 'Connection', 'Keep-Alive', 'ETag', 'Content-Location', 'Expires', 'Cache-Control', 'Vary', 'Warning', 'WWW-Authenticate', 'Proxy-Authenticate', 'Set-Cookie', 'Set-Cookie2', NULL); } else { send_all_header_fields(&h, r); } 

Tas ir atrodams ap 1281. rindiņu Apache HTTPD 2.2.22 avota moduļos / http / http_filters.c.

.... “Pēdējo reizi modificēts” nav šajā sarakstā.

Tātad jautājums ir - kas ir nepareizi, redbot vai Apache?

Šķiet, ka http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html nav norādīts, vai būtu jāiekļauj pēdējais modificētais. (tajā teikts, ka Etagam jābūt - un tas ir atļauts Apache sarakstā)

Vienkārši izmantojiet noderīgo, tas ir testa gadījums: http://redbot.org/?uri=http%3A%2F%2Fwww.geograph.org.uk%2Fhelp%2Fsitemap - manā kodā ir iekļauta galvene Last-Modified - tas ir tikai tas, ka redbot to nekad nesaņem (ne arī kādus pielāgotus X- .. galvenes).

  • Kāpēc būtu Not Modified atbildes nepieciešamība a Last-Modified galvene? Es nevaru iedomāties nevienu lietošanas gadījumu, kad tas būtu nepieciešams. Ja jūs saņemat 304, tad jūs jau esat ieguvis iepriekšējo kopiju un zināt pēdējās modifikācijas datumu, kas kopš tā laika nav mainījies.
  • tas ir diezgan daudz jautājums. Bet Redbots iesaka citādi - to es arī apšaubu. Šķiet, ka domājat, ka kešatmiņas atjauninās "glabātā" objekta galvenes ar 304 - un, tā kā tagad trūkst pēdējās modificētās, tas tiks zaudēts no kešatmiņā saglabātā objekta. - Es domāju, ka ir jāveic daži testi :) - vērts atzīmēt, ka es nekad neesmu novērojis nevienu problēmu ar 304, neskaitot galveni - 304 joprojām tiek izsniegti vienam un tam pašam objektam - tas ir tikai tas, ka redbot ieteikumi citādi.

Jūs esat pareizi. RED ieviesa prasības no HTTPbis http://tools.ietf.org/html/draft-ietf-httpbis-p4-conditional-18#section-4.1.

Parasti HTTPbis prasības ir savietojamas ar RFC2616 (ti, tās tagad neveic ieviešanu, kas bija atbilstoša 2616 neatbilstībai), taču šīs izmaiņas paslīdēja cauri - mēs to atvērsim, lai to novērstu, un tikmēr es mainīšu RED prasības.

  • lieliski, paldies! Diemžēl es neatradu tiešāku veidu, kā ar jums sazināties!

Nē, Last-Modified nav obligāta, kā jūs atsaucāties no RFC 2616. Esmu atradis šo problēmu https://github.com/mnot/redbot/issues/61, kurā viņi veica nepieciešamo galvenju pārbaudi. Tomēr viņi izdevumā norādīja, ka ir nepieciešams tikai "Datums", bet ieviešana bija atšķirīga (es domāju, ka kļūdas dēļ).

  • Ak, paldies par to - man neizdevās atrast redith robotu github projektu - citādi, iespējams, to izliktu tur. Esat izmēģinājis Google grupu, taču tā bija moderēta. GGroups ir zināma problēma, ka grupas īpašnieki paziņo par gaidošajiem ziņojumiem :(

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?