Технологии разработки internet-приложений

Содержание

Слайд 2

Взаимодействие Клиент – Web-сервер запрос ответ Клиент (Web-браузер) Web-сайты Web-приложение (расширение

Взаимодействие Клиент – Web-сервер

запрос

ответ

Клиент (Web-браузер)

Web-сайты

Web-приложение (расширение сервера DLL, exe, ASP …)

Возможно – HTTPS

с SSL защищённым соединением (Secure Sockets Layer)
Слайд 3

Эволюция – Web-серверов Возврат клиенту существующих статических HTML-страниц. 1990 Через несколько

Эволюция – Web-серверов

Возврат клиенту существующих статических HTML-страниц. 1990 Через несколько лет добавлена

технология SSI (Server Side Include).
Добавлен общий интерфейс CGI (Common Getaway Interface) для запуска внешних приложений (расширений) и обменом данными через STDIN и STDOUT.
Добавлен интерфейс ISAPI (MS Internet Server API для IIS), Apache Shared Module… для работы расширений в одном адресном пространстве с сервером (часть процесса Web-сервера). Не надо ничего дополнительно запускать, обмениваться данными через файлы или STDIN/STDOUT. Теоретически они готовы одно-временно обрабатывать любое число запросов. При ошибках в таких расширениях может «вылететь» весь Web-сервер.

exe

DLL

Скриптовые технологии ASP, JSP, PHP – 1997
MS .NET –технологии (конкуренция Java):
ASP.NET FORMS 2005
MVC 2010
CORE 2016

HTML

Слайд 4

Usage of server-side programming languages for websites We count the top 10 million websites

Usage of server-side programming languages for websites

We count the top 10

million websites 
Слайд 5

Слайд 6

Стандарт URL Локальный сервер IIS протокол://пользователь:пароль@сервер:порт/путь/файл/путь в файле?параметры Например, http://vova:12345@www.donnu.edu.ua:81/hotdog/Scripts/x.exe/go?n1=20&n2=55 C:\Inetpub\wwwroot http://localhost

Стандарт URL

Локальный сервер IIS

протокол://пользователь:пароль@сервер:порт/путь/файл/путь в файле?параметры
Например,
http://vova:12345@www.donnu.edu.ua:81/hotdog/Scripts/x.exe/go?n1=20&n2=55

C:\Inetpub\wwwroot
http://localhost

Слайд 7

HTTP

HTTP

Слайд 8

HTTP – примеры запросов клиента Пример GET-запроса GET http://oak.oakland.edu/ HTTP/1.0?name1=value&name2=value2 Connection:

HTTP – примеры запросов клиента

Пример GET-запроса
GET http://oak.oakland.edu/ HTTP/1.0?name1=value&name2=value2
Connection: Keep-Alive
User-Agent: Mozilla/4.04 [en]

(Win95; I)
Host: oak.oakland.edu
Accept: image/gif, image/x-xbitmap, image/jpeg, imege/jpg, image/png, */*

По стандарту MIME (см. далее)

Пример POST-запроса
POST http://oak.oakland.edu/ HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.04 [en] (Win95; I)
Host: oak.oakland.edu
Accept: image/gif, image/x-xbitmap, image/jpeg, imege/jpg, image/png, */*
name1=value&name2=value2

Тело запроса

Параметры запроса – 2КБ

Параметры запроса – 8 МБ

Заголовки

Строка запроса

Связь закрывается если кто-то сообщит Connection: close

Строка запроса

Слайд 9

MIME: (Multipurpose Internet Mail Extensions)

MIME: (Multipurpose Internet Mail Extensions)

Слайд 10

Код возврата строки статуса Код возврата характеризует успешность выполнения операции на

Код возврата строки статуса

Код возврата характеризует успешность выполнения операции на сервере.

Все коды возврата разделены на несколько классов – 1хх, 2хх, 3хх, 4хх и 5хх. Подробнее см. Коды статуса HTTP

Пример сеанса браузера и сервера

Слайд 11

HTTP 1 и 2 HTTP/2 разрабатывался для транспортировки контента с низким

HTTP 1 и 2

HTTP/2 разрабатывался для транспортировки контента с низким временем

задержки.
http/2 – это бинарный протокол вместо текстового. Бинарные сообщения быстрее разбираются автоматически, но, в отличие от HTTP/1.x, не удобны для чтения человеком.
Мультиплексирование потоков – передача нескольких асинхронных HTTP-запросов по одному TCP-соединению. Основное время связи клиент-сервер занимает создание TCP-соединения. В HTTP/1 каждый элемент (файл) страницы загружается в новом TCP-соединении. Могут осуществляться и несколько параллельных TCP-соединений.
Сжатие заголовков (включая куки) методом HPACK.
Server Push — несколько ответов на один запрос. То есть сервер может «предвидеть» новые запросы и заранее загружать ресурсы клиенту без его непосредственного запроса.
Приоритизация запросов. Клиент может назначить приоритет потоку.
Безопасность – встроен протокол TLS (Transport Layer Security), вместо предшественника SSL (Secure Sockets Layer). Поверх него работает HTTP/2.