it-swarm.com.de

Was genau ist los, wenn ich in meinem Webbrowser zu localhost: 8080 gehe? (Apache tomcat)

Ich habe meine Karriere mit der gesamten lokalen Anwendungsprogrammierung (C++ - Anwendungen und so weiter) verbracht. Ich versuche jetzt jedoch, meine Füße in die Webwelt zu graben. Ich verwende Eclipse (Mars) und Apache Tomcat 8.0.23, um zu versuchen, eine Umgebung einzurichten, in der ich experimentieren und etwas über serverseitige Programmierung (JSP, PHP usw.) lernen kann. Ich habe alles so eingerichtet, dass beim Tippen

localhost:8080

in meinem Browser wird auf die richtige Tomcat-Seite verwiesen. Ich weiß, dass dies wahrscheinlich sehr einfach ist, aber es hat mich hier umgehauen.

Was genau ist los, wenn ich localhost eingebe?

Woher kommt die Tomcat-Seite, wenn nicht das Internet? Ich bin mir ziemlich sicher, dass die Daten von einem Server stammen, der sich dank Tomcat auf meinem PC befindet. Aber woher wusste mein Browser, wo die Informationen nur von localhost zu finden sind: 8080?

Ich nehme an, 8080 ist ein Port oder so, aber ich bin mir auch nicht sicher, und wenn es ein Port ist, bin ich mir nicht sicher, was das bedeutet.

Grundsätzlich weiß ich (glaube ich ...) über die serverseitige Webentwicklung nur, dass in der reinen HTML/CSS-Webentwicklung alle Arbeiten lokal ausgeführt werden, sobald alles heruntergeladen wurde, aber bei Servern geht ein Teil der Arbeit (innerhalb einiger Trennzeichen) an Der Server wird in einer anderen Form in das HTML eingefügt (ähnlich wie beim Senden von Daten an eine Funktion in C++ und beim Zurückgeben verschiedener Daten), die dann wieder lokal auf die Seite gezogen werden.

11
softeng

Was genau passiert, wenn ich meinen Webbrowser anweise, um zu localhost: 8080 zu wechseln?

  1. Sie veranlassen Ihren Webbrowser, Ihr Betriebssystem aufzufordern, den Hostnamen localhost aufzulösen. Betriebssysteme lösen normalerweise den Hostnamen localhost in 127.0.0.1 Auf, Ihre Loopback-Schnittstelle.

  2. Jeder Hostname oder jede IP-Adresse, gefolgt von einem : Und einer Portnummer wie :8080, Weist den Browser an, eine Verbindung zu diesem TCP Port anstelle des Standard-Webservers herzustellen Port 80.

    So wie http://localhost:80/, http://localhost/, http://127.0.0.1/:80 Und http://127.0.0.1/ Jeweils eine Verbindung zu demselben Server und Port herstellen, so tun dies auch http://localhost:8080/ Und http://127.0.0.1:8080/ Stellen Sie ebenfalls eine Verbindung mit derselben IP-Adresse her, jedoch über TCP Port 8080)

Zusätzlicher Hinweis: In HTTP/1.1 gibt es, obwohl der Webbrowser mit derselben IP-Adresse und demselben Port eine Verbindung zu vielen Webservern herstellt, eine geringfügige Abweichung Unterschied zwischen localhost und 127.0.0.1. Je nachdem, was sich in der Adressleiste befindet, sendet Ihr Browser ein Anforderungsheaderfeld mit Host: localhost Oder Host: 127.0.0.1. Wenn ein Webserver ordnungsgemäß konfiguriert ist, kann ein einzelner Webserver im Feld Host-Header des Browsers einen einzelnen IP-Adressport überwachen und verschiedene Webseiten für viele verschiedene Domänen bereitstellen, die in dieselbe IP-Adresse aufgelöst werden.

Wie löst das Betriebssystem normalerweise Hostnamen wie localhost auf?

  1. Auf Unix-Systemen oder Unix-ähnlichen Betriebssystemen wie Linux oder Freebsd lautet die Datei/etc/hosts und enthält wahrscheinlich Zeilen wie:

    127.0.0.1   localhost
    ::1     localhost ip6-localhost ip6-loopback
    
  2. Unter Windows lautet die Datei c:\windows\system32\drivers\etc\hosts Und hat normalerweise eine ähnliche Zeile:

    127.0.0.1   localhost
    

Zusätzlicher Hinweis: Wenn Sie möchten, können Sie Ihrer Hosts-Datei folgende Zeilen hinzufügen:

127.0.0.1     localhost
127.0.0.1     developer.yourdomain.com
# Deny Browser Request For These Sites
127.0.0.2     www.spam.advertisements.com
127.0.0.2     super.ads.com
# Block These Sites
127.0.0.3     www.dont.go.here.com
127.0.0.3     nsfw.stuff.com 
  • Der URL (Uniform Resource Locator) http://developer.yourdomain.com:8080/ In der Adressleiste Ihres Browsers weist den Webbrowser an, eine TCP - Verbindung zu Port 8080 Ihrer lokalen Loopback-Adresse 127.0.0.1 herzustellen.

  • Darüber hinaus ist gemäß rfc1700 Seite 4 jede Adresse im Bereich 127.0.0.0/8 auch eine Loopback-Adresse. Daher kann ein ordnungsgemäß konfigurierter Webserver, der auf Ihrem Computer ausgeführt wird, alle Anforderungen an Port 127.0.0.2 ablehnen, während die allgemeine Meldung "Sie sollten nicht hierher gehen. Die Site ist blockiert" für Verbindungen unter 127.0.0.3 angezeigt wird.

Woher kommt die Tomcat-Seite?

Apache Tomcat ist ein Server, der einen Port überwacht und Java Programme ausführt, die Inhalte generieren, die an Ihren Browser gesendet werden sollen.

9
Keith Reynolds

Wenn Sie www.google.com in Ihren Webbrowser eingeben, wird über den Standardport 80 eine Verbindung zum Google-Server hergestellt (über eine DNS-Suche, um festzustellen, welche IP-Adresse www.google.com lautet) und die Webseite angefordert. Der Google-Server antwortet mit einer Webseite, die Ihr Browser auf dem Bildschirm zeichnet (normalerweise durch weitere Aufrufe von Bildern, CSS und JavaScript).

Wenn Sie zu localhost gehen: 8080 ist es genau das gleiche. Der Name des Localhost-Servers wird immer auf dem Computer aufgelöst, auf dem Sie ausgeführt werden, und verwendet die gefälschte IP-Adresse 127.0.0.1 (Ihr Computer hat zwei IP-Adressen - diese gefälschte, die jeder Computer hat, und die echte). Sie müssen also eine Tomcat-Instanz haben, die lokal ausgeführt wird und auf Verbindungen an Port 8080 wartet.

Warum Port 8080 anstelle des Standard-http-Ports 80? Nun, falls Sie bereits einen Webserver eingerichtet haben.

Normalerweise haben Sie Webserver und App-Server.

  1. Webserver (wie Apache httpd) stellen statische Seiten bereit. Tatsächlich ist es wie ein ausgefallener Einweg-FTP-Server. Sie öffnen eine TCP Verbindung und fordern mithilfe der HTTP-Befehle (normalerweise GET) eine Datei an. Der Webserver gibt eine HTML-Datei zurück und Ihr Browser lädt sie herunter und analysiert sie, sieht, dass er andere Bilder benötigt, und fordert diese an. Ein Webserver ist sehr schnell, hebt jedoch im Grunde genommen Dateien von der lokalen Festplatte ab und gibt sie zurück.

  2. Ein App Server (wie Tomcat oder JBoss) ist ähnlich, außer dass er normalerweise Code ausführt, um die gewünschte Seite zu "erstellen", anstatt sie direkt von der Festplatte zu entfernen. Wie diese Seite erstellt wird, hängt von Ihrer Anwendung ab. Es könnte eine Verbindung zu einer Datenbank herstellen, ein Programm ausführen, zufällig eine Seite bereitstellen ... usw. Wenn Sie sich beispielsweise bei Ihrem Online-Banking anmelden, richtet der App-Server eine Sitzung für Sie ein und gibt diese Sitzungs-ID in einem Cookie zurück, das Sie Der Browser wird jedes Mal erneut gesendet, wenn Sie eine Anfrage stellen, bis Sie sich abmelden. Wenn Sie also nach der Seite "Mein Guthaben" fragen, sucht die Bank anhand Ihrer Sitzungs-ID, wer Sie sind, und ruft in ihrer Datenbank Ihren Namen und Ihr Bankguthaben auf. Anschließend wird eine Seite mit der Aufschrift "Hallo John Smith, Ihr Guthaben" erstellt ist 100 €. " App-Server sind normalerweise langsamer, aber vielseitiger als Webserver.

