Maison développement back-end tutoriel php Comment implémenter une URL courte en PHP

Comment implémenter une URL courte en PHP

Jun 06, 2019 am 11:08 AM
URL courte

Comment implémenter une URL courte en PHP

1. Introduction au contexte

Je crois que beaucoup les gens ont des téléphones portables Nous avons tous reçu des SMS marketing. Les SMS sont parfois accompagnés d'URL, comme indiqué ci-dessous

Ces URL sont souvent très courtes, mais lorsque nous les ouvrons, si vous regardez bien, elles s'affichent. sera un saut au milieu, l'URL affichée dans la barre d'adresse du navigateur n'est pas l'URL que vous voyez dans le message texte, c'est l'URL courte !

Comment implémenter une URL courte en PHP

2.Principe et application

Les URL courtes utilisent généralement un nom de domaine très court, des paramètres de chemin. ne comportent généralement que 3 à 6 caractères, ce qui est très concis !

Le principe de l'utilisation d'une URL courte est de générer d'abord une URL courte, qui utilise principalement un certain algorithme pour faire correspondre un caractère court à un caractère long, par exemple, à partir des 0-9, a-z couramment utilisés. , A-Z, un total de 62 caractères Sélectionnez 6 caractères dans , cela signifie qu'il y a 62 combinaisons de puissance 6 et qu'il y a environ 56,8 milliards d'URL courtes uniques disponibles !

Le serveur interroge la véritable URL longue via le paramètre path, puis utilise 301/302 pour accéder à la vraie URL !

Concernant la redirection, 301 est une redirection permanente et 302 est une redirection temporaire. L'adresse courte ne changera pas une fois générée, donc l'utilisation de 301 est cohérente avec la sémantique http. Le navigateur enregistrera l'adresse de saut et, en même temps, la pression sur le serveur sera réduite dans une certaine mesure. Mais si 301 est utilisé, nous ne pourrons pas compter le nombre de fois où l'adresse courte est cliquée. S'il y a des exigences en matière de statistiques de données, il est peut-être préférable d'utiliser le saut 302 !

Le principal avantage des URL courtes est qu'elles sont pratiques à transférer et à mémoriser, en particulier lorsqu'elles sont utilisées dans des messages texte. Les SMS ont une limite sur le nombre de mots dans le contenu. Par exemple, des URL courtes sont également utilisées. à partager sur Weibo !

3. Cas existants sur le marché

Il existe de nombreux services de liaison courte gratuits sur le marché, et leurs fonctions sont fondamentalement les mêmes. limite!

(1) Lien court de Baidu (dwz.cn/), Baidu fournit non seulement l'accès aux pages Web, mais fournit également des interfaces et des documents de développement, simples et faciles à utiliser !

(2) Le lien court de Sina (sina.lt/) ne fournit actuellement que l'accès à une page Web, et aucun service d'interface n'a été trouvé !

(3) Le lien court de Taobao (tb.am/) ne fournit actuellement qu'une entrée Web, et aucun service d'interface n'a été trouvé !

Il existe de nombreuses autres petites entreprises sur le marché qui proposent des services de liens courts, certains sont partiellement gratuits, et certains liens courts sont valides, je ne les présenterai donc pas un par un ici !

4. Algorithmes couramment utilisés

Les algorithmes les plus populaires sur Internet incluent l'algorithme hexadécimal, l'algorithme de hachage et l'algorithme de nombres aléatoires. . Ce qui suit est simple Laissez-moi vous présenter :

Un. Algorithme de base

Cet algorithme est également appelé algorithme de séquence auto-croissante sur le. Internet. Sa particularité est qu'il ne se répète jamais. Paramètre L'identifiant est incrémenté automatiquement. Un identifiant décimal correspond à une valeur de 62 chiffres, 1 à 1, il n'y aura donc pas de duplication. sera réduit lorsque la base basse sera convertie en base haute.

Les systèmes de base courants dans les ordinateurs incluent le binaire, l'octal, le décimal et l'hexadécimal. Plus la base est grande, plus le nombre pouvant être représenté est grand et moins il prend de mots. Voici un exemple :

1000 en décimal équivaut à 1750 en octal, et 3E8 en hexadécimal. Et en hexadécimal ? Certains disent qu’il n’y a pas de base 62 dans l’ordinateur. . . Bien qu'il n'y en ait pas, nous pouvons en créer un. L'algorithme de conversion de base est fixe. Le plus courant est la « méthode de division par base » !

Nous supposons que la séquence de caractères à 62 chiffres est 0-9a-zA-Z. L'ordre peut être perturbé, mais il doit être corrigé. Il s'agit d'un tableau commençant de 0 à 61. Appelons-le For. l'alphabet !

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

====> 16/62 = 0, reste 16

Le nombre obtenu par le reste C'est 16 et 8, puis trouvez les caractères marqués 16 et 8 dans l'alphabet et assemblez-les, c'est g8, qui est très court, seulement 2 chiffres ! Si nous voulons générer au moins 6 chiffres de caractères, alors nous pouvons commencer avec un nombre relativement grand. Pour plus de détails, voir la figure ci-dessous :

