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) — иерархическая структура серверов
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 и сессии
24. Курс по Java, 2016
Сервера
Веб-сервер (HTTP-сервер) — это сервер, принимающий HTTP запросы от
клиентов, и выдающий им HTTP-ответы (веб-страницы в HTML,
изображения, файлы)
25. Курс по Java, 2016
HTTP-сервера:
● Apache
● Nginx
● Lighttpd
● Microsoft IIS
Сервера
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, обработка элементов