Frage

Wenn Sie einen User-Agenten in einer Datenbank speichern würden, wie groß würden Sie accomdate für?

Ich fand diesen technet Artikel die UA unter 200 empfiehlt halten. es sieht nicht wie diese in der HTTP-Spezifikation zumindest nicht definiert ist, dass ich gefunden habe. Meine UA ist bereits 149 Zeichen, und es scheint, wie jede Version von .NET wird es hinzufügen.

Ich weiß, dass ich die Zeichenfolge analysieren kann und brechen sie aber lieber nicht.


Bearbeiten
Auf der Grundlage dieses Blog < IE9 / a> wird die Änderung der kurze UA Zeichenfolge zu senden. Dies ist eine gute Veränderung.


War es hilfreich?

Lösung

HTTP-Spezifikation nicht eingeschränkt Länge von Headern überhaupt. Allerdings Web-Server beschränken Header-Größe sie akzeptieren, werfen 413 Entity Too Large wenn es überschreitet.

Je nach Web-Server und die Einstellungen diese Grenzen variieren von 4 KB bis 64 KB (insgesamt für alle Header).

Andere Tipps

Meine Meinung dazu:

  • Verwenden Sie ein gewidmet Tabelle speichern nur Useragents (normalisieren es)
  • In Ihren verknüpften Tabellen, speichern Sie einen Foreign Key Wert auf den Useragenten-zu-Punkt zurück Auto-Increment Primärschlüssel
  • Speichern Sie die aktuellen Useragent-String in einem Textfeld und kümmern sich nicht um die Länge
  • Haben Sie eine andere UNIQUE BINARY(32) (oder 64 oder 128 je nach Hash-Länge) und Hash des Useragent

Einige Strings UA kann obszön lange erhalten. Das sollten Sie die Sorgen ersparen. Auch eine maximale Länge in Ihren Inserter erzwingen zu UA-Strings unter 4 KB zu halten. Es sei denn, jemand Sie in der User-Agent-E-Mail, sollte es nicht über diese Länge gehen.

Da es für Datenbank Zwecke ist, und es gibt keine praktische Grenze i für eine Useragents Tabelle mit UserAgentId als Int gehen würde und UserAgentString als NVarChar (MAX) und einen Fremdschlüssel auf der ursprünglichen Tabelle.

Bemerkt so etwas wie dies in unseren Apache-Logs. Es sieht aus, als abnormal mir, aber ich sehe regelmäßig solche Dinge in Protokollen meist von Windows-Systemen.

  

