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/16 05:34] 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 184: Sor 177:
 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) ====
Sor 308: Sor 301:
 | HTTP/3 | QUIC (UDP) | Bináris | Igen | Nem | | HTTP/3 | QUIC (UDP) | Bináris | Igen | Nem |
  
-===== HTTP állapot kódok =====+===== HTTP kérés metódusok ===== 
 + 
 +=== HTTP metódusok összefoglaló táblázat === 
 + 
 +A metódus biztonságos (safe), ha nem változtatja meg a szerver állapotát. Ilyen metódusok 
 + 
 +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. 
 + 
 +^ 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 | 
 + 
 +Példák: 
 + 
 +Kapcsolódás minden esetben: 
 +<code> 
 +telnet server 80 
 +</code> 
 + 
 +Fontos: 
 + 
 +  * 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'' 
 + 
 +=== GET === 
 + 
 +<code> 
 +GET / HTTP/1.1 
 +Host: server 
 +Connection: close 
 +</code> 
 + 
 +=== HEAD === 
 + 
 +<code> 
 +HEAD / HTTP/1.1 
 +Host: server 
 +Connection: close 
 +</code> 
 + 
 +=== POST === 
 + 
 +<code> 
 +POST /login HTTP/1.1 
 +Host: server 
 +Content-Type: application/x-www-form-urlencoded 
 +Content-Length: 27 
 +Connection: close 
 + 
 +username=test&password=123 
 +</code> 
 + 
 +=== PUT === 
 + 
 +<code> 
 +PUT /file.txt HTTP/1.1 
 +Host: server 
 +Content-Type: text/plain 
 +Content-Length: 11 
 +Connection: close 
 + 
 +Hello World 
 +</code> 
 + 
 +=== DELETE === 
 + 
 +<code> 
 +DELETE /file.txt HTTP/1.1 
 +Host: server 
 +Connection: close 
 +</code> 
 + 
 +=== OPTIONS === 
 + 
 +<code> 
 +OPTIONS / HTTP/1.1 
 +Host: server 
 +Connection: close 
 +</code> 
 + 
 +Ez utóbbi kérésre a válasz: 
 + 
 +<code> 
 +... 
 +Allow: GET, POST, HEAD 
 +... 
 +</code> 
 + 
 +=== PATCH === 
 + 
 +<code>PATCH /user/1 HTTP/1.1 
 +Host: server 
 +Content-Type: application/json 
 +Content-Length: 18 
 +Connection: close 
 + 
 +{"name":"ujnev"
 +</code> 
 + 
 +=== TRACE === 
 + 
 +<code>TRACE / HTTP/1.1 
 +Host: server 
 +Connection: close 
 +</code> 
 + 
 +Fontos a sorrend! 
 + 
 +  * 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 ''Connection: close'' header vagy a szerver TCP bontása jelzi 
 + 
 + 
 +===== HTTP válasz (állapotkódok =====
  
 ^ Tartomány ^ Jelentés ^ ^ Tartomány ^ Jelentés ^
Sor 321: Sor 435:
 | 101 | Switching Protocols | Protokollváltás (pl. WebSocket) | | 101 | Switching Protocols | Protokollváltás (pl. WebSocket) |
 | 102 | Processing | A kérés feldolgozás alatt | | 102 | Processing | A kérés feldolgozás alatt |
- 
 | 200 | OK | Sikeres kérés | | 200 | OK | Sikeres kérés |
 | 201 | Created | Erőforrás létrejött | | 201 | Created | Erőforrás létrejött |
Sor 329: Sor 442:
 | 205 | Reset Content | Kliens nézetének visszaállítása | | 205 | Reset Content | Kliens nézetének visszaállítása |
 | 206 | Partial Content | Részleges tartalom (Range kérés) | | 206 | Partial Content | Részleges tartalom (Range kérés) |
- 
 | 300 | Multiple Choices | Több válaszlehetőség | | 300 | Multiple Choices | Több válaszlehetőség |
 | 301 | Moved Permanently | Végleges átirányítás | | 301 | Moved Permanently | Végleges átirányítás |
Sor 337: Sor 449:
 | 307 | Temporary Redirect | Ideiglenes, metódust megőrzi | | 307 | Temporary Redirect | Ideiglenes, metódust megőrzi |
 | 308 | Permanent Redirect | Végleges, metódust megőrzi | | 308 | Permanent Redirect | Végleges, metódust megőrzi |
- 
 | 400 | Bad Request | Hibás kérés | | 400 | Bad Request | Hibás kérés |
 | 401 | Unauthorized | Hitelesítés szükséges | | 401 | Unauthorized | Hitelesítés szükséges |
-| 402 | Payment Required | Fenntartott |+| 402 | Payment Required | Fizetés szükséges (fenntartott) |
 | 403 | Forbidden | Tiltott hozzáférés | | 403 | Forbidden | Tiltott hozzáférés |
 | 404 | Not Found | Nem található | | 404 | Not Found | Nem található |
Sor 358: Sor 469:
 | 418 | I'm a teapot | RFC humoros státuszkód | | 418 | I'm a teapot | RFC humoros státuszkód |
 | 429 | Too Many Requests | Túl sok kérés (rate limit) | | 429 | Too Many Requests | Túl sok kérés (rate limit) |
- 
 | 500 | Internal Server Error | Belső szerverhiba | | 500 | Internal Server Error | Belső szerverhiba |
 | 501 | Not Implemented | Nem implementált | | 501 | Not Implemented | Nem implementált |
Sor 366: Sor 476:
 | 505 | HTTP Version Not Supported | HTTP verzió nem támogatott | | 505 | HTTP Version Not Supported | HTTP verzió nem támogatott |
  
-Példák: 
- 
-200 OK 
- 
-301 Moved Permanently 
- 
-400 Bad Request 
- 
-404 Not Found 
- 
-500 Internal Server Error 
- 
-===== HTTPS ===== 
- 
-A HTTPS nem külön protokoll, hanem: 
- 
-HTTP + TLS titkosítás 
- 
-Alapértelmezett port: 
- 
-80 → HTTP 
- 
-443 → HTTPS 
- 
-Telnet helyett HTTPS teszteléshez: 
- 
-<code> openssl s_client -connect example.com:443 </code> 
- 
-===== Összegzés ===== 
- 
-HTTP/1.x: egyszerű, szöveges, TCP-alapú 
- 
-HTTP/2: bináris, multiplexelt, gyorsabb 
- 
-HTTP/3: QUIC-alapú, modern, alacsony latency 
- 
-Telnet kiváló eszköz a HTTP/1.x működés szemléltetésére 
webszerver.1771220088.txt.gz · Utolsó módosítás: szerkesztette: riba.zoltan