32
Спецкурс ОмГУ-2014 Web-приложения Занятие 7

Cпецкурс 2014, занятие 7. Web-приложения

  • Upload
    7bits

  • View
    97

  • Download
    1

Embed Size (px)

DESCRIPTION

Занятия на спецкурсе в ОмГУ 2014

Citation preview

Page 1: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Web-приложения

Занятие 7

Page 2: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

• У каждого узла есть IP-адрес• У сайтов – доменные имена• DNS (Domain Name System) –

иерархическая структура серверов

Иерархическая адресация, стек TCP/IP

Page 3: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Domain Name System

Page 4: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Архитектура клиент-сервер

Page 5: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Архитектура клиент-сервер

Page 6: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

HTTP (HyperText Transfer Protocol) – протокол передачи гипертекста• Работает поверх TCP/IP• Адрес узла – URL• Не сохраняет промежуточное

состояние

https://ru.wikipedia.org/wiki/HTTP

Протокол HTTP

Page 7: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Каждый HTTP-запрос состоит из 3-х частей:1. Тип запроса, протокол, URL, параметры2. Заголовки3. Тело запроса

Структура протокола HTTP

Page 8: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Запрос клиента

GET /news/recent HTTP/1.1Host: www.example.com

Структура протокола HTTP

Page 9: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

• GET• POST• PUT• DELETE• …и остальные

HTTP-методы

Page 10: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Коды состояния HTTP

Код состояния = код ответа + поясняющая фраза

200 – OK404 – Not Found

Список кодов состояния HTTP

Page 11: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Заголовки HTTP

Заголовки HTTP (HTTP Headers) -это строки в HTTP-сообщении, содержащие разделённую двоеточием пару имя-значение.

http://ru.wikipedia.org/wiki/Заголовки_HTTP

Page 12: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Примеры HTTP заголовков

• General Headers (Cache-Control, Date)

• Request Headers (Referer, User Agent)

• Response Headers (Age, ETag)• Entity Headers (Content-Language,

Content-Encoding)

Page 13: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Заголовки 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(пустая строка)

Page 14: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Заголовки 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(пустая строка)

Page 15: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Cookie и сессии

Cookie – небольшой фрагмент данных, отправленный сервером и хранимый на компьютере пользователя.

Page 16: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

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

Firebug (встроен в Firefox Nightly):

Page 17: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

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

Chrome developer tools:

Page 18: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Сервера

Веб-сервер (HTTP-сервер): это сервер, принимающий HTTP запросы от клиентов, и выдающий им HTTP-ответы (веб-страницы в HTML, изображения, файлы)

Page 19: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Сервера

HTTP-сервера:• Apache• Nginx• Lighttpd• Microsoft IIS• Cherokee

Page 20: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Сервера

Особенности Apache:• Система модулей для языков• Механизм виртуальных

хостов для портов• Язык для описания конфиговhttps://ru.wikipedia.org/wiki/Apache

Page 21: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Сервера

Установка Apache на Ubuntu:

sudo apt-get install apache2 php5

/etc/apache2/ports.conf/etc/apache2/sites-available//etc/apache2/sites-enabled/

Page 22: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Сервера

Пример Apache для статики:

<VirtualHost *:80>DocumentRoot /var/www/demoServerName www.example.com

</VirtualHost>

Page 23: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Сервера

Особенности Nginx:• Асинхронная обработка

запросов• Использует потоки вместо

процессов• Идеален для статикиhttps://ru.wikipedia.org/wiki/Nginx

Page 24: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Сервера

Установка Nginx на Ubuntu:sudo apt-get install nginx

/etc/nginx/nginx.conf/etc/nginx/sites-available//etc/nginx/sites-enabled/

Page 25: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Сервера

Пример Nginx для статики:server {listen 80;server_name example.com;root /var/www/nginx;

location / {#…

}}

Page 26: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Сервера

Сервера приложений:• Apache Tomcat (Java)• Phusion Passenger (Ruby, Python,

Node.js)• Unicorn, thin (Ruby)• gUnicorn, uWSGI (Python)

Page 29: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Выбор инструмента

Возможные задержки при загрузке страниц в вебе:• задержки соединения• загрузка статики• запросы к базам данных• скорость выполнения на сервере• скорость обработки страницы в

браузере

Page 30: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Выбор инструмента

Что зависит от выбора языка и фреймворка:• Скорость выполнения на

сервере• Эффективность разработки• Эффективность поддержки

Page 31: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Выбор инструмента

Лучшего языка или фреймворка не существует!

Каждой задаче – свой инструмент.

Page 32: Cпецкурс 2014, занятие 7. Web-приложения

Спецкурс ОмГУ-2014

Email: [email protected]

Skype: anna_tarasenko

Web: 7bits.ru

Вопросы?