260 likes | 371 Views
Инфраструктурата на WWW и HTTP. Светлин Наков. Национална академия по разработка на софтуер. academy.devbg.org. Съдържание. Какво е WWW? Компоненти на WWW: URL, HTML, HTTP Протоколът HTTP HTTP заявки HTTP отговори Cookies. Какво е WWW?. Представяне на World Wide Web.
E N D
Инфраструктурата на WWW и HTTP Светлин Наков Национална академия по разработка на софтуер academy.devbg.org
Съдържание • Какво е WWW? • Компоненти на WWW: URL, HTML, HTTP • Протоколът HTTP • HTTP заявки • HTTP отговори • Cookies
Какво е WWW? Представяне на World Wide Web
Какво е WWW? • WWW = World Wide Web= Web = Уеб • Глобално информационно пространство в Интернет • Услуга в Интернет (като E-mail, DNS, ...) • Множество документи (и други ресурси) разположени по различни уеб сървъри • Достъпни през стандартни протоколи като HTTP, HTTPS и FTP по техния URL • Уеб сървъритепредоставят уеб съдържание • Уеб браузъритепоказват уеб страници
Компоненти на WWW • Структурни компоненти • Internet – предоставя пренос на данни по протоколите TCP и HTTP • Клиенти (уеб браузъри) – показват уеб съдържанието – Internet Explorer, Mozilla, … • Уеб сървъри – Apache, IIS, Tomcat • Семантични компоненти • Hyper Text Transfer Protocol (HTTP) • Hyper Text Markup Language (HTML) • Uniform Resource Locator (URL) • Uniform Resource Identifiers (URIs)
Инфраструктура на WWW • Клиентите използват уеб браузър за да искат ресурси от уеб сървърите по HTTP • Ресурсите имат уникален URL адрес • Сървърите връщат поискания ресурс • Или връщат код и съобщение за грешка • Уеб страниците са ресурси във WWW • Състоят се от HTML текст, графики, анимации, звук и други файлове (ресурси) • Уеб сайтове • Уеб сайтовете са съвкупности от уеб страници
Инфраструктура на WWW (2) • Клиентския браузър показва (render)уеб страниците, върнати от уеб сървъра • Страниците са написани на езика HTML (Hyper Text Markup Language) • Браузърите показват текст, графика и звук • HTML страниците могат да съдържат хипер-връзки за навигация към други страници • Цялата система на WWW работи върху стандартни мрежови протоколи • TCP/IP, DNS, HTTP, … • Протоколът HTTP е фундаментален за WWW
Основни компоненти на WWW: URL • Uniform Resource Locator (URL) • Адрес на уникален ресурсвъв WWW, напр. • Представлява форматиран низ • Протокол за достъп до сървъра (http, ftp, https, ...) • Име на сървъра или IP адрес (например academy.devbg.org) • Път до ресурса и име (напр., index.php) • Параметри (напр. ?id=27&lang=en) http://academy.devbg.org/index.php
Основни компоненти на WWW: HTML • Hyper Text Markup Language (HTML) • Форматиран текст с картинки и хипервръзки • Интерпретира се и се показва от браузърите • Лесен за усвояване и използване • HTML документите са просто текст и тагове • Лесно се добавя форматиране на текста • Генерира се автоматично с HTML редактори • Уеб страница • HTML файл, множество картинки и други ресурси (съвкупност от файлове)
HTML – пример <html> <head><title>Example HTML</title></head> <body> <h1>Heading 1</h1> <h2>Sub heading 2</h2> <h3>Sub heading 3</h3> <p>This is my first paragraph</p> <p>This is my second paragraph</p> <a href="http://academy.devbg.org"><img src="NASD-logo.png" border="0"></a> <div align="center" style="background:skyblue"> This is a div</div> </body> </html>
HTML – пример <html> <head><title>Example HTML</title></head> <body> <h1>Heading 1</h1> <h2>Sub heading 2</h2> <h3>Sub heading 3</h3> <p>This is my first paragraph</p> <p>This is my second paragraph</p> <a href="http://academy.devbg.org"><img src="NASD-logo.png" border="0"></a> <div align="center" style="background:skyblue"> This is a div</div> </body> </html>
Основни компоненти на WWW: HTTP • Hyper Text Transfer Protocol (HTTP) • Протокол за пренос на уеб ресурси между уеб сървър и уеб клиент • Важни свойства на HTTP • Модел “заявка – отговор” • Използва адресиране чрез URL • Не поддържа състояние (stateless) • Обменя ресурси и метаданни за тях • Текстов формат
Протоколът HTTP Как HTTP работи?
Клиентско приложение Например уеб браузър Иска ресурс Извиква услуга Сървърно приложение Уеб сървър Връща поискан ресурс Предоставя услуга HTTP: заявки и отговори GET /index.html "Welcome to our Web site!"
Пример: Hyper Text Transfer Protocol HTTP заявка GET /courses/archive/spring06/cos461/ HTTP/1.1 Host: www.cs.princeton.edu User-Agent: Mozilla/4.03 <CRLF> Празният ред маркира края на хедъра на заявката HTTP отговор HTTP/1.1 200 OK Date: Mon, 6 Feb 2006 13:09:03 GMT Server: Netscape-Enterprise/3.5.1 Last-Modified: Mon, 6 Feb 2006 11:12:23 GMT+2 Content-Length: 54 <CRLF> <html><title>Hello</title> Welcome to our site</html> Празният ред маркира края на хедъра на отговора
HTTP заявки • HTTP заявката на клиента се състои от: • Ред на заявката (request line) • Метод на заявката (GET, POST, HEAD, PUT, ...), ресурс и версия на HTTP протокола • Хедъри на заявката • Предоставя различни параметри и настройки • Тяло • Съдържа данни, може да е празно <request method> <resource> HTTP/<version> <headers> <empty line> <body>
HTTP GET заявка – пример Пример за HTTP GET заявка GET /InetJava-2002-program.html HTTP/1.1 Host: inetjava.sourceforge.net Accept: */* Accept-Language: bg Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0(compatible;MSIE 6.0; Windows NT 5.0) Connection: Keep-Alive Cache-Control: no-cache <CRLF>
HTTP POST заявка – пример Пример за HTTP POST заявка POST /webmail/login.phtml HTTP/1.1 Host: www.abv.bg Accept: */* Accept-Language: bg Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0(compatible;MSIE 6.0; Windows NT 5.0) Connection: Keep-Alive Cache-Control: no-cache Content-Length: 59 <CRLF> LOGIN_USER=boris DOMAIN_NAME=abv.bg LOGIN_PASS=tajnamajna <CRLF>
HTTP условна GET заявка – пример • Връща ресурса само ако е бил модифициран на сървъра • Спестяват се ресурси (чрез кеширане) • Сървърът връща отговор “304 Not Modified” ако ресурсът не е променян • Или “200 OK” с последната версия на ресурса Пример за HTTP условна GET заявка GET /courses/archive/spring06/cos461/ HTTP/1.1 Host: www.cs.princeton.edu User-Agent: Mozilla/4.03 If-Modified-Since: Mon, 6 Feb 2006 11:12:23 GMT <CRLF>
HTTP отговор • Отговорът на заявката се състои от: • Статус ред – версия на HTTP протокола, статускод, обяснителен текст • Хедъри на отговора – предоставят метаданни • Тяло – съдържание на отговора (поискания ресурс) HTTP/<version> <status code> <status text> <headers> <empty line> <response body - requested resource>
HTTP отговор – пример Пример за HTTP отговор от сървъра HTTP/1.1 200 OK Date: Sat, 10 Aug 2002 16:09:18 GMT Server: Apache/1.3.9 (Win32) Accept-Ranges: bytes Content-Length: 73 Content-Type: text/html <html> <head> <title> Test </title> </head> Test HTML page. </html> • Уеб сървърът връща поискания ресурс заедно с метаданни за него
HTTP отговор – пример Пример за HTTP отговор с код на грешка: HTTP/1.1 404 Not Found Date: Sat, 10 Aug 2002 16:20:17 GMT Server: Apache/1.3.9 (Win32) Connection: close Content-Type: text/html <HTML><HEAD> <TITLE>404 Not Found</TITLE> </HEAD><BODY> <H1>Not Found</H1> The requested URL /img/nakov.gif was not found on this server.<P> <HR><ADDRESS>Apache/1.3.9 Server at test Port 80</ADDRESS> </BODY></HTML>
Методи на HTTP заявката • По-важни методи на HTTP заявката: • GET: връща ресурс от сървъра, евентуално изпълнява програма или скрипт (при динамично съдържание) • HEAD: връща метаданните за даден ресурс (само хедърите на отговора) • POST: обновява ресурс, изпраща данни за обработка към програма или скрипт на сървъра
HTTP кодове на отговора • Класове кодове на HTTP отговора: • 1xx: информация (напр., “100 Continue”) • 2xx: успех (напр., “200 OK”) • 3xx: пренасочване (напр., “304 Not Modified”, "302 Found") • 4xx: грешка при клиента (напр., “404 Not Found”) • 5xx: грешка на сървъра (напр., “503 Service Unavailable”) • "302 Found" се използва за пренасочване (redirect) на уеббраузъра към друг URL
Cookies • Cookie (куки) • Малък обем данни изпратени от сървъра и съхранени локално в уеб браузъра • Включват се в хедъра на бъдещи заявки към същия уеб сървър Заявка Отговор Set-Cookie: XYZ Следваща заявка Cookie: XYZ
Инфраструктурата на WWW и HTTP Въпроси?