host
Nagłówek mówi serwer WWW, który wirtualnego hosta do użycia (jeśli jest ustawione). Możesz nawet mieć tego samego wirtualnego hosta, używając kilku aliasów (= domeny i domeny z symbolami wieloznacznymi). W takim przypadku nadal możesz odczytać ten nagłówek ręcznie w swojej aplikacji internetowej, jeśli chcesz zapewnić inne zachowanie w oparciu o różne adresowane domeny. Jest to możliwe, ponieważ na swoim serwerze internetowym możesz (i jeśli się nie mylę, musisz) ustawić jeden vhost jako domyślny host. Ten domyślny vhost jest używany, gdy plikhost
nagłówek nie pasuje do żadnego ze skonfigurowanych hostów wirtualnych.
To znaczy: rozumiesz dobrze, chociaż powiedzenie „wiele hostów” może być nieco mylące: host (adresowana maszyna) jest ten sam, to, co naprawdę jest tłumaczone na adres IP, to różne nazwy domen (w tym subdomeny), do których również się odnoszą jako nazwy hostów (ale nie hosty!).
Chociaż nie jest to częścią pytania, zabawny fakt: ta specyfikacja doprowadziła na początku do problemów z SSL, ponieważ serwer sieciowy musi dostarczyć certyfikat odpowiadający domenie, do której adresował klient. Jednak aby wiedzieć, jakiego certyfikatu użyć, serwer WWW powinien był wcześniej znać adresowaną nazwę hosta. Ale ponieważ klient wysyła te informacje tylko przez zaszyfrowany kanał (co oznacza: po wysłaniu certyfikatu), serwer musiał założyć, że przeglądałeś domyślny host. Oznaczało to jedną domenę zabezpieczoną protokołem SSL na kombinację adresu IP / portu.
Zostało to rozwiązane dzięki wskazaniu nazwy serwera ; Jednak to znowu łamie trochę prywatności, ponieważ nazwa serwera jest teraz ponownie przesyłana zwykłym tekstem, więc każdy pośrednik zobaczy, z którą nazwą hosta próbujesz się połączyć.
Chociaż serwer sieciowy znałby nazwę hosta ze wskazania nazwy serwera, host
nagłówek nie jest przestarzały, ponieważ informacje dotyczące wskazania nazwy serwera są używane tylko podczas uzgadniania protokołu TLS. W przypadku niezabezpieczonego połączenia w ogóle nie ma wskazania nazwy serwera, więc host
nagłówek jest nadal ważny (i konieczny).
Kolejny zabawny fakt: większość serwerów WWW (jeśli nie wszystkie) odrzuca twoje żądanie http, jeśli nie zawiera dokładnie jednego host
nagłówka, nawet jeśli można go pominąć, ponieważ skonfigurowano tylko domyślny vhost. Oznacza to, że minimalna wymagana informacji żądania protokole HTTP (korzystać z telefonu) jest pierwszą linią zawierającą METHOD
RESOURCE
a PROTOCOL VERSION
i co najmniej host
-header, na przykład:
GET /someresource.html HTTP/1.1
Host: www.example.com
W dokumentacji MDN na temat nagłówka hosta wyrażają to tak:
Pole nagłówka hosta musi być wysyłane we wszystkich komunikatach żądań HTTP / 1.1. Kod statusu 400 (złe żądanie) zostanie wysłany do każdego komunikatu żądania HTTP / 1.1, który nie ma pola nagłówka hosta lub zawiera więcej niż jeden.
Jak wspomniał Darrel Miller, pełne specyfikacje można znaleźć w RFC7230 .
vhost
tylko 3 bliskich wystąpień ovirtual host
znaczeniu nie zbliżonym do twojej frazy i 12 dladefault
głównie o porcie,