SlideShare a Scribd company logo
Web, HTTP, TCP/IP
Денис Нелюбин
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)
HTTP
Кэш и файлы
Браузер
1. Разобрать URL
2. Отрезолвить имя сервера
3. Отправить HTTP запрос
4. Получить HTML
5. Распарсить и отобразить HTML
Архитектура клиент-сервер
URL и URI
URL — Uniform Resource Locator —
адреса в HTTP
URI — Uniform Resource Identifier —
прочие идентификаторы в Internet
URL и URI
URL — Uniform Resource Locator
URI — Uniform Resource Identifier
Domain Name System
https://openclassrooms.com/courses/gerer-son-nom-de-domaine
Domain Name System
https://openclassrooms.com/courses/gerer-son-nom-de-domaine
Стек TCP/IP
HTTP
IP
HTTP
TCP
Ethernet
• IEEE 802.3u, 100BASE-TX
• Витая пара, RJ-45
• MAC адрес
• Фреймы
• 1500 байт
IP
• IP адрес
• DNS
• Пакеты
• Маршрутизация
• Связность
IPv4, IPv6
TCP
• Порт
• Потоки
данных
• Гарантия
доставки
HTTP
HyperText Transfer Protocol
• Поверх TCP, порт 80
• URL — адрес ресурса
• Без сохранения состояния (stateless)
• Текстовый
HTTPS
HTTP Secure
• Поверх TCP, порт 443
• HTTP, зашифрованный TLS
• Сертификат сервера
• Сертификат клиента (не обязательно)
HTTP запрос
1. Метод, URI, параметры, протокол
2. Заголовки
3. Тело запроса
HTTP запрос
GET /news/recent HTTP/1.1
Host: www.example.com
HTTP методы
• GET
• POST
• PUT
• DELETE
…и другие
HTTP заголовки запроса
Host
User-Agent
Accept
Cookie
If-Modified-Since
Range
Authorization
Referer
Content-Type
Connection
Upgrade
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
(пустая строка)
HTTP ответ
1. Код состояния
2. Заголовки
3. Тело запроса
Коды состояния HTTP
Код состояния = код ответа +
поясняющая фраза
200 OK
303 See Other
404 Not Found
500 Internal Server Error
HTTP заголовки ответа
Server
Date
Cache-Control
Expires
Last-Modified
Location
Content-Length
Сontent-Type
Content-Disposition
Content-Range
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
(пустая строка)
Cookie и сессии
Инструменты разработчика
Инструменты разработчика
% curl http://example.com -v
* Rebuilt URL to: http://example.com/
* Trying 93.184.216.34...
* Connected to example.com
(93.184.216.34) port 80 (#0)
> GET / HTTP/1.1
...
Инструменты разработчика
https://www.getpostman.com/
• Apache
• Nginx
• Lighttpd
• Microsoft IIS
• ...
HTTP cервера
• Apache Tomcat (Java)
• Phusion Passenger (Ruby, Python, Node.
js)
• Unicorn, thin (Ruby)
• gUnicorn, uWSGI (Python)
Сервера приложений
AJAX
WebSocket
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);
}
}
HTTP/2
Почитать
https://ru.wikipedia.org/wiki/HTTP
https://ru.wikipedia.org/wiki/Список_кодов_состояния_HTTP
https://ru.wikipedia.org/wiki/Список_заголовков_HTTP
https://ru.wikipedia.org/wiki/HTTP/2
https://ru.wikipedia.org/wiki/REST
Ad

Recommended

Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
7bits
 
HTTP протокол
HTTP протокол
lectureswww lectureswww
 
Http session
Http session
Oleg Kalyta
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP
7bits
 
Файловые_архивы
Файловые_архивы
Feduard Klimkin
 
Файлообменники
Файлообменники
Inessa Cherednichenko
 
Файлообменники
Файлообменники
Inessa Cherednichenko
 
Web весна 2013 лекция 2
Web весна 2013 лекция 2
Technopark
 
Perl и SPDY
Perl и SPDY
Ilya Zelenchuk
 
Файлообменники
Файлообменники
Inessa Cherednichenko
 
05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы
Roman Brovko
 
Web весна 2012 лекция 2
Web весна 2012 лекция 2
Technopark
 
