ݺߣ

ݺߣShare a Scribd company logo
Курс по Java, 2016
Web
TCP/IP, HTTP, HTML, ...
Курс по Java, 2016
Internet и Web
Internet
● ARPANET
● 1970-e — -1980-e
● TCP/IP
● E-mail, FTP, IRC…
Web (World Wide Web)
● CERN (Tim Berners-Lee)
● 1989
● HTTP
● HTML (hypertext)
Курс по Java, 2016
Иерархическая адресация, стек TCP/IP
● У каждого узла есть IP-адрес
● У сайтов — доменные имена
● DNS (Domain Name System) — иерархическая структура серверов
Курс по Java, 2016
IPv4, IPv6
Курс по Java, 2016
Domain Name System
Курс по Java, 2016
Архитектура клиент-сервер
Курс по Java, 2016
Архитектура клиент-сервер
Курс по Java, 2016
Стек TCP/IP
Курс по Java, 2016
Курс по Java, 2016
Курс по Java, 2016
Протокол HTTP
HTTP (HyperText Transfer Protocol) — протокол передачи гипертекста
● Работает поверх TCP/IP
● Адрес узла — URL
● Не сохраняет промежуточное состояние
https://ru.wikipedia.org/wiki/HTTP
Курс по Java, 2016
URL и URI
URL — Uniform Resource Locator — адреса в HTTP
URI — Uniform Resource Identifier — прочие идентификаторы в Internet
Курс по Java, 2016
URL и URI
URL — Uniform Resource Locator
URI — Uniform Resource Identifier
Курс по Java, 2016
Структура протокола HTTP
Каждый HTTP-запрос состоит из трёх частей:
1. Тип запроса, протокол, URI, параметры
2. Заголовки
3. Тело запроса
Курс по Java, 2016
Структура протокола HTTP
Запрос клиента
GET /news/recent HTTP/1.1
Host: www.example.com
Курс по Java, 2016
HTTP-методы
● GET
● POST
● PUT
● DELETE
…и остальные
Курс по Java, 2016
Коды состояния HTTP
Код состояния = код ответа + поясняющая фраза
200 OK
404 Not Found
Список кодов состояния HTTP
Курс по Java, 2016
Заголовки HTTP
Заголовки HTTP (HTTP Headers) — это строки в HTTP-сообщении,
содержащие разделённую двоеточием пару имя-значение.
http://ru.wikipedia.org/wiki/Заголовки_HTTP
Курс по Java, 2016
Примеры HTTP заголовков
● General Headers
○ Cache-Control
○ Date
● Request Headers
○ Referer
○ User Agent
● Response Headers
○ Age
○ ETag
● Entity Headers
○ Content-Type
○ Content-Language
○ Content-Encoding
Курс по Java, 2016
Заголовки HTTP
Пример запроса:
GET /wiki/страница HTTP/1.1
Host: ru.wikipedia.org
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5)
Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: close
(пустая строка)
Курс по Java, 2016
Заголовки HTTP
Пример ответа:
HTTP/1.1 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT
Server: Apache
X-Powered-By: PHP/5.2.4-2ubuntu5wm1
Last-Modified: Wed, 11 Feb 2009 11:20:59 GMT
Content-Language: ru
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Connection: close
(пустая строка)
Курс по Java, 2016
Cookie — небольшой фрагмент данных, отправленный сервером и хранимый
на компьютере пользователя.
Сессия — набор данных на сервере, связанный с сеансом пользователя.
Идентификатор сессии хранится в cookie.
Cookie и сессии
Курс по Java, 2016
Инструменты разработчика
Курс по Java, 2016
Сервера
Веб-сервер (HTTP-сервер) — это сервер, принимающий HTTP запросы от
клиентов, и выдающий им HTTP-ответы (веб-страницы в HTML,
изображения, файлы)
Курс по Java, 2016
HTTP-сервера:
● Apache
● Nginx
● Lighttpd
● Microsoft IIS
Сервера
Курс по Java, 2016
Сервера приложений:
● Apache Tomcat (Java)
● Phusion Passenger (Ruby, Python, Node.js)
● Unicorn, thin (Ruby)
● gUnicorn, uWSGI (Python)
Сервера
Курс по Java, 2016
● HTML 4.0 (1999)
● XHTML 1.x (2001-2008)
● XHTML 2
● HTML 5.x
Языки разметки
Курс по Java, 2016
<!DOCTYPE html>
<html>
<head>
<meta charset=“UTF-8”>
<title>HTML 5 demo</title>
</head>
<body>
Пример страницы
</body>
</html>
Пример страницы
Курс по Java, 2016
a
abbr
form
h1, h2, h3, h4, h5, h6
p
iframe
img
strong, small, i
ul, li table, thead,
tbody
title
div
Тэги HTML
Курс по Java, 2016
CSS - каскадные таблицы стилей.
Используется для задания:
● цветов, шрифтов элементов
● теней, фона
● расположение блоков, отступов, границ
● анимации
CSS
Курс по Java, 2016
DOM — представление структуры HTML документа в иерархическом виде.
DOM, обработка элементов
Курс по Java, 2016
Примеры CSS селекторов:
p { color: red; }
#container { width: 1200px; }
a.hidden { display: none; }
header p { color: red; }
.main .news { color: red; }
DOM, обработка элементов
Курс по Java, 2016
AJAX
Курс по Java, 2016
WebSocket
Курс по Java, 2016
HTTP клиент в Java
URL url = new URL("http://example.com");
URLConnection connection = url.openConnection();
try (InputStream in = connection.getInputStream()) {
int b;
while ((b = in.read()) >= 0) {
System.out.write(b);
}
}
Курс по Java, 2016
Домашнее задание
Скачивать с GitHub код по HTTP (raw) и форматировать его.
annie.tarasenko@7bits.it denis.nelubin@7bits.it

