Felhasználói eszközök

Eszközök a webhelyen


webszerver

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalonElőző változat
Következő változat
Előző változat
webszerver [2026/02/15 03:17] riba.zoltanwebszerver [2026/02/16 06:05] (aktuális) riba.zoltan
Sor 17: Sor 17:
 A kommunikáció menete: A kommunikáció menete:
  
-Kliens kapcsolatot nyit a szerverhez+  - Kliens kapcsolatot nyit a szerverhez 
 +  - Kliens HTTP kérést küld 
 +  - Szerver HTTP választ küld 
 +  - Szerver lezárja a kapcsolatot (HTTP 0.9, HTTP 1.0) vagy nyitva marad ha szükséges (HTTP 1.1, HTTP 2)
  
-Kliens HTTP kérést küld+===== HTTP protokol verziók =====
  
-Szerver HTTP választ küld +==== HTTP/0.9 (1991) ====
- +
-Szerver lezárja a kapcsolatot (HTTP <= 1.0) vagy nyitva marad ha szükséges (HTTP >= 1.1) +
- +
-Egyszerű HTTP 1.0 kérés (https://datatracker.ietf.org/doc/html/rfc1945): +
- +
-<code> +
- +
-</code> +
- +
-Egyszerű kérés felépítése: +
- +
-<code> +
-# telnet szerver 80 +
-GET /index.html HTTP/1.1 +
-Host: example.com +
-User-Agent: curl/8.0 Accept: */* +
-</code> +
- +
-Szerver válasza: +
- +
-<code> HTTP/1.1 200 OK Content-Type: text/html Content-Length: 1234 <html>...</html> </code> +
-===== HTTP/0.9 (1991) =====+
  
 A HTTP/0.9 volt a legelső, kísérleti változata a protokollnak, amelyet A HTTP/0.9 volt a legelső, kísérleti változata a protokollnak, amelyet
Sor 50: Sor 31:
 Jellemzői: Jellemzői:
  
-Rendkívül egyszerű+  * Rendkívül egyszerű 
 +  * Csak egyetlen metódus létezett: GET 
 +  * Nem léteztek HTTP fejlécek 
 +  * Nem volt státuszkód 
 +  * Nem volt verziószám a kérésben
  
-Csak egyetlen metódus létezett: GET+A válasz kizárólag HTML tartalom lehet.
  
-Nem léteztek HTTP headerek+=== Kérés ===
  
-Nem volt státuszkód+<code> 
 +# telnet szervernév 80 
 +GET /index.html 
 +</code>
  
-Nem volt verziószám a kérésben +=== Válasz ===
- +
-A válasz kizárólag HTML tartalom volt +
- +
-==== Kérés formátuma ==== +
- +
-<code> GET /index.html </code> +
- +
-Fontos: +
- +
-Nincs HTTP/1.0 vagy HTTP/1.1 jelölés +
- +
-Nincs Host header +
- +
-Üres sor sem szükséges +
- +
-==== Válasz ====+
  
 A szerver egyszerűen visszaküldi a HTML dokumentumot: A szerver egyszerűen visszaküldi a HTML dokumentumot:
  
-<code> <html> <body>Hello World</body> </html> </code>+<code> 
 +<html> 
 +<body>Hello World</body> 
 +</html> 
 +</code>
  
-Nincs:+A válaszban nincs:
  
-státuszsor+  * állapot sor 
 +  * fejléc mező 
 +    * Content-Type 
 +    * Content-Length
  
-header mező+=== Korlátok ===
  
-Content-Type+  * Nem támogatta a képeket, CSS-t, külön erőforrásokat 
 +  * Nem volt hibakezelési mechanizmus 
 +  * Nem alkalmas komplex webalkalmazásokhoz
  
-Content-Length+=== Összegzés ===
  
-==== Korlátok =====+A HTTP/0.9 egy rendkívül egyszerű, csak GET-et támogató, fejléc nélküli protokoll volt, amely kizárólag HTML dokumentum visszaküldésére szolgált. Ez tekinthető a modern webkommunikáció kiindulópontjának.
  
-Nem támogatta a képeket, CSS-t, külön erőforrásokat+==== HTTP/1.0 (1996) ====
  
-Nem volt hibakezelési mechanizmus+=== Jellemzők: ===
  
-Nem alkalmas komplex webalkalmazásokhoz+  * Minden kérés külön TCP kapcsolat 
 +  * Nincs alapértelmezett persistent connection 
 +  * Egyszerű szöveges protokoll 
 +  * Nincs kötelező Host fejléc
  
-==== Jelentősége =====+=== Problémák: ===
  
-A HTTP/0.9 kizárólag dokumentumlekérésre szolgált. +  * Sok TCP handshake 
-Ez a minimalista modell képezte az alapját a későbbi HTTP/1.0 verziónak, amely már bevezette:+  * Hosszú késleltetés 
 +  * Nem hatékony párhuzamos erőforrás-letöltés
  
-státuszkódokat+Példa kommunikáció:
  
-header mezőket+Egyszerű kérés felépítése:
  
-MIME típusokat+<code> 
 +$ telnet server 80 
 +Trying N.N.N.N... 
 +Connected to szerver. 
 +Escape character is '^]'
 +GET / HTTP/1.0
  
-===== Összegzés =====+HTTP/1.1 200 OK 
 +Date: Sun, 15 Feb 2026 03:32:17 GMT 
 +Server: Apache/2 
 +Last-Modified: Tue, 27 Feb 2024 06:32:03 GMT 
 +ETag: "0-612572f2e4ba2" 
 +Accept-Ranges: bytes 
 +Content-Length:
 +Connection: close 
 +Content-Type: text/html; charset=UTF-8
  
-A HTTP/0.9 egy rendkívül egyszerű, csak GET-et támogató, header nélküli protokoll volt, amely kizárólag HTML dokumentum visszaküldésére szolgált.+Connection closed by foreign host. 
 +</code>
  
-Ez tekinthető a modern webkommunikáció kiindulópontjának. +==== HTTP/1.(1997) ====
-===== HTTP/1.(1996=====+
  
-Jellemzők:+=== Fejlesztések===
  
-Minden kérés külön TCP kapcsolat+  * Persistent connection (Keep-Alive) 
 +  * Host header kötelező 
 +  * Chunked transfer encoding 
 +  * Pipeline támogatás
  
-Nincs alapértelmezett persistent connection+Példa a hagyományos kapcsolatra:
  
-Egyszerű szöveges protokoll+<code> 
 +$ telnet server 80 
 +Trying N.N.N.N... 
 +Connected to server. 
 +Escape character is '^]'
 +GET / HTTP/1.1 
 +Host: server
  
-Nincs Host header kötelezően+HTTP/1.1 403 Forbidden 
 +Date: Sun, 15 Feb 2026 03:47:36 GMT 
 +Server: Apache/2.4.62 (AlmaLinux) 
 +Last-Modified: Mon, 24 Mar 2025 16:15:24 GMT 
 +ETag: "1680-63118e9567f00" 
 +Accept-Ranges: bytes 
 +Content-Length: 130 
 +Content-Type: text/html; charset=UTF-8
  
-Problémák:+<!DOCTYPE html> 
 +<html> 
 +<body> 
 +Hello world! 
 +</body> 
 +</html> 
 +Connection closed by foreign host. 
 +</code>
  
-Sok TCP handshake+Példa persistent kapcsolatra:
  
-Magas latency+<code> 
 +$ telnet server 80 
 +Trying N.N.N.N... 
 +Connected to server. 
 +Escape character is '^]'
 +GET / HTTP/1.1 
 +Host: xxx 
 +Connection: keep-alive
  
-Nem hatékony párhuzamos erőforrás-letöltés+TARTALOM 
 +GET / HTTP/1.1 
 +Host: xxx 
 +Connection: close
  
-===== HTTP/1.1 (1997) =====+TARTALOM
  
-Fejlesztések: +Connection closed by foreign host. 
- +</code>
-Persistent connection (Keep-Alive) +
- +
-Host header kötelező +
- +
-Chunked transfer encoding +
- +
-Pipeline támogatás +
- +
-Példa persistent kapcsolatra: +
- +
-<code> Connection: keep-alive </code>+
  
 Előny: Előny:
  
-Kevesebb TCP kapcsolat +  * Kevesebb TCP kapcsolat 
- +  Jobb teljesítmény
-Jobb teljesítmény+
  
 Probléma: Probléma:
  
-Head-of-line blocking (pipeline esetén)+HOL (Head-of-line) blokkolás (több kérés esetén). Mivel a kérések sorrendjében válaszol a szerver, ezért egy lassú feldolgozási művelet blokkolja a többi kérés kiszolgálását.
  
-===== HTTP/2 (2015) =====+==== HTTP/2 (2015) ====
  
-Alapja: SPDY protokoll+Alapja: a Google 2009-ben fejlesztett SPDY (kiejtve: “speedy”) kísérleti alkalmazásrétegű protokoll a HTTP/1.1 teljesítmény korlátainak megszüntetésére.
  
 Fő jellemzők: Fő jellemzők:
  
-Bináris protokoll +  * Bináris protokoll 
- +  Multiplexing (több stream egy TCP kapcsolaton) 
-Multiplexing (több stream egy TCP kapcsolaton) +  Header compression (HPACK) 
- +  Server Push
-Header compression (HPACK) +
- +
-Server Push+
  
 Előny: Előny:
  
-Megszűnik az alkalmazás-szintű head-of-line blocking +  * Megszűnik az alkalmazás-szintű head-of-line blocking 
- +  Jelentősen jobb teljesítmény
-Jelentősen jobb teljesítmény+
  
 Hátrány: Hátrány:
  
-TCP head-of-line blocking továbbra is fennáll csomagszinten+  * TCP head-of-line blocking továbbra is fennáll csomagszinten
  
-===== HTTP/3 (2022) =====+Példa:
  
-AlapjaQUIC (UDP felett)+<code> 
 +$ curl -v -s -o /dev/null --http2 https://server 
 +* Host server:443 was resolved. 
 +* IPv6: (none) 
 +* IPv4: N.N.N.N 
 +*   Trying N.N.N.N:443... 
 +* ALPN: curl offers h2,http/1.1 
 +} [5 bytes data] 
 +* TLSv1.3 (OUT), TLS handshake, Client hello (1): 
 +} [1565 bytes data] 
 +*  CAfile: /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem 
 +*  CApath: none 
 +{ [5 bytes data] 
 +* TLSv1.3 (IN), TLS handshake, Server hello (2): 
 +{ [122 bytes data] 
 +* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1): 
 +{ [1 bytes data] 
 +* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): 
 +{ [25 bytes data] 
 +* TLSv1.3 (IN), TLS handshake, Certificate (11): 
 +{ [2577 bytes data] 
 +* TLSv1.3 (IN), TLS handshake, CERT verify (15): 
 +{ [264 bytes data] 
 +* TLSv1.3 (IN), TLS handshake, Finished (20): 
 +{ [52 bytes data] 
 +* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): 
 +} [1 bytes data] 
 +* TLSv1.3 (OUT), TLS handshake, Finished (20): 
 +} [52 bytes data] 
 +* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / x25519 / RSASSA-PSS 
 +* ALPN: server accepted http/1.1 
 +* Server certificate: 
 +*  subject: CN=server 
 +*  start date: Jan 20 03:10:26 2026 GMT 
 +*  expire date: Apr 20 03:10:25 2026 GMT 
 +*  subjectAltName: host "server" matched cert's "server" 
 +*  issuer: C=US; O=Let's Encrypt; CN=R12 
 +*  SSL certificate verify ok. 
 +*   Certificate level 0: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption 
 +*   Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption 
 +*   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption 
 +* Connected to r-l.hu (N.N.N.N) port 443 
 +* using HTTP/1.x 
 +} [5 bytes data] 
 +> GET / HTTP/1.1 
 +> Host: r-l.hu 
 +> User-Agent: curl/8.15.0 
 +> Accept: */* 
 +>  
 +* Request completely sent off 
 +{ [5 bytes data] 
 +* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): 
 +{ [281 bytes data] 
 +* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): 
 +{ [281 bytes data] 
 +< HTTP/1.1 200 OK 
 +< Date: Sun, 15 Feb 2026 04:10:24 GMT 
 +< Server: Apache/2.4.62 (AlmaLinux) 
 +< Last-Modified: Sun, 15 Feb 2026 04:09:05 GMT 
 +< ETag: "0-64ad4ffd21f44" 
 +< Accept-Ranges: bytes 
 +< Content-Length:
 +< Content-Type: text/html; charset=UTF-8 
 +<  
 +* Connection #0 to host r-l.hu left intact 
 +</code>
  
-Jellemzők:+Több tartalom lekérése:
  
-TCP helyett UDP+<code> 
 +$ curl --http2 -s -o /dev/null https://server/index.html https://server/style.css https://server/app.js 
 +</code>
  
-TLS 1.integrált+==== HTTP/(2022) ====
  
-Nincs TCP head-of-line blocking+Alapja: A QUIC (Quick UDP Internet Connections) egy modern, titkosított, multiplexelt transzport protokoll, amely UDP felett működik, és amelyet eredetileg a Google fejlesztett ki. IETF szabvány (RFC 9000).
  
-Gyorsabb kapcsolatfelépítés (0-RTT)+A QUIC célja a TCP + TLS + HTTP/2 kombináció leváltása egy egyetlen, hatékonyabb protokollal, amely csökkenti a késleltetést és javítja a kapcsolat stabilitását.
  
-Előny:+Jellemzők:
  
-Jelentősen alacsonyabb latency+  * TCP helyett UDP 
 +  * TLS 1.3 integrált 
 +  * Nincs TCP head-of-line blokkolódás 
 +  * Gyorsabb kapcsolatfelépítés 0-RTT (Round-Trip Time) 
 +  * Connection ID-t használ a TCP IP + port azonosítás helyett 
 + 
 +Előny:
  
-Mobil hálózatokon stabilabb+  * Jelentősen alacsonyabb késleltetés 
 +  * Mobil hálózatokon stabilabb
  
 ===== HTTP verziók összehasonlítása ===== ===== HTTP verziók összehasonlítása =====
Sor 212: Sor 301:
 | HTTP/3 | QUIC (UDP) | Bináris | Igen | Nem | | HTTP/3 | QUIC (UDP) | Bináris | Igen | Nem |
  
-===== Telnet-es HTTP példa (HTTP/1.0) =====+===== HTTP kérés metódusok =====
  
-Kapcsolódás:+=== HTTP metódusok összefoglaló táblázat ===
  
-<code> telnet example.com 80 </code>+A metódus biztonságos (safe), ha nem változtatja meg a szerver állapotátIlyen metódusok
  
-Kérés kézi begépelése:+Egy metódus idempotens, ha ugyanazt a kérést többször elküldve a szerver állapota az első végrehajtás után már nem változik tovább.
  
-<code> GET / HTTP/1.0 </code>+^ Metódus ^ Safe ^ Idempotens ^ Van body? ^ Tipikus használat ^ 
 +GET | Igen | Igen | Nem | Erőforrás lekérdezése | 
 +| HEAD | Igen | Igen | Nem | Csak header lekérdezése | 
 +| POST | Nem | Nem | Igen | Adatküldés, űrlap, API | 
 +| PUT | Nem | Igen | Igen | Erőforrás létrehozása/felülírása | 
 +| DELETE | Nem | Igen | Nem | Erőforrás törlése | 
 +| OPTIONS | Igen | Igen | Nem | Támogatott metódusok lekérdezése | 
 +| PATCH | Nem | Nem | Igen | Részleges módosítás | 
 +| TRACE | Igen | Igen | Nem | Diagnosztika |
  
-(Fontosaz üres sor zárja a header részt.)+Példák:
  
-===== Telnet-es HTTP/1.1 példa =====+Kapcsolódás minden esetben: 
 +<code> 
 +telnet server 80 
 +</code>
  
-<code> telnet example.com 80 </code> <code> GET / HTTP/1.1 Hostexample.com Connection: close </code>+Fontos:
  
-Megfigyelhető:+  * HTTP/1.1 esetén kötelező a ''Host'' header 
 +  * A header részt üres sor zárja le 
 +  * Body esetén kötelező a ''Content-Length''
  
-Kötelező Host header+=== GET ===
  
-Válasz státuszkód+<code> 
 +GET / HTTP/1.1 
 +Host: server 
 +Connection: close 
 +</code>
  
-Header mezők+=== HEAD ===
  
-Üres sor+<code> 
 +HEAD / HTTP/1.1 
 +Host: server 
 +Connection: close 
 +</code>
  
-Body+=== POST ===
  
-===== HTTP státuszkódok =====+<code> 
 +POST /login HTTP/1.1 
 +Host: server 
 +Content-Type: application/x-www-form-urlencoded 
 +Content-Length: 27 
 +Connection: close
  
-^ Tartomány ^ Jelentés ^ +username=test&password=123 
-| 1xx | Információ | +</code>
-| 2xx | Siker | +
-| 3xx | Átirányítás | +
-| 4xx | Kliens hiba | +
-| 5xx | Szerver hiba |+
  
-Példák:+=== PUT ===
  
-200 OK+<code> 
 +PUT /file.txt HTTP/1.1 
 +Host: server 
 +Content-Type: text/plain 
 +Content-Length: 11 
 +Connection: close
  
-301 Moved Permanently+Hello World 
 +</code>
  
-400 Bad Request+=== DELETE ===
  
-404 Not Found+<code> 
 +DELETE /file.txt HTTP/1.1 
 +Host: server 
 +Connection: close 
 +</code>
  
-500 Internal Server Error+=== OPTIONS ===
  
-===== HTTPS =====+<code> 
 +OPTIONS / HTTP/1.1 
 +Host: server 
 +Connection: close 
 +</code>
  
-A HTTPS nem külön protokoll, hanem:+Ez utóbbi kérésre a válasz:
  
-HTTP + TLS titkosítás+<code> 
 +... 
 +Allow: GET, POST, HEAD 
 +... 
 +</code>
  
-Alapértelmezett port:+=== PATCH ===
  
-80 → HTTP+<code>PATCH /user/HTTP/1.1 
 +Host: server 
 +Content-Type: application/json 
 +Content-Length: 18 
 +Connection: close
  
-443 → HTTPS+{"name":"ujnev"
 +</code>
  
-Telnet helyett HTTPS teszteléshez:+=== TRACE ===
  
-<code> openssl s_client -connect example.com:443 </code>+<code>TRACE / HTTP/1.
 +Hostserver 
 +Connection: close 
 +</code>
  
-===== Összegzés =====+Fontos a sorrend!
  
-HTTP/1.xegyszerű, szöveges, TCP-alapú+  * A metódus az első szó a kérésben 
 +  * A státuszkód a válasz első sorában jelenik meg 
 +  * A header és a body között üres sor található 
 +  * A kapcsolat lezárását a ''Connectionclose'' header vagy a szerver TCP bontása jelzi
  
-HTTP/2: bináris, multiplexelt, gyorsabb 
  
-HTTP/3: QUIC-alapúmodernalacsony latency+===== HTTP válasz (állapot) kódok ===== 
 + 
 +^ Tartomány ^ Jelentés ^ 
 +| 1xx | Információ | 
 +| 2xx | Siker | 
 +| 3xx | Átirányítás | 
 +| 4xx | Kliens hiba | 
 +| 5xx | Szerver hiba | 
 + 
 +^ Kód ^ Megnevezés ^ Jelentés ^ 
 +| 100 | Continue | A kliens folytathatja a kérést | 
 +| 101 | Switching Protocols | Protokollváltás (pl. WebSocket) | 
 +| 102 | Processing | A kérés feldolgozás alatt | 
 +| 200 | OK | Sikeres kérés | 
 +| 201 | Created | Erőforrás létrejött | 
 +| 202 | Accepted | Feldolgozás elfogadva | 
 +| 203 | Non-Authoritative Information | Nem hiteles forrásból származó válasz | 
 +| 204 | No Content | Sikeresde nincs válasz body | 
 +| 205 | Reset Content | Kliens nézetének visszaállítása | 
 +| 206 | Partial Content | Részleges tartalom (Range kérés) | 
 +| 300 | Multiple Choices | Több válaszlehetőség | 
 +| 301 | Moved Permanently | Végleges átirányítás | 
 +| 302 | Found | Ideiglenes átirányítás | 
 +| 303 | See Other | Más erőforrás GET-tel | 
 +| 304 | Not Modified | Nem változott (cache) | 
 +| 307 | Temporary Redirect | Ideiglenesmetódust megőrzi | 
 +| 308 | Permanent Redirect | Végleges, metódust megőrzi | 
 +| 400 | Bad Request | Hibás kérés | 
 +| 401 | Unauthorized | Hitelesítés szükséges | 
 +| 402 | Payment Required | Fizetés szükséges (fenntartott) | 
 +| 403 | Forbidden | Tiltott hozzáférés | 
 +| 404 | Not Found | Nem található | 
 +| 405 | Method Not Allowed | Metódus nem engedélyezett | 
 +| 406 | Not Acceptable | Nem elfogadható formátum | 
 +| 407 | Proxy Authentication Required | Proxy hitelesítés szükséges | 
 +| 408 | Request Timeout | Kérés időtúllépés | 
 +| 409 | Conflict | Ütközés | 
 +| 410 | Gone | Végleg eltűnt | 
 +| 411 | Length Required | Content-Length hiányzik | 
 +| 412 | Precondition Failed | Előfeltétel nem teljesült | 
 +| 413 | Payload Too Large | Túl nagy kérés | 
 +| 414 | URI Too Long | Túl hosszú URI | 
 +| 415 | Unsupported Media Type | Nem támogatott médiatípus | 
 +| 416 | Range Not Satisfiable | Érvénytelen tartomány | 
 +| 417 | Expectation Failed | Expect header hiba | 
 +| 418 | I'm a teapot | RFC humoros státuszkód | 
 +| 429 | Too Many Requests | Túl sok kérés (rate limit) | 
 +| 500 | Internal Server Error | Belső szerverhiba | 
 +| 501 | Not Implemented | Nem implementált | 
 +| 502 | Bad Gateway | Hibás gateway válasz | 
 +| 503 | Service Unavailable | Szolgáltatás nem elérhető | 
 +| 504 | Gateway Timeout | Gateway időtúllépés | 
 +| 505 | HTTP Version Not Supported | HTTP verzió nem támogatott |
  
-Telnet kiváló eszköz a HTTP/1.x működés szemléltetésére 
webszerver.1771125436.txt.gz · Utolsó módosítás: szerkesztette: riba.zoltan