Разработка распределенного приложение на платформе Amazon Cloud
Разработка распределенного приложение на платформе Amazon Cloud
MageCloud
 
01 - Web-технологии. Архитектура Web приложений
01 - Web-технологии. Архитектура Web приложений
Roman Brovko
 
Сокеты
Сокеты
lectureswww lectureswww
 
04 - Hadoop. HDFS Java API
04 - Hadoop. HDFS Java API
Roman Brovko
 
Web лекция 1
Web лекция 1
Technosphere1
 
Кляшко -
Кляшко -
Yulia Krilova
 
Web осень 2013 лекция 1
Web осень 2013 лекция 1
Technopark
 
C:\fake path\website
C:\fake path\website
guest56c8644
 
Administrarea DSpace
Administrarea DSpace
Natalia Cheradi
 
file handling in c++
file handling in c++
Maxim Shaptala
 
Tasks (batch) in Symfony. Symfony Camp Presentation 2010 UA.
Tasks (batch) in Symfony. Symfony Camp Presentation 2010 UA.
Alexander Bezruchenko
 
Ftp
Ftp
guest5fcedeb
 
Consulta datos del paciente
Consulta datos del paciente
angiedaiana
 
Recursos 2.0 para docentes.
Recursos 2.0 para docentes.
rociomartinez88
 
COMO INSTALAR MySQL EN LINUX
COMO INSTALAR MySQL EN LINUX
Ing-D-SW-TorresKhano--ME
 
Para instalar en windows server 2008 con virtual box
Para instalar en windows server 2008 con virtual box
Antonio Villalva
 
Ita2014 3dia
Ita2014 3dia
Wellington Klypton
 
Lista Exercicios 04
Lista Exercicios 04
Regis Magalhães
 

More Related Content

What's hot (16)

Perl и SPDY
Perl и SPDY
Ilya Zelenchuk
 
Файлообменники
Файлообменники
Inessa Cherednichenko
 
05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы
Roman Brovko
 
Web весна 2012 лекция 2
Web весна 2012 лекция 2
Technopark
 
Разработка распределенного приложение на платформе Amazon Cloud
Разработка распределенного приложение на платформе Amazon Cloud
MageCloud
 
01 - Web-технологии. Архитектура Web приложений
01 - Web-технологии. Архитектура Web приложений
Roman Brovko
 
Сокеты
Сокеты
lectureswww lectureswww
 
04 - Hadoop. HDFS Java API
04 - Hadoop. HDFS Java API
Roman Brovko
 
Web лекция 1
Web лекция 1
Technosphere1
 
Кляшко -
Кляшко -
Yulia Krilova
 
Web осень 2013 лекция 1
Web осень 2013 лекция 1
Technopark
 
C:\fake path\website
C:\fake path\website
guest56c8644
 
Administrarea DSpace
Administrarea DSpace
Natalia Cheradi
 
file handling in c++
file handling in c++
Maxim Shaptala
 
Tasks (batch) in Symfony. Symfony Camp Presentation 2010 UA.
Tasks (batch) in Symfony. Symfony Camp Presentation 2010 UA.
Alexander Bezruchenko
 
Ftp
Ftp
guest5fcedeb
 
05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы
Roman Brovko
 
Web весна 2012 лекция 2
Web весна 2012 лекция 2
Technopark
 
Разработка распределенного приложение на платформе Amazon Cloud
Разработка распределенного приложение на платформе Amazon Cloud
MageCloud
 
01 - Web-технологии. Архитектура Web приложений
01 - Web-технологии. Архитектура Web приложений
Roman Brovko
 
04 - Hadoop. HDFS Java API
04 - Hadoop. HDFS Java API
Roman Brovko
 
Web осень 2013 лекция 1
Web осень 2013 лекция 1
Technopark
 
C:\fake path\website
C:\fake path\website
guest56c8644
 
Tasks (batch) in Symfony. Symfony Camp Presentation 2010 UA.
Tasks (batch) in Symfony. Symfony Camp Presentation 2010 UA.
Alexander Bezruchenko
 

Viewers also liked (20)

Consulta datos del paciente
Consulta datos del paciente
angiedaiana
 
Recursos 2.0 para docentes.
Recursos 2.0 para docentes.
rociomartinez88
 
COMO INSTALAR MySQL EN LINUX
COMO INSTALAR MySQL EN LINUX
Ing-D-SW-TorresKhano--ME
 
