Analisador de URL/ protocol · host · path · query · hash
Analise qualquer URL em seus componentes — protocolo, nome do host, porta, caminho, parametros de consulta e hash — com decomposicao visual.
URL
Experimente um exemplo
Esta ferramenta resolveu o seu problema?
Exemplos de codigo
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"Perguntas frequentes
Quais sao os componentes de uma URL?
Estrutura completa de uma URL: scheme://username:password@hostname:port/pathname?search#hash. Cada parte: scheme (protocolo, ex.: https, ftp), authority (usuario:senha@nome do host:porta), pathname (caminho comecando com /), search (string de consulta comecando com ?), hash (identificador de fragmento comecando com #, nao enviado ao servidor). Nem todas as partes sao obrigatorias.
O fragmento # e enviado ao servidor?
Nao. O hash/fragmento e processado localmente pelo navegador e nunca incluido nas requisicoes HTTP. E usado para navegacao por ancora na pagina (rolar ate uma secao) e em SPAs para roteamento do lado do cliente (ex.: modo hash do React Router).
Como analisar corretamente strings de consulta?
Formato da string de consulta: key=value&key2=value2. Caracteres especiais nos valores devem ser codificados em URL. Em JavaScript: new URLSearchParams(url.search), em Python: urllib.parse.parse_qs(), em Go: url.ParseQuery(). Nota: a mesma chave pode aparecer varias vezes (ex.: tag=js&tag=python) — nesse caso o valor e um array.
Quando a porta pode ser omitida em uma URL?
Quando se usa a porta padrao do protocolo: HTTP padrao 80, HTTPS padrao 443, FTP padrao 21. A API URL do navegador retorna uma string vazia para url.port quando a porta padrao e usada; url.host inclui a porta apenas quando difere do padrao (ex.: example.com:8080).
Como analiso URLs em JavaScript?
Use a API URL integrada: 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'. A API URL funciona em todos os navegadores modernos e Node.js 10+, e e mais confiavel que regex.
Qual e a diferenca entre URLs relativas e absolutas?
URLs absolutas incluem o protocolo completo e o nome do host (https://example.com/path) e podem ser resolvidas independentemente. URLs relativas sao relativas a pagina atual ('./page', '/api/data', '../assets/img.png') e precisam de uma URL base para resolucao. Em JavaScript: new URL('./page', 'https://example.com/app/') resulta em https://example.com/app/page.