1 chiffre 62 0 - 61 2 chiffres 3844 62 - 3843 3 chiffres. environ 230 000 3844 - 238327 4 chiffres environ 14 millions 238328 - 14776335 5 chiffres environ 910 millions 14776336 - 916132831 6 chiffres environ 56,8 milliards 916132832 - 56800235583 Copier le code

2. Algorithme de hachage

La première façon :

Ajoutez simplement du salt md5 au lien long, ce qui générera une chaîne de 32 bits, en choisira au hasard 6 caractères, ou simplement grossièrement prenez les 6 derniers chiffres, mais md5 ne contient que 0-9A-Fa-f, ce qui représente moins de caractères que l'alphabet, et le risque de conflit est plus grand !

La deuxième méthode :

1. Générez une chaîne de signature de 32 bits à partir du md5 de l'URL longue, divisée en 4 segments, chaque segment fait 8 octets

2. Pour ces quatre sections de traitement de boucle, prenez 8 octets, traitez-les comme des chaînes hexadécimales et opérez avec 0x3fffffff (30 bits 1), c'est-à-dire ignorez le traitement de plus de 30 bits

3 . Ces 30 chiffres sont divisés en 6 segments, et chaque nombre à 5 chiffres est utilisé comme index de l'alphabet pour obtenir un caractère spécifique, et la chaîne de 6 chiffres est obtenue en séquence

Le total md5. La chaîne peut obtenir 4 chaînes à 6 chiffres, prenez N'importe laquelle d'entre elles peut être utilisée comme adresse URL courte de cette URL longue

La méthode de génération est plus compliquée et la probabilité de duplication est faible, mais les conflits persisteront se produire!

3. Algorithme de nombres aléatoires

C'est plus simple, sélectionnez simplement le tableau de 62 caractères et sélectionnez-en 6. Créer un lien court. les codes sont simples et faciles à utiliser, mais des conflits en double se produiront inévitablement !

4. Comparaison d'algorithmes

Le premier algorithme peut éviter les conflits tant qu'il résout le problème de l'identification auto-croissante. l'augmentation de l'identifiant peut utiliser la base de données pour augmenter automatiquement l'identifiant. L'augmentation de la clé primaire ne nécessite qu'une seule opération de base de données à chaque fois qu'un code court est généré (insérer l'opération, obtenir l'identifiant de la clé primaire, puis calculer le code court)

Les deuxième et troisième algorithmes sont en fait similaires et tous deux reposent sur Le programme est aléatoire et sujet aux conflits, ce qui nécessite un jugement approfondi à chaque fois qu'il est inséré dans la base de données, ce qui est moins efficace !

5. Sécurité

Bien que les liens courts facilitent la transmission et la mémoire, en raison du petit nombre de caractères dans le lien, ils sont plus susceptibles pour être explosé, devinant l'attaque, l'attaquant peut facilement parcourir les liens composés de tous les personnages !

Par conséquent, il n'est pas recommandé d'utiliser des liens courts pour envoyer des URL privées, telles que des liens de réinitialisation de mot de passe. Une authentification secondaire est requise pour les liens avec certaines autorisations et informations sensibles !

Tutoriel recommandé : Tutoriel vidéo du générateur de liens courts sur le développement pratique de Laravel

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Travailler avec les données de session Flash dans Laravel Travailler avec les données de session Flash dans Laravel Mar 12, 2025 pm 05:08 PM

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Mar 14, 2025 am 11:42 AM

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

Misque de réponse HTTP simplifié dans les tests Laravel Misque de réponse HTTP simplifié dans les tests Laravel Mar 12, 2025 pm 05:09 PM

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

12 meilleurs scripts de chat PHP sur Codecanyon 12 meilleurs scripts de chat PHP sur Codecanyon Mar 13, 2025 pm 12:08 PM

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

Expliquez le concept de liaison statique tardive en PHP. Expliquez le concept de liaison statique tardive en PHP. Mar 21, 2025 pm 01:33 PM

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

Frameworks de personnalisation / d'extension: comment ajouter des fonctionnalités personnalisées. Frameworks de personnalisation / d'extension: comment ajouter des fonctionnalités personnalisées. Mar 28, 2025 pm 05:12 PM

L'article examine l'ajout de fonctionnalités personnalisées aux cadres, en se concentrant sur la compréhension de l'architecture, l'identification des points d'extension et les meilleures pratiques pour l'intégration et le débogage.

Caractéristiques de sécurité du cadre: protection contre les vulnérabilités. Caractéristiques de sécurité du cadre: protection contre les vulnérabilités. Mar 28, 2025 pm 05:11 PM

L'article traite des fonctionnalités de sécurité essentielles dans les cadres pour se protéger contre les vulnérabilités, notamment la validation des entrées, l'authentification et les mises à jour régulières.

See all articles