Web Serwer

Protokoły i standardy
Oprogramowanie i sprzęt dostarczające klientom treści WWW przez protokoły HTTP/HTTPS.
← Wróć do słownika

Czym jest serwer WWW?

Serwer WWW to oprogramowanie (oraz sprzęt, na którym działa), które przyjmuje od klientów żądania HTTP/HTTPS i dostarcza treści internetowe, w tym strony HTML, obrazy, arkusze stylów, skrypty i odpowiedzi API.

Jak działają serwery WWW

HTTP Request/Response Cycle:

Client (Browser) Web Server

│ │

│──── HTTP Request ──────────►│

│ GET /index.html │

│ Host: example.com │

│ │

│ Process Request

│ ├── Parse URL

│ ├── Check permissions

│ ├── Locate resource

│ └── Prepare response

│ │

│◄─── HTTP Response ──────────│

│ 200 OK │

│ Content-Type: text/html │

│ <html>...</html> │

│ │

Popularne oprogramowanie serwerów WWW

SerwerUdział w rynkuNajlepsze zastosowanie
nginx~34%Duża współbieżność, reverse proxy
Apache~31%Elastyczność, .htaccess
Cloudflare~21%CDN, przetwarzanie brzegowe
LiteSpeed~12%Hosting WordPress
IIS~6%Środowiska Windows/.NET

Funkcje serwera WWW

FunkcjaOpis
Udostępnianie plików statycznychHTML, CSS, JS, obrazy
Kończenie TLS/SSLSzyfrowanie HTTPS
Reverse proxyPrzekazywanie do serwerów zaplecza
Równoważenie obciążeniaRozdzielanie ruchu
BuforowanieZmniejszanie obciążenia zaplecza
KompresjaKodowanie Gzip/Brotli
Kontrola dostępuUwierzytelnianie, filtrowanie IP
RejestrowanieLogi żądań i błędów

Przykłady konfiguracji serwera

# nginx - Virtual host configuration

server {

listen 80;

listen 443 ssl;

server_name example.com;

root /var/www/example;

index index.html;

ssl_certificate /etc/ssl/cert.pem;

ssl_certificate_key /etc/ssl/key.pem;

location / {

try_files $uri $uri/ =404;

}

location /api {

proxy_pass http://localhost:3000;

}

}

# Apache - .htaccess example

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# Enable compression

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/css application/javascript

</IfModule>

Architektura serwera WWW

Modern Web Stack:

Internet

┌─────────────┐

│ CDN/WAF │

└─────────────┘

┌─────────────┐

│ Load Balancer│

└─────────────┘

│ │

┌─────┘ └─────┐

▼ ▼

┌───────────┐ ┌───────────┐

│ Web Server│ │ Web Server│

│ (nginx) │ │ (nginx) │

└───────────┘ └───────────┘

│ │

└────────┬────────┘

┌─────────────┐

│ App Server │

│ (Node/Python)│

└─────────────┘

┌─────────────┐

│ Database │

└─────────────┘

Identyfikacja serwera

Metoda wykrywaniaUjawniana informacja
Nagłówek ServerNazwa i wersja oprogramowania
Nagłówki odpowiedziWskazówki dotyczące stosu technologicznego
Strony błędówDomyślne szablony serwera
Wzorce czasoweZachowanie właściwe serwerowi
Rozszerzenia plikówWskaźniki platformy

Względy bezpieczeństwa

1. Ukrywaj informacje o wersji: Usuwaj wersję serwera z nagłówków

2. Wyłącz listowanie katalogów: Zapobiegaj wyliczaniu plików

3. Prawidłowo konfiguruj TLS: Używaj nowoczesnych protokołów i silnych szyfrów

4. Ograniczaj rozmiary żądań: Zapobiegaj atakom DoS

5. Ustawiaj nagłówki bezpieczeństwa: CSP, HSTS, X-Frame-Options

6. Regularnie aktualizuj: Szybko instaluj poprawki usuwające luki

Optymalizacja wydajności

TechnikaKorzyść
Keep-alivePonowne używanie połączeń
Gzip/BrotliMniejsze odpowiedzi
Buforowanie statyczneMniej operacji wejścia-wyjścia dysku
Strojenie workerówObsługa większej liczby równoczesnych użytkowników
HTTP/2Multipleksowane żądania

Dobre praktyki

1. Wybieraj według potrzeb: nginx do proxy, Apache dla elastyczności

2. Rozdzielaj treści statyczne i dynamiczne: CDN dla statycznych, serwer dla dynamicznych

3. Monitoruj zasoby: CPU, pamięć i połączenia

4. Wdrażaj buforowanie: Po stronie przeglądarki, proxy i serwera

5. Konfiguruj rejestrowanie: Używaj uporządkowanych logów do analizy

6. Planuj skalowanie: Równoważenie obciążenia i skalowanie horyzontalne

Serwery WWW są podstawą infrastruktury internetowej i niezawodnie oraz wydajnie dostarczają użytkownikom treści.

Wykorzystaj tę wiedzę w praktyce

Użyj API DomScan, aby sprawdzić dostępność domen, ich kondycję i więcej.