Analyseur d'URL/ protocol · host · path · query · hash

Analysez n'importe quelle URL en ses composants — protocole, nom d'hote, port, chemin, parametres de requete et hash — avec une decomposition visuelle.

URL
Essayer un exemple

Cet outil a-t-il résolu votre problème ?

Exemples de code

JavaScript (URL API)
const url = new URL(
  'https://user:[email protected]:8080' +
  '/v1/search?q=hello+world&page=2#results'
);

url.protocol   // 'https:'
url.username   // 'user'
url.hostname   // 'api.example.com'
url.port       // '8080'
url.pathname   // '/v1/search'
url.search     // '?q=hello+world&page=2'
url.hash       // '#results'

// Query params
url.searchParams.get('q')    // 'hello world'
url.searchParams.get('page') // '2'
[...url.searchParams]        // [['q','hello world'],['page','2']]

// Modify & rebuild
url.hostname = 'api2.example.com';
url.searchParams.set('page', '3');
url.toString() // rebuilt URL
Python
from urllib.parse import urlparse, parse_qs, urlencode

raw = 'https://user:[email protected]:8080/v1/search?q=hello+world&page=2#results'
u = urlparse(raw)

u.scheme    # 'https'
u.netloc    # 'user:[email protected]:8080'
u.hostname  # 'api.example.com'
u.port      # 8080
u.path      # '/v1/search'
u.query     # 'q=hello+world&page=2'
u.fragment  # 'results'

# Parse query params
params = parse_qs(u.query)
params['q']    # ['hello world']
params['page'] # ['2']
Go
import "net/url"

raw := "https://api.example.com:8080/search?q=hello&page=2"
u, err := url.Parse(raw)

u.Scheme   // "https"
u.Host     // "api.example.com:8080"
u.Hostname() // "api.example.com"
u.Port()     // "8080"
u.Path     // "/search"
u.RawQuery // "q=hello&page=2"

// Parse query
q := u.Query()
q.Get("q")    // "hello"
q.Get("page") // "2"

// Build URL
u2 := &url.URL{
  Scheme: "https",
  Host:   "example.com",
  Path:   "/api/v1",
}
u2.RawQuery = url.Values{"key": {"val"}}.Encode()
Shell (curl / python)
# Extract parts with grep/sed
URL="https://api.example.com/search?q=hello&page=2"

# Protocol
echo $URL | grep -oP '^[^:]+(?=://)'
# api.example.com

# Query param with Python
python3 -c "
from urllib.parse import urlparse, parse_qs
u = urlparse('$URL')
print(parse_qs(u.query))
"

# curl: show effective URL
curl -v "$URL" 2>&1 | grep '> GET'

# httpie
http GET "$URL"

Questions frequemment posees

Quels sont les composants d'une URL ?
Structure complete d'une URL : scheme://username:password@hostname:port/pathname?search#hash. Chaque partie : scheme (protocole, ex : https, ftp), authority (nom d'utilisateur:mot de passe@nom d'hote:port), pathname (chemin commencant par /), search (chaine de requete commencant par ?), hash (identifiant de fragment commencant par #, non envoye au serveur). Toutes les parties ne sont pas obligatoires.
Le fragment # est-il envoye au serveur ?
Non. Le hash/fragment est traite localement par le navigateur et n'est jamais inclus dans les requetes HTTP. Il est utilise pour la navigation par ancre dans la page (defiler jusqu'a une section) et dans les SPA pour le routage cote client (ex : mode hash de React Router).
Comment analyser correctement les chaines de requete ?
Format de la chaine de requete : key=value&key2=value2. Les caracteres speciaux dans les valeurs doivent etre encodes en URL. En JavaScript : new URLSearchParams(url.search), en Python : urllib.parse.parse_qs(), en Go : url.ParseQuery(). Note : la meme cle peut apparaitre plusieurs fois (ex : tag=js&tag=python) — dans ce cas, la valeur est un tableau.
Quand peut-on omettre le port dans une URL ?
Lorsqu'on utilise le port par defaut du protocole : HTTP par defaut 80, HTTPS par defaut 443, FTP par defaut 21. L'API URL du navigateur renvoie une chaine vide pour url.port lorsque le port par defaut est utilise ; url.host inclut le port uniquement lorsqu'il differe du port par defaut (ex : example.com:8080).
Comment analyser les URL en JavaScript ?
Utilisez l'API URL integree : const u = new URL('https://example.com/path?q=1#top'); u.hostname → 'example.com'; u.pathname → '/path'; u.searchParams.get('q') → '1'; u.hash → '#top'. L'API URL fonctionne dans tous les navigateurs modernes et Node.js 10+, et est plus fiable que les regex.
Quelle est la difference entre les URL relatives et absolues ?
Les URL absolues incluent le protocole complet et le nom d'hote (https://example.com/path) et peuvent etre resolues independamment. Les URL relatives sont relatives a la page actuelle ('./page', '/api/data', '../assets/img.png') et necessitent une URL de base pour etre resolues. En JavaScript : new URL('./page', 'https://example.com/app/') donne https://example.com/app/page.