Mozilla / 4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident / 4.0; (R1   1.6); SLCC1; .NET CLR 2.0.50727; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618;   66760635803; Laufzeit-11,00294; 876906799603; 97880703; 669602703;   9778063903; 877905603; 89670803; 96690803; 8878091903; 7879040603;   999608065603; 799808803; 6666059903; 669602102803; 888809342903;   696901603; 788907703; 887806555703; 97690214703; 66760903; 968909903;   796802422703; 8868026703; 889803611803; 898706903; 977806408603;   976900799903; 9897086903; 88780803; 798802301603; 9966008603;   66760703; 97890452603; 9789064803; 96990759803; 99960107703;   8868087903; 889801155603; 78890703; 8898070603; 89970603; 89970539603;   89970488703; 8789007603; 87890903; 877904603; 9887077703; 798804903;   97890264603; 967901703; 87890703; 97690420803; 79980706603;   9867086703; 996602846703; 87690803; 6989010903; 977809603; 666601903;   876905337803; 89670603; 89970200903; 786903603; 696901911703;   788905703; 896709803; 96890703; 998601903; 88980703; 666604769703;   978806603; 7988020803; 996608803; 788903297903; 98770043603;   899708803; 66960371603; 9669088903; 69990703; 99660519903; 97780603;   888801803; 9867071703; 79780803; 9779087603; 899708603; 66960456803;   898706824603; 78890299903; 99660703; 9768079803; 977901591603;   89670605603; 787903608603; 998607934903; 799808573903; 878909603;   979808146703; 9996088603; 797803154903; 69790603; 99660565603;   7869028603; 896707703; 97980965603; 976907191703; 88680703; 888809803;   69690903; 889805523703; 899707703; 997605035603; 89970029803;   9699094903; 877906803; 899707002703; 786905857603; 69890803;   97980051903; 997603978803; 9897097903; 66960141703; 7968077603;   977804603; 88980603; 989700803; 999607887803; 78690772803;   96990560903; 98970961603; 9996032903; 9699098703; 69890655603;   978903803; 698905066803; 977806903; 9789061703; 967903747703;   976900550903; 88980934703; 8878075803; 8977028703; 97980903;   9769006603; 786900803; 98770682703; 78790903; 878906967903;   87690399603; 99860976703; 796805703; 87990603; 968906803;   967904724603; 999606603; 988705903; 989702842603; 96790603; 99760703;   88980166703; 9799038903; 98670903; 697905248603; 7968043603; 66860703;   66860127903; 9779048903; 89670123903; 78890397703; 97890603; 87890803;   8789030603; 69990603; 88880763703; 9769000603; 96990203903;   978900405903; 7869022803; 699905422903; 97890703; 87990903; 878908703;   7998093903; 898702507603; 97780637603; 966907903; 896702603;   9769004803; 7869007903; 99660158803; 7899099603; 8977055803; 99660603;   7889080903; 66660981603; 997604603; 6969089803; 899701903; 9769072703;   666603903; 99860803; 997608803; 69790903; 88680756703; 979805677903;   9986047703; 89970803; 66660603; 96690903; 8997051603; 789901209803;   8977098903; 968900326803; 87790703; 98770024803; 697901794603;   69990803; 887805925803; 968908903; 97880603; 897709148703;   877909476903; 66760197703; 977908603; 698902703; 988706504803;   977802026603; 88680964703; 8878068703; 987705107903; 978902878703;   8898069803; 9768031703; 79680803; 79980803; 669609328703; 89870238703;   99960593903; 969904218703; 78890603; 9788000703; 69690630903;   889800982903; 988709748803; 7968052803; 99960007803; 969900800803;   668604817603; 66960903; 78790734603; 8868007703; 79780034903;   8878085903; 976907603; 89670830803; 877900903; 969904889703;   7978033903; 8987043903; 99860703; 979805903; 667603803; 976805348603;   999604127603; 97790701603; 78990342903; 98770672903; 87990253903;   9877027703; 97790803; 877901895603; 8789076903; 896708595603;   997601903; 799806903; 97690603; 87790371703; 667605603; 99760303703;   97680283803; 788902750803; 787909803; 79780603; 79880866903;   9986050903; 87890543903; 979800803; 97690179703; 876901603; 699909903;   96990192603; 878904903; 877904734903; 796801446903; 977904803;   9887044803; 797805565603; 98870789703; 7869093903; 87790727703;   797801232803; 666604803; 9778071903; 9799086703; 6969000903; 89670903;   8799075903; 897708903; 88680903; 97980362603; 97980503903;   889803256703; 88980388703; 789909376803; 69690703; 6969025903;   89970309903; 96690703; 877901847803; 968901903; 96690603; 88680607603;   7889001703; 789904761803; 976807703; 976902903; 878907889703;   9897014903; 896707046603; 696909903; 666603998903; 969902703;   79680421803; 9769075603; 798800192703; 97990903; 9689024903;   668604803; 969908671903; 9996094703; 69990642703; 97890895903;   977805619903; 79980859903; 88980443803; 98970649603; 997602703;   888802169903; 699907803; 667602028803; 786903283903; 997607703;   969909803; 798809925903; 9976045603; 97790903; 9789001903; 966903603;   9789069603; 968906603; 6989091803; 896701603; 6979059803; 978803903;   997606362603; 88980803; 98970803; 88880921703; 8997065703; 899700703;   698908703; 797801027903; 7889050903; 87890603; 78690703; 99660069703;   97980309903; 976800603; 666606803; 898707703; 79880019803;   66960250803; 7978049803; 88780602603; 79680903; 88880792703; 96990903;   667608603; 87790730903; 98970903; 9699032903; 8987004803; 88880703;   89770046603; 978800803; 969908903; 9798022603; 696901903; 799803703;   989703703; 668605903; 79780903; 998601371703; 796803339703;   87890922603; 898708903; 9966061903; 66960891903; 96790903; 8779050803;   98870858803; 976909298603; 9887029903; 669608703; 979806903;   878903803; 99960703; 9789086703; 979801803; 66960008703; 979806830803;   99760212703; 786906603; 797807603; 789907297703; 96990703; 786901603;   796807766603; 896702651603; 789902585603; 66660925903; 9986085703;   66960302703; 69890703; 789900703; 89970903; 9679060703; 9789002903;   979908821603; 986708140803; 976809828703; 7988082803; 79680997903;   99960803; 9788081903; 979805703; 787908603; 66960602803; 9887098703;   978803237703; 888806804603; 999604703; 977904703; 966904635703;   97680291703; 977809345603; 8878046703; 988709803; 976900773603;   989703903; 88780198603; 87790603; 986708703; 78890604703; 87790544803;   976809850903; 887806703; 987707527603; 79880803; 9897059603;   897709820603; 97880804803; 66960026703; 9789062803; 9867090803;   669600603; 8967087703; 78890903; 89770903; 97980703; 976802687603;   66860400803; 979901288603; 96990160903; 99860228903; 966900703;   66760603; 9689035703; 9779064703; 7968023603; 87890791903;   98770870603; 9798005803; 6969087903; 9779097903; 6979065703;   699903252603; 79780989703; 87690901803; 978905763903; 977809703;   97790369703; 899703269603; 8878012703; 78790803; 87690395603;   8888042803; 667607689903; 8977041803; 6666085603; 6999080703;   69990797803; 88680721603; 99660519803; 889807603; 87890146703;   699906325903; 89770603; 669608615903; 9779028803; 88880603; 97790703;   79780703; 97680355603; 6696024803; 78790784703; 97880329903;   9699077703; 89870803; 79680227903; 976905852703; 8997098903;   896704796703; 66860598803; 9897036703; 66960703; 9699094703;   9699008703; 97780485903; 999603179903; 89770834803; 96790445603;   79680460903; 9867009603; 89870328703; 799801035803; 989702903;   66960758903; 66860150803; 6686088603; 9877092803; 96990603; 99860603;   987703663603; 98870903; 699903325603; 87790803; 97680703; 8868030703;   9799030803; 89870703; 97680803; 9669054803; 6979097603; 987708046603;   999608603; 878904803; 998607408903; 968903903; 696900703;   977907491703; 6686033803; 669601803; 99960290603; 887809169903;   979803703; 69890903; 699901447903; 8987064903; 799800603; 98770903;   8997068703; 967903603; 66760146803; 978805087903; 697908138603;   799801603; 88780964903; 989708339903; 8967048603; 88880981603;   789909703; 796806603; 977905977603; 989700603; 97780703; 9669062603;   88980714603; 897709545903; 988701916703; 667604694903; 786905664603;   877900803; 886805490903; 89970559903; 99960531803; 7998033903;   98770803; 78890418703; 669600872803; 996605216603; 78690962703;   667604903; 996600903; 999608903; 9699083803; 787901803; 97780707603;   787905312703; 977805803; 8977033703; 97890708703; 989705521903;   978800703; 698905703; 78890376903; 878907703; 999602903; 986705903;   668602719603; 979901803; 997606903; 66760393903; 987703603;   78790338903; 96890803; 97680596803; 666601603; 977902178803;   877902803; 78790038603; 8868075703; 99960060603)

