Heim > Backend-Entwicklung > PHP-Tutorial > So implementieren Sie eine kurze URL in PHP

So implementieren Sie eine kurze URL in PHP

步履不停
Freigeben: 2023-04-06 20:22:02
Original
6997 Leute haben es durchsucht

So implementieren Sie eine kurze URL in PHP

1. Hintergrundeinführung

Ich glaube, dass viele Menschen haben Mobiltelefone Wir haben alle einige Marketing-SMS erhalten, wie unten gezeigt.

Diese URLs sind oft sehr kurz, aber wenn wir sie öffnen, sehen wir sie, wenn wir genau hinsehen wird ein Sprung in die Mitte sein, die in der Adressleiste des Browsers angezeigte URL ist nicht die URL, die Sie in der Textnachricht sehen, dies ist die Kurz-URL!

So implementieren Sie eine kurze URL in PHP

2. Prinzip und Anwendung

Kurz-URL verwendet im Allgemeinen einen sehr kurzen Domänennamen und Pfadparameter bestehen in der Regel nur aus 3-6 Zeichen, was sehr prägnant ist!

Die Voraussetzung für die Verwendung einer kurzen URL besteht darin, zunächst eine kurze URL zu generieren, die hauptsächlich einen bestimmten Algorithmus verwendet, um ein kurzes Zeichen einem langen Zeichen zu entsprechen, beispielsweise aus den häufig verwendeten 0-9, a-z , A-Z, insgesamt 62 Zeichen Wählen Sie 6 Zeichen aus, das bedeutet, dass es 62 Kombinationen hoch 6 gibt und etwa 56,8 Milliarden einzigartige Kurz-URLs verfügbar sind!

Der Server fragt die echte lange URL über den Pfadparameter ab und verwendet dann 301/302, um zur echten URL zu springen!

In Bezug auf die Weiterleitung ist 301 eine permanente Weiterleitung und 302 eine temporäre Weiterleitung. Die Kurzadresse ändert sich nach der Generierung nicht, daher entspricht die Verwendung von 301 der HTTP-Semantik. Der Browser zeichnet die Sprungadresse auf und gleichzeitig wird der Druck auf den Server bis zu einem gewissen Grad verringert. Wenn jedoch 301 verwendet wird, können wir nicht zählen, wie oft auf die Kurzadresse geklickt wird. Wenn Anforderungen an die Datenstatistik bestehen, ist es möglicherweise besser, 302-Sprung zu verwenden!

Der Hauptvorteil von Kurz-URLs besteht darin, dass sie bequem zu übertragen und zu merken sind, insbesondere wenn die Anzahl der Wörter im Text von SMS begrenzt ist für das Teilen auf Weibo!

3. Bestehende Fälle auf dem Markt

Es gibt viele kostenlose Kurzlink-Dienste auf dem Markt, und ihre Funktionen sind im Wesentlichen gleich. Limit!

(1) Baidus Kurzlink (dwz.cn/). Baidu bietet nicht nur den Zugang zu Webseiten, sondern auch Schnittstellen und Entwicklungsdokumente, was einfach und benutzerfreundlich ist!

(2) Sinas Kurzlink (sina.lt/) ermöglicht derzeit nur den Zugriff auf Webseiten und es wurde kein Schnittstellendienst gefunden!

(3) Der Kurzlink von Taobao (tb.am/) bietet derzeit nur einen Webzugang und es wurde kein Schnittstellendienst gefunden!

Es gibt viele andere kleine Unternehmen auf dem Markt, die Kurzlink-Dienste anbieten, einige sind teilweise kostenlos und einige Kurzlinks sind gültig, daher werde ich sie hier nicht einzeln vorstellen!

4. Häufig verwendete Algorithmen

Zu den beliebtesten Algorithmen im Internet gehören der Hexadezimalalgorithmus, der Digest-Algorithmus (Hash) und der Zufallszahlenalgorithmus . Das Folgende ist einfach. Lassen Sie mich vorstellen:

1. Basisalgorithmus

Dieser Algorithmus wird auch als automatisch zunehmender Sequenzalgorithmus bezeichnet Die Besonderheit des Internets besteht darin, dass die ID niemals wiederholt wird. Eine dezimale ID entspricht einem 62-stelligen Wert, sodass keine Duplizierung erfolgt wird reduziert, wenn die niedrige Basis in eine hohe Basis umgewandelt wird.

Zu den gängigen Basissystemen in Computern gehören Binär-, Oktal-, Dezimal- und Hexadezimalzahlen. Je größer die Basis, desto größer die darstellbare Zahl und desto weniger Wörter nimmt sie ein. Hier ist ein Beispiel:

