2012-01-21 21 views
29

C'è un motivo per includere il protocollo http/https sull'attributo href di collegamenti?html - collegamenti senza protocollo http

sarebbe bene lasciare appena fuori:

<a href="example.com">my site</a> 
+0

Grazie @Gareth buona spiegazione! –

+7

La parte dell'URL che fa andare un link esternamente è // non il protocollo. Il protocollo comunica al computer solo il dispositivo da utilizzare sul collegamento. Puoi collegarti a "http://example.com", https://example.com, ftp://example.com o solo //example.com. Quest'ultimo afferma che è necessario utilizzare il protocollo del client corrente (di solito un browser http/https, ma potrebbe essere un client di posta elettronica, ecc.) Ed è estremamente utile quando si considera che un sito sia in esecuzione con protocolli http e https. –

risposta

84

L'inclusione della parte "http:" o "https:" è in parte solo una questione di tradizione, in parte una questione di specificazione effettiva del protocollo. Se è impostato come predefinito, viene utilizzato il protocollo della pagina corrente; ad esempio, //www.example.com diventa http://www.example.com o https://www.example.com a seconda dell'URL della pagina di riferimento. Se una pagina Web viene salvata su un disco locale e poi aperta da lì, non ha protocollo (solo il file: pseudo-protocollo), quindi URL come //www.example.com non funzioneranno; ecco quindi un motivo per includere la parte "http:" o "https:".

Omettere anche la parte "//" è un problema completamente diverso, trasformando l'URL in un URL relativo che verrà interpretato come relativo all'URL di base corrente.

Il motivo per cui www.example.com funziona quando viene digitato o incollato sulla riga di un indirizzo del browser è che gli URL relativi non avrebbero senso lì (non esiste un URL di base da collegare), quindi i produttori di browser hanno deciso di implicare il " http: // "prefisso lì.

-1

senza http, ci vorrebbe il relativo URL. Se devi puntare a un URL esterno, è necessario specificare http, altrimenti cercherebbe di portarti una risorsa locale.

Quindi, dipende da dove si desidera puntare.

+6

False. L'host può essere specificato senza un protocollo iniziando con "//" come in: "//www.example.com/blah/blah" – NVRAM

+0

hanks per indicare che i collegamenti sono considerati percorsi relativi senza http (o //) come ha sottolineato @NVRAM). Sono stato in grado di risolvere il mio problema controllando l'url e inserendo "//" se non conteneva "http". Questo ha funzionato alla grande. Grazie a tutti e due –

1

Gli URL in href non sono limitati ai soli documenti HTTP. Supportano tutti i protocolli supportati dai browser: ftp, mailto, file, ecc.

Inoltre, è possibile precedere il nome dell'URL con '#', per collegarsi a un id html internamente nella pagina. Puoi dare solo il nome o il percorso della directory, senza un protocollo, che sarà preso come un URL relativo.

Problemi correlati