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

More Related Content

PPTX
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
PDF
HTTP протокол
PPT
Http session
PPTX
Стажировка-2013, разработчики, занятие 7. Web, HTTP
PPTX
Файловые_архивы
PPTX
Файлообменники
PPTX
Файлообменники
PPT
Web весна 2013 лекция 2
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
HTTP протокол
Http session
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Файловые_архивы
Файлообменники
Файлообменники
Web весна 2013 лекция 2

What's hot (16)

PDF
Perl и SPDY
PPTX
Файлообменники
PDF
05 - Web-технологии. Сетевые протоколы
PPT
Web весна 2012 лекция 2
PPTX
Разработка распределенного приложение на платформе Amazon Cloud
PDF
01 - Web-технологии. Архитектура Web приложений
PDF
PDF
04 - Hadoop. HDFS Java API
PDF
Web лекция 1
PDF
Кляшко -
PDF
Web осень 2013 лекция 1
PPT
C:\fake path\website
PDF
Administrarea DSpace
PPTX
file handling in c++
PPT
Tasks (batch) in Symfony. Symfony Camp Presentation 2010 UA.
PPTX
Perl и SPDY
Файлообменники
05 - Web-технологии. Сетевые протоколы
Web весна 2012 лекция 2
Разработка распределенного приложение на платформе Amazon Cloud
01 - Web-технологии. Архитектура Web приложений
04 - Hadoop. HDFS Java API
Web лекция 1
Кляшко -
Web осень 2013 лекция 1
C:\fake path\website
Administrarea DSpace
file handling in c++
Tasks (batch) in Symfony. Symfony Camp Presentation 2010 UA.
Ad

Viewers also liked (20)

PDF
Consulta datos del paciente
PPTX
Recursos 2.0 para docentes.
PDF
COMO INSTALAR MySQL EN LINUX
DOCX
Para instalar en windows server 2008 con virtual box
PDF
Ita2014 3dia
ODT
Lista Exercicios 04
PDF
Material de Estudo - DAF
PPTX
Financial statement analysis of sing post (part 2)
DOCX
PDF
Novas tecnologias
PDF
Philippine bamboo-instruments
PDF
Situações problema que fazem parte do cotidiano de um tutor.
PDF
Services marketing
PPTX
Consumo vs consumismo
PPT
Enu market segmentation 090912
PPT
Right Based Approach
PPTX
FIne Grain Multithreading
ODP
Isabel II
DOCX
Makalah perang dingin
PDF
Conclusions in Critical Thinking
Consulta datos del paciente
Recursos 2.0 para docentes.
COMO INSTALAR MySQL EN LINUX
Para instalar en windows server 2008 con virtual box
Ita2014 3dia
Lista Exercicios 04
Material de Estudo - DAF
Financial statement analysis of sing post (part 2)
Novas tecnologias
Philippine bamboo-instruments
Situações problema que fazem parte do cotidiano de um tutor.
Services marketing
Consumo vs consumismo
Enu market segmentation 090912
Right Based Approach
FIne Grain Multithreading
Isabel II
Makalah perang dingin
Conclusions in Critical Thinking
Ad

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

PDF
06 - Web-технологии. Протокол HTTP
PPTX
Стажировка-2014, занятие 6 (часть 1). Web-приложения
PPTX
Lesson1
PDF
Лекция #2. Принцип организации World Wide Web
PPT
Информационные ресурсы и сервисы Интернета
PPT
Web осень 2012 лекция 2
PPTX
Cпецкурс 2014, занятие 7. Web-приложения
PDF
Ян Жабин "Преимущества использования протокола HTTP/2"
PDF
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...
PPTX
Введение в курс
PPTX
Введение в Web-технологии
PDF
МАИ, Сети ЭВМ, Лекция №2
PDF
Вячеслав Бирюков - HTTP и HTTPS
PPT
PPT
Web весна 2013 лекция 1
PDF
2013 09 14 http-протокол
PPTX
Урок 20: Протокол HTTP - Евгений Концевой
PPTX
Протокол HTTP
ODP
Statutes and codes of HTTP
06 - Web-технологии. Протокол HTTP
Стажировка-2014, занятие 6 (часть 1). Web-приложения
Lesson1
Лекция #2. Принцип организации World Wide Web
Информационные ресурсы и сервисы Интернета
Web осень 2012 лекция 2
Cпецкурс 2014, занятие 7. Web-приложения
Ян Жабин "Преимущества использования протокола HTTP/2"
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...
Введение в курс
Введение в Web-технологии
МАИ, Сети ЭВМ, Лекция №2
Вячеслав Бирюков - HTTP и HTTPS
Web весна 2013 лекция 1
2013 09 14 http-протокол
Урок 20: Протокол HTTP - Евгений Концевой
Протокол HTTP
Statutes and codes of HTTP

More from SmartTools (10)

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

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