1000 in Dezimalzahl ist 1750 in Oktalzahl und 3E8 in Hexadezimalzahl. Was ist mit Hexadezimalzahl? Manche Leute sagen, dass es im Computer keine Basis 62 gibt. . . Obwohl es keinen gibt, können wir einen festlegen. Der Basiskonvertierungsalgorithmus ist die „Division nach Basis“-Methode.

Wir gehen davon aus, dass die 62-stellige Zeichenfolge 0-9a-zA-Z ist. Die Reihenfolge kann unterbrochen werden, sie sollte jedoch festgelegt werden. Es handelt sich um ein Array, das von 0 bis 61 beginnt. Nennen wir es For das Alphabet!

====> 1000/62 = 16, Rest 8

====> 16/62 = 0, Rest 16

Die Zahl, die von erhalten wurde der Rest ist 16 und 8, und dann finden Sie die mit 16 und 8 markierten Zeichen im Alphabet und fügen sie zusammen, es ist g8, was sehr kurz ist, nur 2 Ziffern! Wenn wir mindestens 6 Ziffern an Zeichen generieren möchten, können wir mit einer relativ großen Zahl beginnen. Einzelheiten finden Sie in der folgenden Abbildung:

1 Ziffer 62 0 - 61 2 Ziffern 3844 62 - 3843 3 Ziffern ca. 230.000 3844 - 238327 4 Ziffern ca. 14 Millionen 238328 - 14776335 5 Ziffern ca. 910 Millionen 14776336 - 916132831 6 Ziffern ca. 56,8 Milliarden 916132832 - 56800235583 Code kopieren 🎜>

2 AlgorithmusDer erste Weg:

Fügen Sie einfach salt md5 zum langen Link hinzu, wodurch eine 32-Bit-Zeichenfolge generiert wird, wählen Sie zufällig 6 Zeichen daraus aus oder einfach Nehmen Sie grob die letzten 6 Ziffern, aber MD5 enthält nur 0-9A-Fa-f, also weniger Zeichen als das Alphabet, und die Wahrscheinlichkeit eines Konflikts ist größer!

Die zweite Methode:

1. Generieren Sie eine 32-Bit-Signaturzeichenfolge aus MD5 der langen URL, unterteilt in 4 Segmente, jedes Segment ist 8 Bytes

2. Nehmen Sie für diese vier Abschnitte der Schleifenverarbeitung 8 Bytes, behandeln Sie sie als Hexadezimalzeichenfolgen und arbeiten Sie mit 0x3fffffff (30 Bits 1), dh ignorieren Sie die Verarbeitung von mehr als 30 Bits

3 . Diese 30 Ziffern werden in 6 Segmente unterteilt, und jede 5-stellige Zahl wird als Index des Alphabets verwendet, um ein bestimmtes Zeichen zu erhalten, und die 6-stellige Zeichenfolge wird in der Reihenfolge

4 erhalten. Der Gesamtwert von md5 string kann 4 6-stellige Zeichenfolgen erhalten. Jede davon kann als kurze URL-Adresse dieser langen URL verwendet werden

Die Generierungsmethode ist komplizierter und die Wahrscheinlichkeit einer Duplizierung ist gering, es treten jedoch weiterhin Konflikte auf geschehen!

3. Zufallszahlenalgorithmus

Wählen Sie einfach das 62-stellige Array aus und erstellen Sie einen kurzen Link codes ist einfach und leicht zu verwenden, aber es kommt zwangsläufig zu doppelten Konflikten!

4. Algorithmusvergleich

Der erste Algorithmus kann Konflikte vermeiden, solange er das Problem der Selbsterhöhung löst. Durch Erhöhen der ID kann die Datenbank automatisch erhöht werden, um den Primärschlüssel jedes Mal zu erhöhen, wenn ein Funktionscode generiert wird (Vorgang einfügen, Primärschlüssel-ID abrufen und dann den Funktionscode berechnen). >Der zweite und der dritte Algorithmus sind tatsächlich ähnlich und beide basieren auf Das Programm ist zufällig und anfällig für Konflikte, was jedes Mal, wenn es in die Datenbank eingefügt wird, ein schweres Urteilsvermögen erfordert, was weniger effizient ist!

5. SicherheitObwohl kurze Links die Übertragung und Speicherung erleichtern, sind sie aufgrund der geringen Anzahl von Zeichen im Link wahrscheinlicher Um explodiert zu werden und einen Angriff zu erraten, kann der Angreifer problemlos die aus allen Charakteren bestehenden Links durchqueren!

Daher wird nicht empfohlen, kurze Links zum Senden privater URLs zu verwenden, z. B. Links zum Zurücksetzen des Passworts. Für Links mit einigen Berechtigungen und vertraulichen Informationen ist eine sekundäre Authentifizierung erforderlich!

Empfohlenes Tutorial:

Video-Tutorial zum Laravel-Kurzlinkgenerator für die praktische Entwicklung

Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine kurze URL in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage