Generare slug URL breve
Indichi un URL lungo e un seed e ottenga un codice breve che non cambia mai: la pagina dell'esempio con il seed tenant-acme-v1 dà sempre rTEr1Ff, sette caratteri base62 per impostazione predefinita. Nulla viene scaricato o salvato, né si crea un link attivo. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Indirizzo web
- https://example.com/docs/guide
- Seme
- tenant-acme-v1
- Lunghezza
- 7
- Slug
- rTEr1Ff
- Alfabeto
- base62
- Percorso breve
- /rTEr1Ff
Gli accorciatori di URL necessitano di codici di percorso brevi e opachi che rimandino a una destinazione lunga senza rivelare la struttura del link. I team che costruiscono un proprio accorciatore—o allocano codici vanity offline prima della scrittura—hanno bisogno di una funzione deterministica: la stessa URL di destinazione e lo stesso seed del tenant devono produrre sempre lo stesso slug della lunghezza scelta, così che i tentativi ripetuti e gli writer multi-regione non inventino stringhe casuali in collisione per lo stesso legame logico. Questa capacità accetta un’URL di destinazione, un seed (spazio dei nomi, segreto o chiave tenant) e una lunghezza opzionale (predefinita sette, minimo quattro), quindi espande una miscela pura in stile FNV di URL più seed in cifre base62 tratte da 0-9, A-Z e a-z.
Come viene costruito lo slug base62 dell’accorciatore con seed
Uno slug di accorciatore non è uno slug di titolo leggibile da umani. È un token opaco in un alfabeto compatto che sta nei codici QR, negli SMS e nelle confezioni stampate e offre ancora spazio combinatorio sufficiente per milioni di link. Questo strumento usa l’alfabeto classico base62 di dieci cifre, ventisei lettere maiuscole e ventisei minuscole—sessantadue simboli che viaggiano in sicurezza nei segmenti di percorso senza percent-encoding.
Il generatore concatena l’URL di destinazione, un separatore NUL e il seed, quindi esegue round FNV-1a a 32 bit salati dal contatore che espandono cinque cifre base62 per round fino a riempire la lunghezza richiesta. Poiché la miscela è aritmetica pura sui codici carattere, gli stessi input producono sempre lo stesso slug su Node e nel browser.
Il seed rende sicuri i sistemi multi-tenant: due tenant che accorciano la stessa URL di marketing con seed diversi ottengono codici diversi, così gli spazi di nomi pubblici condivisi non rivelano che due organizzazioni puntavano alla stessa destinazione. La lunghezza predefinita è sette caratteri (circa 3.5e12 possibilità) e può andare da quattro a trentadue; quattro è il pavimento rigido perché gli spazi a tre caratteri sono troppo piccoli per accorciatori aperti su Internet e invitano all’enumerazione a forza bruta del Suo spazio di percorsi.
Dove un generatore di slug URL breve con seed crea valore
I backend di accorciatore self-hosted usano questa capacità per precalcolare codici nei worker prima di un insert transazionale, mantenendo la logica di allocazione identica in ogni regione senza condividere una sequenza casuale centrale. I team di operations di marketing generano codici campagna stabili offline da un’URL di landing nota e un seed di campagna, così revisione creativa, arte QR e il cutover di produzione condividono una sola stringa.
I prodotti SaaS multi-tenant passano l’id del tenant come seed affinché il cliente A e il cliente B non ricevano mai lo stesso percorso pubblico per destinazioni identiche, il che semplifica la revisione degli abusi e le storie di residenza dei dati. Preferisca lunghezze maggiori quando lo spazio dei nomi è pubblico e di lunga durata; usi il minimo quattro solo per sistemi chiusi con gestione aggressiva delle collisioni.
Casi d'uso
Allocazione in accorciatore self-hosted
Precalcoli un codice di percorso base62 deterministico dall’URL lunga e da un seed di servizio prima di scrivere la riga di redirect nel Suo database.
Codici campagna multi-tenant
Mescoli un seed di tenant o di campagna con la stessa URL di landing così ogni cliente ottiene uno slug pubblico distinto senza casualità centrale.
Domande frequenti
Perché length inferiore a 4 viene rifiutato?
Codici più corti di quattro caratteri base62 sono troppo piccoli per spazi di nomi pubblici di accorciatore e facili da enumerare.
Questo crea un link breve live?
No. Calcola solo una stringa di slug deterministica. Lei memorizza la mappatura e serve i redirect sul proprio dominio o servizio di accorciamento.
Quale alfabeto usa lo slug?
Base62 standard: cifre 0-9, maiuscole A-Z e minuscole a-z. La risposta imposta alphabet a base62 e length al conteggio di caratteri risolto.
Due URL diversi possono ricevere lo stesso codice?
Sì, soprattutto con lunghezze brevi. Gli stessi dati danno sempre lo stesso codice, ma indirizzi diversi possono coincidere, quindi verifichi l'unicità al salvataggio e scelga più caratteri per link pubblici e duraturi.
A cosa serve un seed diverso per ogni cliente?
A fare in modo che due clienti che accorciano lo stesso indirizzo ricevano codici diversi. Così uno spazio di link pubblico non rivela che due organizzazioni puntano alla stessa destinazione. Il seed può essere l'identificativo del cliente o il nome di una campagna.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/web/url-shortener-slug-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/docs/guide","seed":"tenant-acme-v1"}'const res = await fetch("https://api.kit.forhosting.com/web/url-shortener-slug-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://example.com/docs/guide",
"seed": "tenant-acme-v1"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/url-shortener-slug-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://example.com/docs/guide",
"seed": "tenant-acme-v1"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/url-shortener-slug-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://example.com/docs/guide","seed":"tenant-acme-v1"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://example.com/docs/guide","seed":"tenant-acme-v1"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/url-shortener-slug-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"url": "https://example.com/docs/guide",
"seed": "tenant-acme-v1"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.url_shortener_slug_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
timeout_sec | 30 |
max_crawl_pages | 25 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Nulla viene scaricato in rete e nulla viene memorizzato: Lei ottiene la stringa dello slug e un prefisso short_path pronto, poi lo associa nel proprio archivio. Lunghezze inferiori a quattro falliscono con invalid_input perché codici così corti non sono sicuri per spazi di nomi pubblici di accorciatore a scala significativa.
Come viene costruito lo slug base62 dell’accorciatore con seed
La risposta ripete url, seed e length, restituisce lo slug, etichetta l’alfabeto come base62 e offre short_path come comodità con slash iniziale da incollare nei template—senza affermare che quel percorso sia attivo su alcun dominio.
Contratto di ingresso, forma della risposta e regole di rifiuto
Abbini lo slug al Suo controllo di unicità in scrittura: la funzione è deterministica per una tripla di input, ma due URL diverse possono ancora collidere a lunghezze brevi—il Suo archivio deve trattare le race di inserimento come fonte di verità. Invii un oggetto JSON con due stringhe obbligatorie e un intero opzionale. Il campo url (alias target, link, href, long_url) è la destinazione lunga che Lei intende associare in seguito; non viene recuperata, quindi localhost, percorsi profondi e query string sono accettati come testo opaco dopo il trim, fino a quattromilanovantasei caratteri. Il campo seed (alias key, salt, namespace, secret) è una stringa non vuota che definisce lo spazio del hash—usi un segreto per tenant o un id di linea di prodotto affinché le collisioni tra tenant restino improbabili. Il campo length (alias len, size, slug_length) vale sette se omesso; deve essere un intero da quattro a trentadue inclusi. Valori sotto quattro sollevano invalid_input con un messaggio che indica il minimo dello slug di accorciatore; valori oltre trentadue e non interi sono ugualmente rifiutati e non fatturati. In caso di successo il corpo include le stringhe url e seed normalizzate, la length risolta, lo slug, alphabet impostato a base62, short_path uguale a slash più slug, e una breve nota che ricorda ai client che si tratta di un codice deterministico, non di un redirect live. url o seed vuoti, oggetti non stringa per quei campi e chiavi obbligatorie assenti falliscono in modo chiaro così le UI dei form possono evidenziare il campo.
Dove un generatore di slug URL breve con seed crea valore
Poiché l’implementazione è parse pura di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello e senza rete in uscita; la validazione fallita non consuma saldo. Ricordi che questo endpoint non crea redirect, non misura i clic e non prenota DNS: conia soltanto il segmento di percorso opaco che il Suo accorciatore memorizzerà.
Casi di integrazione
Fixture stabili per QR e stampa
Blocchi url, seed e length negli strumenti di design affinché packaging, template SMS e golden CI concordino sempre sulla stringa del percorso breve.
Domande tecniche
Come genero uno slug URL breve da un’URL e un seed?
Invii stringhe non vuote url e seed e, opzionalmente, length (predefinito 7, min 4, max 32). L’API restituisce uno slug base62 deterministico e short_path come /Ab3x9kQ.
Quanto costa il generatore di slug URL breve con seed?
Lo strumento nel browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l’input non valido non viene fatturato.