Web-fejlesztés 2.
Visnovitz Márton
egyetemi tanársegéd
visnovitz.marton@inf.elte.hu
@elte-fi/courses-tt-webprog
A világháló (angolul World Wide Web, röviden web) egy olyan információs rendszer, amelyben
HTTP protokoll
Egy komponens
Több komponens
Térben és időben elválhatnak
Kérés pillanatában a szerveren megtalálható az a tartalom, amely leküldésre kerül a válaszban
.html
.jpg
, .png
, .gif
.css
.js
A leküldendő tartalmat egy program állítja elő.
cgi-bin
könyvtár.cgi
, .php
)POST / HTTP/1.1
Host: localhost:8000
User-Agent: Mozilla/5.0 (...)
Accept: text/html
Accept-Language: en-Us
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: multipart/form-data
Content-Length: 345
✒> <✒
-12656974
(more data... )
start-line
headers
blank
body
HTTP/1.1 403 Forbidden
Server: Apache
Content-Type: text/html;charset=utf-8
Date: Wed, 10 Aug 2016 09:23:25 GMT
Keep-Alive: timeout=5, max=1000
Connection: Keep-Alive
Age: 3465
X-Cache-Info: caching
Content-Length: 220
✒> <✒
<!DOCTYPE html>
(more data...)
METÓDUS ERŐFORRÁS VERZIÓ
FEJLÉC: ÉRTÉK
FEJLÉC: ÉRTÉK
FEJLÉC: ÉRTÉK
ÜZENETTEST (opcionális)
GET
: Megadott erőforrás letöltésePOST
: Feldolgozandó adat felküldéseDELETE
: Törli a megadott erőforrástPATCH
: Adott erőforrás javítása, frissízséeHEAD
: Ld. GET
, de csak a válasz fejléceket kéri lePUT
: Feltölti a megadott erőforrástTRACE
: Visszaküldi a kapott kéréstOPTIONS
: A szerver által támogatott HTTP metódusok listájaCONNECT
: Kérést transzparens tunnellé alakítja (SSL)GET /index.html HTTP/1.1
Host: webprogramozas.inf.elte.hu
GET / HTTP/1.1
Host: webprogramozas.inf.elte.hu
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: hu-hu,hu;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
VERZIÓ STÁTUSZKÓD INDOKLÁS
FEJLÉC: ÉRTÉK
FEJLÉC: ÉRTÉK
FEJLÉC: ÉRTÉK
ÜZENETTEST (opcionális)
1xx
: Informatív (kérés megkapva)2xx
: Siker (kérés megérkezett, elfogadva)
3xx
: Átirányítás (további műveletre van szükség)4xx
: Kliens hiba (kérés hibás, nem teljesíthető)
5xx
: Szerver hiba (nem tudja teljesíteni a kérést)
HTTP/1.1 200 OK
Date: Wed, 03 Apr 2013 07:11:56 GMT
Server: Apache/2.2.10 (Linux/SUSE)
Last-Modified: Wed, 20 Feb 2013 08:39:44 GMT
ETag: "fe8438-6d6-4d623e65e9400"
Accept-Ranges: bytes
Content-Length: 1750
Content-Type: text/html
<!DOCTYPE html>
<html>
...
</html>
Webfejlesztési eszköztár (F12
) → Hálózat (Network) fül
Azt határozza meg, hogy egy webszerver hogyan indíthat el egy programot és milyen módon cserél adatot vele.
#include <iostream>
using namespace std;
int main()
{
cout << "Content-Type: text/html" << endl;
cout << endl;
cout << "<!doctype html>" << endl;
cout << "<html>" << endl;
cout << " <head>" << endl;
cout << " <meta charset=\"utf-8\">" << endl;
cout << " <title></title>" << endl;
cout << " </head>" << endl;
cout << " <body>" << endl;
cout << " <p>Hello vilag!</p>" << endl;
cout << " </body>" << endl;
cout << "</html>" << endl;
return 0;
}
Content-Type: text/html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<p>Hello vilag!</p>
</body>
</html>
Hello vilag!
int main()
{
cout << "Content-Type: text/html" << endl;
cout << endl;
cout << "<!doctype html>" << endl;
cout << "<html>" << endl;
cout << " <head>" << endl;
cout << " <meta charset=\"utf-8\">" << endl;
cout << " <title></title>" << endl;
cout << " </head>" << endl;
cout << " <body>" << endl;
for (int i = 1; i <= 5; i++) {
cout << " <p>Hello vilag!</p>" << endl;
}
cout << " </body>" << endl;
cout << "</html>" << endl;
return 0;
}
Content-Type: text/html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<p>Hello vilag!</p>
<p>Hello vilag!</p>
<p>Hello vilag!</p>
<p>Hello vilag!</p>
<p>Hello vilag!</p>
</body>
</html>
Hello vilag!
Hello vilag!
Hello vilag!
Hello vilag!
Hello vilag!