Как работает веб: адресация,
сервера, протоколы
Разработчики. Занятие 7
• IP адрес
• Доменные имена
• DNS (Domain Name System)
•
•
Иерархическая адресация,
стек TCP/IP
Domain Name System
Архитектура клиент-сервер
Архитектура клиент-сервер
HTTP(HyperText Transfer Protocol) –
протокол передачи гипертекста.
• основа HTTP – технология клиент-
сервер.
• использует...
Каждый HTTP-запрос состоит
из трёх частей:
1. Стартовая строка – тип
запроса.
2. Заголовки (headers) –
параметры передачи
...
Запрос клиента
GET /news/recent HTTP/1.1
Host: www.example.com
Структура протокола HTTP
• GET
• POST
• PUT
• DELETE
• …и остальные
HTTP-методы
Коды состояния HTTP
Код состояния = код ответа +
поясняющая фраза
200 – OK
404 – Not Found
Список кодов состояния HTTP
Заголовки HTTP
Заголовки HTTP (HTTP Headers) -
это строки в HTTP-
сообщении, содержащие
разделённую двоеточием пару
имя-зн...
Примеры HTTP заголовков
• General Headers (Cache-
Control, Date)
• Request Headers (Referer, User
Agent)
• Response Header...
Заголовки HTTP
Пример запроса:
GET /wiki/страница HTTP/1.1
Host: ru.wikipedia.org
User-Agent: Mozilla/5.0 (X11; U; Linux i...
Заголовки HTTP
Пример ответа:
HTTP/1.1 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT
Server: Apache
X-Powered-By: PHP/5.2.4-2...
Cookie и сессии
Cookie – небольшой фрагмент
данных, отправленный сервером
и хранимый на компьютере
пользователя.
Developer Tools
Firefox Nightly:
Developer Tools
Chrome
HTTP сервер
Веб сервер
это сервер, принимающий
HTTP запросы от клиентов, и
выдающий им HTTP-ответы
(веб-страницы в HTML,
и...
HTTP сервера
• Apache
• Nginx
• Lighttpd
• Microsoft IIS
• Cherokee
Apache
Особенности:
• система модулей
• механизм виртуальных
хостов
• язык для описания конфигов
https://ru.wikipedia.org/...
Установка Apache
Ubuntu:
sudo apt-get install apache2 php5
/etc/apache2/ports.conf
/etc/apache2/sites-available/
/etc/apac...
Пример VirtualHost
<VirtualHost *:80>
DocumentRoot /var/www/demo
ServerName www.example.com
</VirtualHost>
Nginx
Особенности:
• асинхронная обработка
запросов
• использует меньше ресурсов
• очень быстр при отдаче
статики
https://...
Установка nginx
Ubuntu:
sudo apt-get install nginx
/etc/nginx/nginx.conf
/etc/nginx/sites-available/
/etc/nginx/sites-enab...
Пример конфигурации сервера
server {
listen 80;
server_name example.com;
root /var/www/nginx;
location / {
#…
}
}
Сервера приложений
• Apache Tomcat (Java)
• Phusion Passenger (Ruby, Python,
Node.js)
• Unicorn, thin (Ruby)
• gUnicorn, u...
Web Programming Languages
ruby
java
python
erlang
javascript
php
asp.net
node.js
scala go perl
c
c++
groovy
Компилируемые языки vs.
интерпретируемые
Возможные задержки при загрузке
страниц в вебе:
• задержки соединения
• загрузка ...
Задание
• установить и настроить Apache
и Nginx на разные порты: Nginx
– 80, Apache – 8080.
• установить PHP5
• вывести ст...
Задание
Для запуска скриптов PHP нужно:
• Apache – mod_php5
• Nginx – php5-fpm + настройка
блока location {} в конфиге.
ht...
Upcoming SlideShare
Loading in …5
×

Стажировка-2013, разработчики, занятие 7. Web, HTTP

447 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
447
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Стажировка-2013, разработчики, занятие 7. Web, HTTP

  1. 1. Как работает веб: адресация, сервера, протоколы Разработчики. Занятие 7
  2. 2. • IP адрес • Доменные имена • DNS (Domain Name System) • • Иерархическая адресация, стек TCP/IP
  3. 3. Domain Name System
  4. 4. Архитектура клиент-сервер
  5. 5. Архитектура клиент-сервер
  6. 6. HTTP(HyperText Transfer Protocol) – протокол передачи гипертекста. • основа HTTP – технология клиент- сервер. • используется повсеместно в интернете. • основной объект – URL • не сохраняет промежуточное состояние https://ru.wikipedia.org/wiki/HTTP Протокол HTTP
  7. 7. Каждый HTTP-запрос состоит из трёх частей: 1. Стартовая строка – тип запроса. 2. Заголовки (headers) – параметры передачи 3. Тело запроса. Структура протокола HTTP
  8. 8. Запрос клиента GET /news/recent HTTP/1.1 Host: www.example.com Структура протокола HTTP
  9. 9. • GET • POST • PUT • DELETE • …и остальные HTTP-методы
  10. 10. Коды состояния HTTP Код состояния = код ответа + поясняющая фраза 200 – OK 404 – Not Found Список кодов состояния HTTP
  11. 11. Заголовки HTTP Заголовки HTTP (HTTP Headers) - это строки в HTTP- сообщении, содержащие разделённую двоеточием пару имя-значение. http://ru.wikipedia.org/wiki/Заголовки_HTTP
  12. 12. Примеры HTTP заголовков • General Headers (Cache- Control, Date) • Request Headers (Referer, User Agent) • Response Headers (Age, ETag) • Entity Headers (Content- Language, Content-Encoding)
  13. 13. Заголовки 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 (пустая строка)
  14. 14. Заголовки 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 (пустая строка)
  15. 15. Cookie и сессии Cookie – небольшой фрагмент данных, отправленный сервером и хранимый на компьютере пользователя.
  16. 16. Developer Tools Firefox Nightly:
  17. 17. Developer Tools Chrome
  18. 18. HTTP сервер Веб сервер это сервер, принимающий HTTP запросы от клиентов, и выдающий им HTTP-ответы (веб-страницы в HTML, изображения, файлы)
  19. 19. HTTP сервера • Apache • Nginx • Lighttpd • Microsoft IIS • Cherokee
  20. 20. Apache Особенности: • система модулей • механизм виртуальных хостов • язык для описания конфигов https://ru.wikipedia.org/wiki/Apache
  21. 21. Установка Apache Ubuntu: sudo apt-get install apache2 php5 /etc/apache2/ports.conf /etc/apache2/sites-available/ /etc/apache2/sites-enabled/
  22. 22. Пример VirtualHost <VirtualHost *:80> DocumentRoot /var/www/demo ServerName www.example.com </VirtualHost>
  23. 23. Nginx Особенности: • асинхронная обработка запросов • использует меньше ресурсов • очень быстр при отдаче статики https://ru.wikipedia.org/wiki/Apache
  24. 24. Установка nginx Ubuntu: sudo apt-get install nginx /etc/nginx/nginx.conf /etc/nginx/sites-available/ /etc/nginx/sites-enabled/
  25. 25. Пример конфигурации сервера server { listen 80; server_name example.com; root /var/www/nginx; location / { #… } }
  26. 26. Сервера приложений • Apache Tomcat (Java) • Phusion Passenger (Ruby, Python, Node.js) • Unicorn, thin (Ruby) • gUnicorn, uWSGI (Python)
  27. 27. Web Programming Languages ruby java python erlang javascript php asp.net node.js scala go perl c c++ groovy
  28. 28. Компилируемые языки vs. интерпретируемые Возможные задержки при загрузке страниц в вебе: • задержки соединения • загрузка статики • запросы к базам данных • скорость выполнения на сервере • скорость обработки страницы в браузере
  29. 29. Задание • установить и настроить Apache и Nginx на разные порты: Nginx – 80, Apache – 8080. • установить PHP5 • вывести страницу с php кодом через Apache и Nginx на запущенных портах.
  30. 30. Задание Для запуска скриптов PHP нужно: • Apache – mod_php5 • Nginx – php5-fpm + настройка блока location {} в конфиге. http://wiki.nginx.org/PHPFcgiExample

×