Wie ist das für groß:

  

Mozilla / 4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident / 4.0; YPC   3.2.0; SearchSystem6829992239; SearchSystem9616306563; SearchSystem6017393645; SearchSystem5219240075;   SearchSystem2768350104; SearchSystem6919669052;   SearchSystem1986739074; SearchSystem1555480186;   SearchSystem3376893470; SearchSystem9530642569;   SearchSystem4877790286; SearchSystem8104932799;   SearchSystem2313134663; SearchSystem1545325372;   SearchSystem7742471461; SearchSystem9092363703;   SearchSystem6992236221; SearchSystem3507700306;   SearchSystem1129983453; SearchSystem1077927937;   SearchSystem2297142691; SearchSystem7813572891;   SearchSystem5668754497; SearchSystem6220295595;   SearchSystem4157940963; SearchSystem7656671655;   SearchSystem2865656762; SearchSystem6520604676;   SearchSystem4960161466; .NET CLR 1.1.4322; .NET CLR 2.0.50727; Hotbar   10.2.232.0; SearchSystem9616306563; SearchSystem6017393645; SearchSystem5219240075; SearchSystem2768350104;   SearchSystem6919669052; SearchSystem1986739074;   SearchSystem1555480186; SearchSystem3376893470;   SearchSystem9530642569; SearchSystem4877790286;   SearchSystem8104932799; SearchSystem2313134663;   SearchSystem1545325372; SearchSystem7742471461;   SearchSystem9092363703; SearchSystem6992236221;   SearchSystem3507700306; SearchSystem1129983453;   SearchSystem1077927937; SearchSystem2297142691;   SearchSystem7813572891; SearchSystem5668754497;   SearchSystem6220295595; SearchSystem4157940963;   SearchSystem7656671655; SearchSystem2865656762;   SearchSystem6520604676; SearchSystem4960161466; .NET CLR   3.0.4506.2152; .NET CLR 3.5.30729)