Para instalar en windows server 2008 con virtual box
Para instalar en windows server 2008 con virtual box
Antonio Villalva
 
Ita2014 3dia
Ita2014 3dia
Wellington Klypton
 
Lista Exercicios 04
Lista Exercicios 04
Regis Magalhães
 
Material de Estudo - DAF
Material de Estudo - DAF
Gabriela Almeida
 
Financial statement analysis of sing post (part 2)
Financial statement analysis of sing post (part 2)
Singapore Management University
 
Tcc ii
Tcc ii
Leonardo Ferraz
 
Novas tecnologias
Novas tecnologias
Elizabeth Marçola Herrgen
 
Philippine bamboo-instruments
Philippine bamboo-instruments
S Marley
 
Situações problema que fazem parte do cotidiano de um tutor.
Situações problema que fazem parte do cotidiano de um tutor.
culturaafro
 
Services marketing
Services marketing
Debayan Dutta, CFP
 
Consumo vs consumismo
Consumo vs consumismo
sextoD
 
Enu market segmentation 090912
Enu market segmentation 090912
Stephen Ong
 
Right Based Approach
Right Based Approach
Mejirushi Kanji
 
FIne Grain Multithreading
FIne Grain Multithreading
Dharmesh Tank
 
Isabel II
Isabel II
Ana Sánchez
 
Makalah perang dingin
Makalah perang dingin
Operator Warnet Vast Raha
 
Conclusions in Critical Thinking
Conclusions in Critical Thinking
lbrook
 
Consulta datos del paciente
Consulta datos del paciente
angiedaiana
 
Recursos 2.0 para docentes.
Recursos 2.0 para docentes.
rociomartinez88
 
Para instalar en windows server 2008 con virtual box
Para instalar en windows server 2008 con virtual box
Antonio Villalva
 
Philippine bamboo-instruments
Philippine bamboo-instruments
S Marley
 
Situações problema que fazem parte do cotidiano de um tutor.
Situações problema que fazem parte do cotidiano de um tutor.
culturaafro
 
Consumo vs consumismo
Consumo vs consumismo
sextoD
 
Enu market segmentation 090912
Enu market segmentation 090912
Stephen Ong
 
FIne Grain Multithreading
FIne Grain Multithreading
Dharmesh Tank
 
Conclusions in Critical Thinking
Conclusions in Critical Thinking
lbrook
 
Ad

Similar to Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP (20)

06 - Web-технологии. Протокол HTTP
06 - Web-технологии. Протокол HTTP
Roman Brovko
 
Стажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложения
7bits
 
Lesson1
Lesson1
jinol
 
WWW
WWW
Евгений Евсеев
 
Лекция #2. Принцип организации World Wide Web
Лекция #2. Принцип организации World Wide Web
Яковенко Кирилл
 
Информационные ресурсы и сервисы Интернета
Информационные ресурсы и сервисы Интернета
Andrey Dolinin
 
Web осень 2012 лекция 2
Web осень 2012 лекция 2
Technopark
 
Cпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложения
7bits
 
Ян Жабин "Преимущества использования протокола HTTP/2"
Ян Жабин "Преимущества использования протокола HTTP/2"
Provectus
 
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...
Vladislav Morgun
 
Введение в курс
Введение в курс
Eugen Dashkovsky
 
Введение в Web-технологии
Введение в Web-технологии
Eugen Dashkovsky
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2
Dima Dzuba
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
Yandex
 
REST
REST
Dmitry Buzdin
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1
Technopark
 
2013 09 14 http-протокол
2013 09 14 http-протокол
Yandex
 
Урок 20: Протокол HTTP - Евгений Концевой
Урок 20: Протокол HTTP - Евгений Концевой
Леонид Гроховский
 
Протокол HTTP
Протокол HTTP
Victoria Slinyavchook
 
Statutes and codes of HTTP
Statutes and codes of HTTP
Виктор Тыщенко
 
06 - Web-технологии. Протокол HTTP
06 - Web-технологии. Протокол HTTP
Roman Brovko
 
Стажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложения
7bits
 
Lesson1
Lesson1
jinol
 
Лекция #2. Принцип организации World Wide Web
Лекция #2. Принцип организации World Wide Web
Яковенко Кирилл
 
