16. juni 2012 - 09:27 Der er 10 kommentarer og
1 løsning

Hvordan ved computeren hvor localhost er?

Jeg har installeret xampp, som jeg bruger til at teste nogle hjemmesider.  Når jeg i en browser skriver 'localhost/' får jeg følgende:

Index of/
. hjemmeside1
. hjemmeside2

Disse mapper sidder i C:/xampp/htdocs

i xampp er der en mappe apache, og jeg ser i apache/conf/httpd.conf, at ServerRoot er defineret som C:/xampp/apache og DocumentRoot som C:/xampp/htdocs.  Men hvordan ved computeren, at den efter et kald til localhost skal finde apache/conf/httpd.conf og søge efter document root der?
Avatar billede Wally1973 Praktikant
16. juni 2012 - 10:22 #1
Localhost er defineret som IP-adressen 127.0.0.1 og den adresse er defineret som computeren selv.
Dette er en TCP/IP-standard og TCP/IP-standarden er den som benyttes på internettet og langt de fleste lokalnet.

Når du benytter en browser til at åbne en side, så tilføjer browseren usynligt at det er port 80, der skal tilgås, hvis du ikke specifikt angiver noget andet med :port efter domænenavnet.

På port 80 på din maskine lytter Apache efter forespørgsler og når den får en så henter læser den sin conf-fil og finder ud af hvor den skal finde filerne til forespørgslen.
16. juni 2012 - 11:05 #2
Aha - det var nyttigt - da jeg installerede xampp valgte jeg at køre apache 'as a service' hvilket formodenligt betyder, at apache kører hele tiden.  Så det er ikke computeren der står ved porten (80) og ved hvor de der kommer skal sendes hen med deres localhost forespørgsler, det er apache der venter ved porten og tager fat i de der kommer med localhost forespørgsler.

Hvis jeg ikke havde apache kørende som service og ikke havde startet den op (og jeg ikke havde andre webservere kørende) ville en localhost forespørgsel resultere i en fejl?  Eller er der en default?  Hvis jeg havde flere forskellige webservere kørende, hvordan afgøres det hvem der skal behaldle localhost forespørgsler?
Avatar billede erikjacobsen Ekspert
16. juni 2012 - 11:11 #3
Ud over 127.0.0.1 har det netkort sikkert også en almindelig LAN-adresse, fx. 192.168.1.10 eller 10.0.0.13.

Du kan - ofte - sætte flere IP-adresser på samme netkort og få webservere til at lytte på hver sin, fx 10.0.0.14 og 10.0.0.15

Mere almindeligt er det at sætte webserverne til at lytte på samme IP-adresse, men forskellige portnumre, fx 10.0.0.13:80 (default for web) og 10.0.0.13:8080.

Er det forskellige domænenavne  navn1.xxx og navn2.xxx  kan webserveren sættes op til at skelne mellem disse på samme IP og portnummer.
Avatar billede erikjacobsen Ekspert
16. juni 2012 - 11:31 #4
Og du kan se hvad der sker, hvis der ikke kører en tjeneste, ved at skrive i browseren:

  http://127.0.0.1:7913/

...fordi der næppe kører noget på port 7913.
16. juni 2012 - 12:06 #5
erikjacobsen - i så fald: 'unable to connect'.

Så localhost er, i grunden, en url, og man kalder localhost med samme hensigt som man kalder andre url's, nemlig for at få et dokument, og der skal, ligesom ved externe url's, en webserver til at fortolke og udføre opgaven.  Hvis der er en webserver der lytter, så kan den ekspediere forespørgslen, ellers ikke.  Er det, på kylling-hjerne niveau, nogenlunde korrekt forstået? 

Jeg spekulerer stadig på hvad der sker, hvis man har flere webservere kørende.  Kommer de i konflikt, eller er der en rækkefølge, og i såfald hvordan?  Hvis nogen har svaret, så er jeg fri for at eksperimentere ved at installere flere webservere o.s.v.
Avatar billede Wally1973 Praktikant
16. juni 2012 - 12:11 #6
#2
Det er korrekt.
Apache sidder og venter på porten og svarer.
Stopper du Apache servicen (Kontrolpanel -> Administration -> Tjenester), så er der ingen til at besvare opkaldet og du vil så få en fejl i browseren ala siden kan ikke vises. Serveren svarer ikke.

Du vælger hvilke IP-adresser Apachen skal svare på i conf-filen, hvor der typisk står *:80 i linjen, som betyder at den svare på alle computerens IP-adresser og kun på port 80 på disse.
Avatar billede erikjacobsen Ekspert
16. juni 2012 - 12:11 #7
Det er helt korrekt, og du kunne udgive en Pixie-bog med det ;)

Der kan ikke køre to webservere samtidigt på samme IP og port. Derfor kan de ikke komme i konflikt. Nummer 2 får ikke lov til at starte. Og en forespørgsel indeholder både IP og port, og "ved" derfor hvor den skal hen.
16. juni 2012 - 12:20 #8
erikjacobsen, nu tror jeg ikke de typiske pixiebog læsere interesserer sig for webservere.  (Måske tager jeg fejl.)

Wally1973, opretter du et svar for points?  (erik i princippet også, men du siger at du ikke tager imod.)
Avatar billede Wally1973 Praktikant
16. juni 2012 - 12:56 #9
Jeg er ikke interesseret i pointene, så behold dem bare. :)
16. juni 2012 - 14:28 #10
Ok, men tak til begge.
Avatar billede erikjacobsen Ekspert
16. juni 2012 - 14:36 #11
Du har ret i at den traditionelle aldersgruppe for traditionelle pixie-bøger med traditionalle pixie-historier ikke er den samme som for de "pixie"-bøger, der lader til at være brug for ved de videregående uddannelser.    ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester