Verwirrung bei der Verwendung von Portnummer und http


0

Wenn wir eine Seite von einem Server anfordern, wird die Anforderung standardmäßig an Port 80 auf dem Server gesendet, bei dem es sich um den http-Server handelt. Warum geben wir dann http vor dem Pfad einer Ressource ein? Wenn die Anforderung an einen http-Server gesendet wird, muss es sich um eine http-Anforderung handeln.


1
Denken Sie darüber nach: Können Sie sowohl einen FTP-Dienst als auch einen HTTP-Dienst auf demselben Server ausführen? Ja. Kann ein Browser mit mehreren Protokollen sprechen? Auch ja. Daher müssen wir angeben, welches Protokoll verwendet werden soll, und das Präfix der URL gibt dies an.
John Deters

2
Dies ist hier kein Thema. Dies ist eine grundlegende Netzwerkfrage. Sie gehen von mehreren Annahmen aus, die Sie nicht untersucht haben, einschließlich der Tatsache, dass ein HTTP-Server nur eines tut und http immer Port 80 ist. Server! = Service. Dienste reagieren auf Ports. Server führen Dienste aus.
Schröder

Antworten:


7

Das hast du umgekehrt. Wenn Sie eingeben http://, wird die Anforderung an Port 80 gesendet, sofern sie nicht überschrieben wird (z http://www.yourserver.blah:8080/.... B. ).

Wenn Sie zum Beispiel tippen https://..., wird die Anfrage - sofern nicht anders angegeben - an Port 443 / tcp gesendet und "spricht" sogar einen anderen "Dialekt". Gleiches gilt für ftp://Port 21, wenn der Browser das FTP-Protokoll versteht (wie die meisten).

Die meisten Browser betrachten das Fehlen eines http://Qualifikationsmerkmals in einer Webadresse als "das geht an HTTP-Port 80/tcp" und fügen das automatisch http://für Sie hinzu. Andernfalls müssen Sie angeben, und der gewählte Port folgt der Spezifikation.


2

Um besser zu verstehen, wie ein URI (URL) funktioniert, sollten Sie sich auf RFC 3986 beziehen

The generic URI syntax consists of a hierarchical sequence of
   components referred to as the scheme, authority, path, query, and
   fragment.

The following are two example URIs and their component parts:

         foo://example.com:8042/over/there?name=ferret#nose
         \_/   \______________/\_________/ \_________/ \__/
          |           |            |            |        |
       scheme     authority       path        query   fragment
          |   _____________________|__
         / \ /                        \
         urn:example:animal:ferret:nose

Es ist auch nützlich, sich den "Server" nicht als Box vorzustellen, sondern als "Dienst", der auf einem bestimmten Port ausgeführt wird. Wenn der Kunde die Anfrage stellt, weiß er nicht, wer sie erhalten wird. Während der Standard 80 ist, gibt es keinen Grund, der kein SSH-Server sein kann. Stellen Sie sich ein Szenario vor, in dem sich jemand hinter einer Firewall befindet und eine SSH-Verbindung zu seiner Home-Box herstellen möchte. Wenn der SSH-Server auf Port 80 ausgeführt wird, kann er möglicherweise die grundlegenden Firewall-Regeln umgehen, mit denen Sie eine Verbindung zu Port 80 herstellen können sind Standardwerte, aber keine Anforderungen.

Beachten Sie auch, dass die Verwendung einer URL für den Benutzer bestimmt ist. Wenn Sie dies angeben http://, wird der Benutzer aufgefordert, eine HTTP-Anforderung an die Adresse zu erstellen. Ihre Anfrage des Browsers für http://www.example.com wird dann in das HTTP-Protokoll übersetzt. Dieser Artikel enthält eine ziemlich gute Beschreibung:

Der Browser hat beispielsweise die URL http://www.test101.com/doc/index.html in die folgende Anforderungsnachricht übersetzt:

GET /docs/index.html HTTP/1.1
Host: www.test101.com
Accept: image/gif, image/jpeg, */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
(blank line)

0

Sie müssen dem Browser mitteilen, welches Protokoll er mit dem Server sprechen soll. Die meisten Browser unterstützen mehrere Protokolle im Hauptnavigationsbereich, z. B. https und ftp, die Port 443 bzw. 21/22 verwenden.


0

Da dies bisher noch niemand erwähnt hat, ist es nicht erforderlich, http://oder anzugebenhttps://

Beispiel: Google empfiehlt, nur //anstelle von http://oder zu verwenden, https://da standardmäßig die auf der Seite verwendeten Elemente verwendet werden.

Beispiel aus Google-Code

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.