More Related Content

Курс Java-2016. Занятие 09. Web

  • 1. Курс по Java, 2016 Web TCP/IP, HTTP, HTML, ...
  • 2. Курс по Java, 2016 Internet и Web Internet ● ARPANET ● 1970-e — -1980-e ● TCP/IP ● E-mail, FTP, IRC… Web (World Wide Web) ● CERN (Tim Berners-Lee) ● 1989 ● HTTP ● HTML (hypertext)
  • 3. Курс по Java, 2016 Иерархическая адресация, стек TCP/IP ● У каждого узла есть IP-адрес ● У сайтов — доменные имена ● DNS (Domain Name System) — иерархическая структура серверов
  • 4. Курс по Java, 2016 IPv4, IPv6
  • 5. Курс по Java, 2016 Domain Name System
  • 6. Курс по Java, 2016 Архитектура клиент-сервер
  • 7. Курс по Java, 2016 Архитектура клиент-сервер
  • 8. Курс по Java, 2016 Стек TCP/IP
  • 11. Курс по Java, 2016 Протокол HTTP HTTP (HyperText Transfer Protocol) — протокол передачи гипертекста ● Работает поверх TCP/IP ● Адрес узла — URL ● Не сохраняет промежуточное состояние https://ru.wikipedia.org/wiki/HTTP
  • 12. Курс по Java, 2016 URL и URI URL — Uniform Resource Locator — адреса в HTTP URI — Uniform Resource Identifier — прочие идентификаторы в Internet
  • 13. Курс по Java, 2016 URL и URI URL — Uniform Resource Locator URI — Uniform Resource Identifier
  • 14. Курс по Java, 2016 Структура протокола HTTP Каждый HTTP-запрос состоит из трёх частей: 1. Тип запроса, протокол, URI, параметры 2. Заголовки 3. Тело запроса
  • 15. Курс по Java, 2016 Структура протокола HTTP Запрос клиента GET /news/recent HTTP/1.1 Host: www.example.com
  • 16. Курс по Java, 2016 HTTP-методы ● GET ● POST ● PUT ● DELETE …и остальные
  • 17. Курс по Java, 2016 Коды состояния HTTP Код состояния = код ответа + поясняющая фраза 200 OK 404 Not Found Список кодов состояния HTTP
  • 18. Курс по Java, 2016 Заголовки HTTP Заголовки HTTP (HTTP Headers) — это строки в HTTP-сообщении, содержащие разделённую двоеточием пару имя-значение. http://ru.wikipedia.org/wiki/Заголовки_HTTP
  • 19. Курс по Java, 2016 Примеры HTTP заголовков ● General Headers ○ Cache-Control ○ Date ● Request Headers ○ Referer ○ User Agent ● Response Headers ○ Age ○ ETag ● Entity Headers ○ Content-Type ○ Content-Language ○ Content-Encoding
  • 20. Курс по Java, 2016 Заголовки HTTP Пример запроса: GET /wiki/страница HTTP/1.1 Host: ru.wikipedia.org User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5 Accept: text/html Connection: close (пустая строка)
  • 21. Курс по Java, 2016 Заголовки HTTP Пример ответа: HTTP/1.1 200 OK Date: Wed, 11 Feb 2009 11:20:59 GMT Server: Apache X-Powered-By: PHP/5.2.4-2ubuntu5wm1 Last-Modified: Wed, 11 Feb 2009 11:20:59 GMT Content-Language: ru Content-Type: text/html; charset=utf-8 Content-Length: 1234 Connection: close (пустая строка)
  • 22. Курс по Java, 2016 Cookie — небольшой фрагмент данных, отправленный сервером и хранимый на компьютере пользователя. Сессия — набор данных на сервере, связанный с сеансом пользователя. Идентификатор сессии хранится в cookie. Cookie и сессии
  • 23. Курс по Java, 2016 Инструменты разработчика
  • 24. Курс по Java, 2016 Сервера Веб-сервер (HTTP-сервер) — это сервер, принимающий HTTP запросы от клиентов, и выдающий им HTTP-ответы (веб-страницы в HTML, изображения, файлы)
  • 25. Курс по Java, 2016 HTTP-сервера: ● Apache ● Nginx ● Lighttpd ● Microsoft IIS Сервера
  • 26. Курс по Java, 2016 Сервера приложений: ● Apache Tomcat (Java) ● Phusion Passenger (Ruby, Python, Node.js) ● Unicorn, thin (Ruby) ● gUnicorn, uWSGI (Python) Сервера
  • 27. Курс по Java, 2016 ● HTML 4.0 (1999) ● XHTML 1.x (2001-2008) ● XHTML 2 ● HTML 5.x Языки разметки
  • 28. Курс по Java, 2016 <!DOCTYPE html> <html> <head> <meta charset=“UTF-8”> <title>HTML 5 demo</title> </head> <body> Пример страницы </body> </html> Пример страницы
  • 29. Курс по Java, 2016 a abbr form h1, h2, h3, h4, h5, h6 p iframe img strong, small, i ul, li table, thead, tbody title div Тэги HTML
  • 30. Курс по Java, 2016 CSS - каскадные таблицы стилей. Используется для задания: ● цветов, шрифтов элементов ● теней, фона ● расположение блоков, отступов, границ ● анимации CSS
  • 31. Курс по Java, 2016 DOM — представление структуры HTML документа в иерархическом виде. DOM, обработка элементов
  • 32. Курс по Java, 2016 Примеры CSS селекторов: p { color: red; } #container { width: 1200px; } a.hidden { display: none; } header p { color: red; } .main .news { color: red; } DOM, обработка элементов
  • 33. Курс по Java, 2016 AJAX
  • 34. Курс по Java, 2016 WebSocket
  • 35. Курс по Java, 2016 HTTP клиент в Java URL url = new URL("http://example.com"); URLConnection connection = url.openConnection(); try (InputStream in = connection.getInputStream()) { int b; while ((b = in.read()) >= 0) { System.out.write(b); } }
  • 36. Курс по Java, 2016 Домашнее задание Скачивать с GitHub код по HTTP (raw) и форматировать его. annie.tarasenko@7bits.it denis.nelubin@7bits.it