Информационные ресурсы и сервисы Интернета
Информационные ресурсы и сервисы Интернета
Andrey Dolinin
 
Web осень 2012 лекция 2
Web осень 2012 лекция 2
Technopark
 
Cпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложения
7bits
 
Ян Жабин "Преимущества использования протокола HTTP/2"
Ян Жабин "Преимущества использования протокола HTTP/2"
Provectus
 
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...
Vladislav Morgun
 
Введение в курс
Введение в курс
Eugen Dashkovsky
 
Введение в Web-технологии
Введение в Web-технологии
Eugen Dashkovsky
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2
Dima Dzuba
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
Yandex
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1
Technopark
 
2013 09 14 http-протокол
2013 09 14 http-протокол
Yandex
 
Урок 20: Протокол HTTP - Евгений Концевой
Урок 20: Протокол HTTP - Евгений Концевой
Леонид Гроховский
 
Ad

More from SmartTools (10)

Стажировка 2016-08-11 01 Юлия Ашаева. Техники тест-анализа
Стажировка 2016-08-11 01 Юлия Ашаева. Техники тест-анализа
SmartTools
 
Стажировка 2016-08-04 02 Юлия Ашаева. Делаем тесты лучше
Стажировка 2016-08-04 02 Юлия Ашаева. Делаем тесты лучше
SmartTools
 
Стажировка 2016-08-04 01 Денис Нелюбин. Шифрование и безопасность
Стажировка 2016-08-04 01 Денис Нелюбин. Шифрование и безопасность
SmartTools
 
Cтажировка 2016-08-02 02 Юлия Ашаева. Инструменты тестировщика
Cтажировка 2016-08-02 02 Юлия Ашаева. Инструменты тестировщика
SmartTools
 
Стажировка 2016-07-27 02 Денис Нелюбин. PostgreSQL и jsonb
Стажировка 2016-07-27 02 Денис Нелюбин. PostgreSQL и jsonb
SmartTools
 
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
SmartTools
 
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
SmartTools
 
Стажировка 2016-07-07 02 Евгений Тюменцев. Акторная модель
Стажировка 2016-07-07 02 Евгений Тюменцев. Акторная модель
SmartTools
 
Стажировка 2016-07-06 03 Евгений Тарасенко. Основы HTML и CSS (часть 1).
Стажировка 2016-07-06 03 Евгений Тарасенко. Основы HTML и CSS (часть 1).
SmartTools
 
Стажировка 2016-07-06 02 Денис Нелюбин. Linux и git.
Стажировка 2016-07-06 02 Денис Нелюбин. Linux и git.
SmartTools
 
Стажировка 2016-08-11 01 Юлия Ашаева. Техники тест-анализа
Стажировка 2016-08-11 01 Юлия Ашаева. Техники тест-анализа
SmartTools
 
Стажировка 2016-08-04 02 Юлия Ашаева. Делаем тесты лучше
Стажировка 2016-08-04 02 Юлия Ашаева. Делаем тесты лучше
SmartTools
 
Стажировка 2016-08-04 01 Денис Нелюбин. Шифрование и безопасность
Стажировка 2016-08-04 01 Денис Нелюбин. Шифрование и безопасность
SmartTools
 
Cтажировка 2016-08-02 02 Юлия Ашаева. Инструменты тестировщика
Cтажировка 2016-08-02 02 Юлия Ашаева. Инструменты тестировщика
SmartTools
 
Стажировка 2016-07-27 02 Денис Нелюбин. PostgreSQL и jsonb
Стажировка 2016-07-27 02 Денис Нелюбин. PostgreSQL и jsonb
SmartTools
 
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
SmartTools
 
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
SmartTools
 
Стажировка 2016-07-07 02 Евгений Тюменцев. Акторная модель
Стажировка 2016-07-07 02 Евгений Тюменцев. Акторная модель
SmartTools
 
Стажировка 2016-07-06 03 Евгений Тарасенко. Основы HTML и CSS (часть 1).
Стажировка 2016-07-06 03 Евгений Тарасенко. Основы HTML и CSS (часть 1).
SmartTools
 
Стажировка 2016-07-06 02 Денис Нелюбин. Linux и git.
Стажировка 2016-07-06 02 Денис Нелюбин. Linux и git.
SmartTools
 

Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP