Se inserisco un IP per un sito Web anziché il modulo stringa, il mio server DNS locale lo capisce e ignorerò il processo DNS? [duplicare]


12

Questo è puramente per curiosità. Ma se dovessi digitare l'IP di un sito Web, la richiesta passerebbe comunque attraverso il processo di ricerca diretta? In caso contrario, a che punto e in quale fase si è realizzato che questa è la posizione tramite IP e non un nome host come stringa?

Inoltre, come verrebbe registrato nel mio file host? Se attraversa l'intero processo di ricerca, il file host conterrà il nome host della stringa e l'IP e verrà popolato localmente?


1
Domain Name System, questo è ciò che traduce un URL (google.com) nell'indirizzo IP, quindi se si utilizza un indirizzo IP non è necessario eseguire una ricerca per nome, ignorando il sistema DNS. en.wikipedia.org/wiki/Domain_Name_System
Moab

Le risposte di seguito sono corrette, i browser sono abbastanza intelligenti da non cercare in avanti un indirizzo IP. Fare una ricerca diretta di un indirizzo IP non è mai una buona idea, ci sono 3 modi in cui un server DNS può reagire ad esso: 1) La maggior parte dei server DNS restituirà semplicemente lo stesso indirizzo IP. 2) Altri server DNS non sono in grado di risolvere il "nome DNS" in un IP e te lo diranno. 3) Alcuni server DNS (gratuiti) non sono in grado di risolvere il "nome DNS" e di fornirti un indirizzo IP che ti reindirizza alla propria pagina di ricerca (generalmente piena di annunci).
user1793963,

1
Il nome di dominio è necessario se il server Web ospita più siti. Ha un solo IP e senza nome di dominio non può capire quale sito desideri. Se esiste un solo sito Web, funzionerà con IP allo stesso modo.
i486,

1
Si noti che il nome host non viene inviato solo a DNS per la traduzione, ma anche al server web stesso. Ciò significa che un server web che serve più siti Web non può sapere quale di quei siti desideri. Questo ovviamente è un problema IPv4; con IPv6 ogni sito Web può avere il proprio indirizzo IP.
MSalters,

1
Ora la domanda successiva è: come fa un browser a sapere che si 2001:feed:face:dead::beef:8080tratta di un indirizzo IPv6 con una porta specificata e non solo un URL formattato davvero male ...;)
Mark Henderson

Risposte:


15

Se si utilizza un indirizzo IP, il sistema operativo saprà immediatamente che si tratta di un indirizzo IP e non effettuerà una ricerca diretta.

Quando si effettua una richiesta HTTP, il primo passo è ottenere l'indirizzo IP della destinazione, in modo che il browser possa comunicare con il server. Per la comunicazione con il server, tutto accade su IP, da indirizzo IP a indirizzo IP, e quindi il nome del server non è necessario per questa comunicazione. Tuttavia, viene passato nelle intestazioni HTTP come Host:intestazione per far sapere al server Web quale sito Web stai cercando, se ospita più siti.

Nel caso di accesso tramite indirizzo IP, ciò non accade e viene presentato il sito predefinito.

Il tuo hostsfile è un file statico, non cambia con alcuna azione intrapresa, tranne se lo modifichi direttamente (o hai script o applicazioni che lo modificano).


2
Inoltre, vale la pena notare che se si inserisce l'indirizzo IP in un browser come Chrome, è possibile effettuare una ricerca su Google prima di caricare semplicemente il sito.
sventechie,

1
Si noti che il collegamento interno dei singoli oggetti che compongono la pagina è probabilmente eseguito da FQDN, quindi mentre la richiesta di root verrà eseguita senza la ricerca DNS, ma quasi tutte le immagini, i fogli di stile, i file di script, ecc. Saranno quasi sicuramente risolti dal DNS richiesta quando il browser tenta di eseguire il rendering della pagina principale e scarica tutte le risorse secondarie.
Frank Thomas

2
@FrankThomas Nella maggior parte dei casi, dove la risorsa si trova sullo stesso server, le risorse sono referenziate da URL relativi e quindi vi si accederà con lo stesso metodo della richiesta originale - via IP. L'eccezione a ciò sarebbe dove base_href è usato nelle intestazioni, e quindi dettare l'host che gli URL relativi dovrebbero usare. Se viene utilizzato un nome di dominio completo, sì, game over.
Paolo,

In the case of accessing by IP address, this does not happen, and the default site is presented.Molto probabilmente ti verrà data una pagina di errore.
Utente 121238386,

@sventechie Davvero? Qualche idea sul perché lo farebbe? Tipo, qual è il valore di quello?
Athoxx,

3

Come altri hanno scritto, utilizzando un indirizzo IP si sta effettivamente saltando il DNS che consente di accedere ad esempio ai siti di sviluppo senza un nome host.

L'aggiunta di un IP - nome host finto in / etc / hosts è di nuovo estremamente comune per i siti di sviluppo. A differenza dell'utilizzo diretto dell'indirizzo IP, questo a) salterà comunque il DNS b) fare in modo che il browser aggiunga l' Hostintestazione della richiesta alla richiesta HTTP, consentendo ad esempio gli host virtuali su un server locale.


Vale la pena notare che se per qualsiasi motivo l'indirizzo IP viene aggiornato, il file HOSTS non viene aggiornato insieme ad esso, il che può portare a comportamenti imprevisti e un sito che sembra non funzionare più. Guardare il file hosts è una delle ultime cose che le persone fanno nella risoluzione di un problema e può essere trascurato del tutto.
LPChip,

@LPChip è giusto, ma per favore nota che ho sottolineato più volte come questo sia più uno sviluppatore - pratica locale che altro.
chx,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.