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

Post on 11-Feb-2017

228 views 2 download

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

Курс по 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

Инструменты разработчика

Курс по 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) и форматировать его.

annie.tarasenko@7bits.it denis.nelubin@7bits.it