Upload
7bits
View
235
Download
2
Embed Size (px)
Citation preview
Курс по Java, 2016
WebTCP/IP, HTTP, HTML, ...
Курс по Java, 2016
Internet и WebInternet
● 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
Протокол HTTPHTTP (HyperText Transfer Protocol) — протокол передачи гипертекста
● Работает поверх TCP/IP● Адрес узла — URL● Не сохраняет промежуточное состояние
https://ru.wikipedia.org/wiki/HTTP
Курс по Java, 2016
URL и URIURL — Uniform Resource Locator — адреса в HTTP
URI — Uniform Resource Identifier — прочие идентификаторы в Internet
Курс по Java, 2016
URL и URIURL — Uniform Resource LocatorURI — Uniform Resource Identifier
Курс по Java, 2016
Структура протокола HTTPКаждый HTTP-запрос состоит из трёх частей:
1. Тип запроса, протокол, URI, параметры2. Заголовки3. Тело запроса
Курс по Java, 2016
Структура протокола HTTPЗапрос клиента
GET /news/recent HTTP/1.1Host: www.example.com
Курс по Java, 2016
HTTP-методы● GET● POST● PUT● DELETE
…и остальные
Курс по Java, 2016
Коды состояния HTTPКод состояния = код ответа + поясняющая фраза
200 OK404 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.1Host: ru.wikipedia.orgUser-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5Accept: text/htmlConnection: close(пустая строка)
Курс по Java, 2016
Заголовки HTTPПример ответа:
HTTP/1.1 200 OKDate: Wed, 11 Feb 2009 11:20:59 GMTServer: ApacheX-Powered-By: PHP/5.2.4-2ubuntu5wm1Last-Modified: Wed, 11 Feb 2009 11:20:59 GMTContent-Language: ruContent-Type: text/html; charset=utf-8Content-Length: 1234Connection: close(пустая строка)
Курс по Java, 2016
Cookie — небольшой фрагмент данных, отправленный сервером и хранимый на компьютере пользователя.
Сессия — набор данных на сервере, связанный с сеансом пользователя.
Идентификатор сессии хранится в cookie.
Cookie и сессии
Курс по 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
aabbr
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 клиент в JavaURL 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) и форматировать его.