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 04:01] – [HTTP/1.1 (1997)] 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 
-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)
-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)+
  
 ===== HTTP protokol verziók ===== ===== HTTP protokol verziók =====
Sor 34: Sor 31:
 Jellemzői: Jellemzői:
  
-Rendkívül egyszerű +  * Rendkívül egyszerű 
- +  Csak egyetlen metódus létezett: GET 
-Csak egyetlen metódus létezett: GET +  Nem léteztek HTTP fejlécek 
- +  Nem volt státuszkód 
-Nem léteztek HTTP headerek +  Nem volt verziószám a kérésben
- +
-Nem volt státuszkód +
- +
-Nem volt verziószám a kérésben+
  
-A válasz kizárólag HTML tartalom volt+A válasz kizárólag HTML tartalom lehet.
  
 === Kérés === === Kérés ===
Sor 63: Sor 56:
 </code> </code>
  
-Nincs:+A válaszban nincs:
  
-státuszsor +  * állapot sor 
-header mező +  * fejléc mező 
-Content-Type +    Content-Type 
-Content-Length+    Content-Length
  
 === Korlátok === === Korlátok ===
  
-Nem támogatta a képeket, CSS-t, külön erőforrásokat +  * Nem támogatta a képeket, CSS-t, külön erőforrásokat 
-Nem volt hibakezelési mechanizmus +  Nem volt hibakezelési mechanizmus 
-Nem alkalmas komplex webalkalmazásokhoz+  Nem alkalmas komplex webalkalmazásokhoz
  
 === Összegzés === === Összegzés ===
  
-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. Ez tekinthető a modern webkommunikáció kiindulópontjának.+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.
  
 ==== HTTP/1.0 (1996) ==== ==== HTTP/1.0 (1996) ====
Sor 84: Sor 77:
 === Jellemzők: === === Jellemzők: ===
  
-Minden kérés külön TCP kapcsolat +  * Minden kérés külön TCP kapcsolat 
-Nincs alapértelmezett persistent connection +  Nincs alapértelmezett persistent connection 
-Egyszerű szöveges protokoll +  Egyszerű szöveges protokoll 
-Nincs Host header kötelezően+  Nincs kötelező Host fejléc
  
 === Problémák: === === Problémák: ===
  
-Sok TCP handshake +  * Sok TCP handshake 
-Magas latency +  * Hosszú késleltetés 
-Nem hatékony párhuzamos erőforrás-letöltés+  Nem hatékony párhuzamos erőforrás-letöltés
  
 Példa kommunikáció: Példa kommunikáció:
Sor 179: Sor 172:
 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 (HOL) 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.+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
  
-Mobil hálózatokon stabilabb+Előny: 
 + 
 +  * Jelentősen alacsonyabb késleltetés 
 +  * Mobil hálózatokon stabilabb
  
 ===== HTTP verziók összehasonlítása ===== ===== HTTP verziók összehasonlítása =====
Sor 239: 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.1771128099.txt.gz · Utolsó módosítás: szerkesztette: riba.zoltan