Ich habe heute diesen User-Agenten, unsere Lieferanten Speicherfeld überfüllt:

  

Mozilla / 4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident / 4.0; GTB6;   .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; MDDR;   OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152;   .NET CLR 3.5.30729)

Lächerlich! 229 Zeichen?

So dass Größe nehmen, verdoppeln, verdoppeln sie wieder, und Sie sollen bis Microsofts nächsten Fehler (vielleicht dieses Mal im nächsten Jahr) eingestellt werden.

Zur größer als 1000!

Es gibt keine festgelegte Grenze, nur die Grenze der meist HTTP-Servers. Keeping, dass jedoch im Auge, ich eine Spalte mit einer angemessenen festen Länge implementieren würde (Google verwenden, um eine Liste der bekannten Benutzeragenten zu finden, die größten finden und 50% hinzufügen) und zuschneiden, dass jeder Benutzer-Agenten, der zu lang ist - jede außergewöhnlich langer User-Agent ist wohl einzigartig genug, auch wenn abgeschnitten, oder ist das Ergebnis einer Art von Fehler oder „hack“ Versuch.

Angenommen, der User-Agent-String keine Begrenzung auf seiner Länge und bereiten einen solchen Wert zu speichern. Wie Sie gesehen haben, die Länge ist nicht vorhersehbar.

In Postgres, gibt es eine text Art, die Strings akzeptiert von unbegrenzter Länge. Verwenden Sie das.

obwohl Höchstwahrscheinlich werden Sie irgendwann Kürzen anfangen. Nennen Sie es gut zu einem einigermaßen nützlich Schritt (200, 1k, 4k) und den Rest wegzuwerfen.

Ich gebe Ihnen die Standard-Antwort:

Nehmen Sie den größtmöglichen Wert man sich vorstellen kann es sein, verdoppeln, und das ist die Antwort.

Hier ist eine, die 257

ist
  

Mozilla / 4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident / 4.0; GTB6;   .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30;   InfoPath.2; .NET CLR 3.0.04506.648; OfficeLiveConnector.1.3;   OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

Nicht ein Hinweis darauf, wie groß ein User-Agent bekommen, wie viele Antworten gibt es zeigen die Ränder Fälle haben sie kamen über, aber die längste, die auf http://www.useragentstring.com/pages/useragentstring.php?name=All betrug 250 Bytes.

  

Mozilla / 4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729, Media Center PC 6.0; Media Center PC 5.0; SLCC1; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; .NET4.0C;. Lunascape 6.3

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top