Nachdem Sie einige der Treffer in einer schnellen Google-Suche gelesen haben, scheint es so, als gäbe es keine eine Menge Konsistenz, wenn es darum geht, durchschnittliche URL-Länge zu bestimmen.
Ich weiß, IE hat eine maximale URL-Länge von 2083 Zeichen (aus hier ) - also Ich habe ein gutes Maximum um damit zu arbeiten.
Mein Anliegen ist, dass ich einen URL-Shortener in PHP schreibe ( ähnlich ) andere Fragen zu SO), und möchte sicherstellen, dass ich wahrscheinlich nicht die Speicherkapazität der Server hostet es.
Wenn alle URLs das IE-Maximum sind, passt 2^32
nicht überall gut - es würde 2K x 4B ~= 8TB
des Speichers beanspruchen: eine unrealistische Erwartung.
Was ist die sicherste Methode, um die Speicherauslastung der App zu berechnen, ohne eine Trimmfunktion hinzuzufügen (dh "alte" verkürzte URLs zu löschen)?
Ist ~ 34 Charaktere sicher zu erraten? Wenn dies der Fall ist, würde eine vollständig bestückte Datenbank (unter Verwendung einer int
Art für einen Primärschlüssel) 292 GB Speicherplatz (doppelt 146 GB für alle Metadaten, die gespeichert werden könnten) kauen.
Was ist die beste Schätzung für eine Anwendung wie diese?
Nun, Sie müssen die durchschnittliche URL-Länge nicht kennen. Es ist eine Vermutung, aber ich würde sagen, dass ein URL-Kürzler hauptsächlich verwendet wird, um lange URLs zu verkürzen. Warum sollte man kurz einen kürzeren kürzen? :)
Das heißt, es gibt ein anderes Problem. Eine Datenbank wird auch einige Overhead haben, so dass Sie nicht nur eine Durchschnitt berechnen können und sagte, dass das die durchschnittliche Bytegröße ist.
Ich habe selbst einen URL-Shortener geschrieben und er enthält bereits 45 Artikel. Also schlage ich vor, dass Sie Ihre schreiben, und wenn es tatsächlich 2 ^ 32 URLs enthält, wird das Kaufen einer 8 TB Festplatte wahrscheinlich kein Problem mehr darstellen. ; -)
Dies ist wahrscheinlich unerkennbar, ohne das gesamte Internet zu indizieren, aber laut einer Analyse von Kelvin Tan auf ein Datensatz von 6.627.999 eindeutigen URLs aus 78.764 eindeutigen Domains , lautet die Antwort 76.97 :
Mittelwert: 76.97
Standardabweichung: 37.41
95.% Konfidenzintervall: 157
99,5th% Konfidenzintervall: 218
Ich bin nicht sicher, was typisch ist, aber von 11.000 URLs in unserer Anfrage-Datenbank, die durchschnittliche Länge beträgt 62 Zeichen. Wir können eine Ausnahme sein, weil wir jeden Monat Hunderte von Anfragen von unserem Kunden für Artikel aus Japan erhalten. Unsere Datenbank enthält Hunderte von URLs mit mehreren hundert Zeichen. Am längsten ist ein Google Translate Link mit 1689 Zeichen.
top 10 len (producturl): 1689 792 707 693 647 606 574 569 562 560
Beispiel-URL 647 Zeichen:
zu Schätzzwecken sollten Sie aus einem Datensatz nach Anwendung der Standardabweichung extrapolieren, um die Ausreißer zu entfernen, die Ihren Mittelwert verzerren könnten.
Von RFC 2068 Abschnitt 3.2.1:
Das HTTP-Protokoll legt keine a priori Grenze für die Länge von ein URI Server MÜSSEN in der Lage sein, den URI einer beliebigen Ressource zu handhaben dienen und SIND in der Lage, URIs unbeschränkter Länge zu behandeln, wenn sie Bereitstellen von GET-basierten Formularen, die solche URIs generieren könnten. Ein Server SOLLTE den Status 414 (Request-URI Too Long) zurückgeben, wenn ein URI länger ist als der Server verarbeiten kann (siehe Abschnitt 10.4.15).
Hinweis: Server sollten vorsichtig sein, abhängig von den URI-Längen über 255 Byte, weil einige ältere Client- oder Proxy-Implementierungen kann diese Längen nicht richtig unterstützen.
Obwohl IE (und wahrscheinlich die meisten anderen Browser) viel längere URI-Längen unterstützt, glaube ich nicht, dass die meisten Formulare oder clientseitigen Apps auf etwas oberhalb von 255 Bytes angewiesen sind. Ihre Serverprotokolle sollten einige Statistiken über die Art von URLs enthalten, die Sie sehen.