Herzlich willkommen im Archiv vom ABAKUS Online Marketing Forum
Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.
Der Bot erhält nachweislich i.d.R. bei statischen Seiten, welche sich seit dem letzten Crawl nicht änderten, einen 304. Es muß also zwangsweise IMS gesendet worden sein. Der Wert dieses IMS kann aber nur der LM-Header vom letzten Crawl gewesen sein, nicht etwa der Date-Header vom letzten Crawl oder gar das Cache-Datum, denn ersterer kann nie übereinstimmen, und letzteres ist von der Zeiteinstellung der Google-Server abhängig.da bin ich mich nicht sicher, deswegen kann ich dir nicht zustimmen bzw. widersprechen.
Ich würde aber behaupten, daß Google sein Cache überprüft, anstatt des Last-Modified des Servers
GoogleBot vesteht nur 2 sachen:
1. Gibts nen Content
2. Es gibt keinen Content (403, 304, 301, 302, 500, 404 usw)
Wenn es den Content gibt, wird GoogleBot es mit der alten Version vergleichen. (und nicht die Last-Modified Header).
Müßtest Du. Da sich nach meinem Verständnis Deine Dateien eh täglich ändern, kannst Du Dir die Mühe sparen.Das verstehe ich nicht ganz.
Ich könnte natürlich das Datum der "If-modified-since"-Abfrage ermitteln und (falls es denn mit lastmod übereinstimmt) einen 304 senden.
https://www.google.de/webmasters/guidelines.htmllloy hat geschrieben:o.k. das Ganze dient dann aber "nur" dazu, Serverlast zu sparen, seh ich das richtig?
Stellen Sie sicher, dass Ihr Webserver den HTTP-Header "If-Modified-Since" unterstützt. Über diese Funktion kann Ihr Webserver Google mitteilen, ob der Inhalt seit dem letzten Webdurchlauf geändert wurde. Mit dieser Funktion können Sie Bandbreite und Overhead einsparen.
http_protocol.c :edvsb hat geschrieben:Last-Modified kann man angeben, bringt aber ansich nicht viel bis gar nichts.
Code: Alles auswählen
mtime = (r->mtime != 0) ? r->mtime : time(NULL);
Code: Alles auswählen
/* If an If-None-Match request-header field was given
* AND the field value is "*" (meaning match anything)
* OR our ETag matches any of the entity tags in that field, fail.
*
* If the request method was GET or HEAD, failure means the server
* SHOULD respond with a 304 (Not Modified) response.
* For all other request methods, failure means the server MUST
* respond with a status of 412 (Precondition Failed).
*
* GET or HEAD allow weak etag comparison, all other methods require
* strong comparison. We can only use weak if it's not a range request.
*/
if_nonematch = ap_table_get(r->headers_in, "If-None-Match");
if (if_nonematch != NULL) {
if (r->method_number == M_GET) {
if (if_nonematch[0] == '*')
return HTTP_NOT_MODIFIED;
if (etag != NULL) {
if (ap_table_get(r->headers_in, "Range")) {
if (etag[0] != 'W' &&
ap_find_list_item(r->pool, if_nonematch, etag)) {
return HTTP_NOT_MODIFIED;
}
}
else if (strstr(if_nonematch, etag)) {
return HTTP_NOT_MODIFIED;
}
}
}
else if (if_nonematch[0] == '*' ||
(etag != NULL &&
ap_find_list_item(r->pool, if_nonematch, etag))) {
return HTTP_PRECONDITION_FAILED;
}
}
/* Else if a valid If-Modified-Since request-header field was given
* AND it is a GET or HEAD request
* AND the requested resource has not been modified since the time
* specified in this field, then the server MUST
* respond with a status of 304 (Not Modified).
* A date later than the server's current request time is invalid.
*/
else if ((r->method_number == M_GET)
&& ((if_modified_since =
ap_table_get(r->headers_in, "If-Modified-Since")) != NULL)) {
time_t ims = ap_parseHTTPdate(if_modified_since);
if ((ims >= mtime) && (ims <= r->request_time)) {
return HTTP_NOT_MODIFIED;
}
Grußhttps://httpsd.apache.org/dev/apidoc/apidoc_request_rec.html hat geschrieben:time_t mtime
This field contains the last-modified time for the current document. It should be set with the ap_update_mtime() or ap_rationalize_mtime() routines.
time_t request_time
This field is used to record the time the request was received by the server. This value is stored in local time, not GMT.