An vielen Orten wird ein WebServer im Standardport 80 und dann AppServer auf einem sekundären Port (z. B. 8080) ausgeführt. So werden statische Seiten schnell bereitgestellt, und wenn Benutzer auf einen Link klicken, der sie zu einer dynamischen Seite führt, geht der Link entweder zu 8080 (auf den der App-Server reagiert) oder der Webserver wird eingerichtet, um bestimmte Anforderungen an den App-Server weiterzuleiten (in In diesem Fall sieht es immer noch wie der Standardport 80 aus und sieht für den Benutzer etwas besser aus.

Natürlich ist dies eine sehr hochrangige Übersicht und nichts ist so schwarz und weiß. Die meisten Webserver können einige dynamische Inhalte erstellen, indem sie Skripte ausführen (normalerweise CGI über Skripte mit Perl oder PHP), und die meisten App-Server können auch einfache Dateien wie einen Webserver bereitstellen. Tatsächlich ist es möglich, einfach einen App-Server auszuführen und die Tomcat-Portnummer von 8080 auf 80 zu ändern.

Schließlich entfernen sich viele Anwendungen von der Bereitstellung vollständiger HTML-Seiten für jede Anforderung an den App-Server (was als langsam und ineffizient angesehen wird) und antworten stattdessen nur mit den Datenausschnitten, indem sie AJAX verwenden, um JSON oder XML zu senden. Zurück zum ursprünglichen www.google.com, mit dem Sie Ihre Suchanfrage eingegeben haben, klicken Sie auf Suchen und erhalten Sie eine Seite mit Ihren Ergebnissen. Stattdessen sendet Ihr Browser während der Eingabe kontinuierlich AJAX Anfragen an Google, die mit aktuellen Suchergebnissen basierend auf den bisher eingegebenen Daten antworten. Anschließend aktualisiert Ihr Browser die Seite. Sie müssen nicht warten, bis der Benutzer die Seite so schnell und dynamischer an den Benutzer gesendet hat (wie dies bei einer Desktop-App der alten Schule der Fall wäre).

1
Barry Pollard

In diesem Szenario senden Sie eine Anforderung zum Auflösen von localhost (127.0.0.1 (Loopback-Schnittstelle)). Apache ist so konfiguriert, dass Port 8080 überwacht wird. Wenn Sie auf localhost auf Port 8080 zugreifen, wird der Standard-VirtualHost zurückgegeben.

1
Ali Pandidan

Um es einfach zu machen, stellt localhost als Webadresse eine Verbindung zu Ihrem lokalen Computer her. In diesem Fall ist Apache als Webserver installiert.

Der zweite Teil: 8080 bedeutet, eine Verbindung zu Port 8080 dieser Webadresse herzustellen. Wenn Sie dies nicht angeben, stellt Ihr Webbrowser eine Verbindung zum Standard-Webserver-Port her, nämlich Port 80.

Wenn Sie noch keine IP-Adressen haben, ist localhost eine feste DNS-Verbindung zu 127.0.0.1.

Sollte dich dorthin bringen ...

0
narrsf