Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Header "Last Modified"

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
fornex
PostRank 4
PostRank 4
Beiträge: 154
Registriert: 01.03.2006, 01:14
Wohnort: :tronhoW

Beitrag von fornex » 12.04.2006, 11:51

@lloy, 304 ist die Antwort, die dein Server an den Browser/Bot sendet, und es ergibt sich nicht von selbst. Du kannst natürlich "If Modified Since" selber ermitteln (wie du es beschrieben hast), nur wird diese Ermittlung mehr Serverresourcen kosten als das Neuladen der Seite (ohne der Berücksichtigung der DB Abfragen)
Suche Linkpartner für Bereiche:
Flirt - Fun - Erotik - 1 Click Hoster

ICQ: 7o7727

Googlebot versteht Javascript

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

bull
PostRank 9
PostRank 9
Beiträge: 2166
Registriert: 20.09.2003, 20:57
Wohnort: Vèneto

Beitrag von bull » 12.04.2006, 12:00

@fornex
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).
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.

@lloy
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.
Müßtest Du. Da sich nach meinem Verständnis Deine Dateien eh täglich ändern, kannst Du Dir die Mühe sparen.

Gruß
bull

lloy
PostRank 7
PostRank 7
Beiträge: 638
Registriert: 23.08.2005, 17:19

Beitrag von lloy » 12.04.2006, 12:06

o.k. das Ganze dient dann aber "nur" dazu, Serverlast zu sparen, seh ich das richtig?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


fornex
PostRank 4
PostRank 4
Beiträge: 154
Registriert: 01.03.2006, 01:14
Wohnort: :tronhoW

Beitrag von fornex » 12.04.2006, 12:11

EDIT: ok, habs verstanden :)
Suche Linkpartner für Bereiche:
Flirt - Fun - Erotik - 1 Click Hoster

ICQ: 7o7727

Googlebot versteht Javascript

fornex
PostRank 4
PostRank 4
Beiträge: 154
Registriert: 01.03.2006, 01:14
Wohnort: :tronhoW

Beitrag von fornex » 12.04.2006, 12:15

lloy hat geschrieben:o.k. das Ganze dient dann aber "nur" dazu, Serverlast zu sparen, seh ich das richtig?
https://www.google.de/webmasters/guidelines.html
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.
Suche Linkpartner für Bereiche:
Flirt - Fun - Erotik - 1 Click Hoster

ICQ: 7o7727

Googlebot versteht Javascript

lloy
PostRank 7
PostRank 7
Beiträge: 638
Registriert: 23.08.2005, 17:19

Beitrag von lloy » 12.04.2006, 12:20

o.k. jetzt hab ichs glaube ich auch :)

Das es auch etwas mit der Häufigkeit der Bot-Besuche zu tun hat ist dann wohl Glaubenssache. Schade :wink:

robo
PostRank 8
PostRank 8
Beiträge: 837
Registriert: 23.12.2003, 19:41
Wohnort: Schwangau

Beitrag von robo » 12.04.2006, 12:31

Zu dem Thema gabs auch mal 'nen Artikel im 1&1-Newsletter: https://www.1und1.info/xml/order/NL0506#05

cu, Robo :)

Southmedia
PostRank 10
PostRank 10
Beiträge: 7322
Registriert: 20.07.2003, 19:56

Beitrag von Southmedia » 12.04.2006, 13:13

Ich muss hier leider widersprechen. Wenn man ein Änderungsdatum einer
Webseite ermitteln kann, ist es nur sinnvoll dieses den Besuchern und
Bots mitzuteilen. Egal, ob die Bots das nun unterstützen, es
Rankingvorteile bringt oder Traffic spart - es ist Sinn und Zweck dieser
Funktion dass sie genutzt werden.

Bei php-basierenden Webseiten wird oft verzichtet weil zusätzliche
Datenbankabfragen oder Dateiaufrufe die Rechenzeit unangemessen
erhöhen - lässt sich dies jedoch umgehen, spricht absolut nichts gegen
die Nutzung der Header.

Dass in den Webmasterguidelines weichgespülter Mist steht, dürfte
eigentlich doch schon lange klar sein. Und zum Herrn Matt Cutts muss
man eigentlich gar nichts sagen.

Last-Modified und IMS sind Bestandteile des HTTP-Protokolls, die dafür da
sind, eingesetzt zu werden. Also tut es auch, wenn es ohne negativen
Mehraufwand machbar ist.

Nun noch einige Punkte, wieso das auch sinnvoll ist:
  • Servertraffic wird gespart (weniger Seiten senden)
  • Serverlast wird abgesenkt (weniger Seiten ausliefern)
  • Bot-/Besucher-Traffic wird gespart (weniger Seiten abrufen)
  • Bot-/Besucher-Last wird abgesenkt (lokaler Cache)
  • Änderungsintervalle der Webseite lassen sich besser bestimmen,
    dementsprechend können Crawlingprofile und Besuchsintervalle der Bots
    automatisiert angepasst werden
PS: Ja, ich hab schlecht geschlafen :(

Windy
PostRank 4
PostRank 4
Beiträge: 129
Registriert: 26.12.2005, 13:07

Beitrag von Windy » 14.04.2006, 09:07

Vielleicht irre ich mich, aber imho sendet Google bei if-modified-since die Zeit des letzten Crawls.
Hab das per PHP gemacht, als ich immer genau das Datum der letzten Änderung haben wollte bekam Googlebot laut Logs wochenlang bei denselben Files nie 304, obwohl die sich nicht geändert haben. Ich hab es dann mal versuchsweise so umprogrammiert das if-modified-since entweder übereinstimmen muss, oder nach der tatsächlichen letzten Änderung liegt. Seitdem bekommt Googlebot auch 304er.

Edit: Nachtrag als Antwort auf meinen Vorposter:
Als Datum für if-modified-since wird der Header last-modified gesendet, dessen Inhalt von allen Browsern für if-modified-since genutzt wird.
Parallel dazu gibt es die eTags.

bull
PostRank 9
PostRank 9
Beiträge: 2166
Registriert: 20.09.2003, 20:57
Wohnort: Vèneto

Beitrag von bull » 14.04.2006, 09:42

edvsb hat geschrieben:Last-Modified kann man angeben, bringt aber ansich nicht viel bis gar nichts.
http_protocol.c :

Zeile 536:

Code: Alles auswählen

mtime = (r->mtime != 0) ? r->mtime : time(NULL);
Zeile 601ff :

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 &#40;&#40;ims >= mtime&#41; && &#40;ims <= r->request_time&#41;&#41; &#123;
            return HTTP_NOT_MODIFIED;
        &#125;
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.
Gruß
bull

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag