Table of Contents

Все что должен знать DevOps про HTML, HTTP и REST

Реклама

Техническое задание

Запись вебинара

Шаг 1. HTML

Задачи:

  1. опубликовать информацию на web странице
  2. сделать редирект с одной web страницы на другую
student@debian:~$ sudo -i

debian:~# docker exec -ti http-app bash

root@5da33f8442d4:/usr/local/apache2# cat htdocs/index.html

debian:~# HTTP_APP_ROOT=$(docker inspect http-app -f {{.GraphDriver.Data.MergedDir}})

debian:~# cat ${HTTP_APP_ROOT}/usr/local/apache2/htdocs/index.html

Шаг 2. HTTP

Задачи:

  1. сохранение реального IP адреса клиента
  2. доступ к приложению через https реверс прокси

Анализ заголовков через в сетевом трафике

student@debian:~$ sudo tcpdump -nniany -A host 172.17.0.2 -w dump1.pcap

Анализ заголовков с использованием журнала

debian:~# docker logs http-app -f

debian:~# cat ${HTTP_APP_ROOT}/usr/local/apache2/conf/httpd.conf
...
    LogFormat "%h %l %u %t \"%r\" %>s %b %{X-Forwarded-For}i" common
...
debian:~# ps ax | grep http

debian:~# kill -HUP NNNNN

Управление заголовками для доступа к Web приложению

admincmd> notepad C:\Windows\System32\drivers\etc\hosts
192.168.M.N kc.corp.un
...
# cp /etc/nginx/sites-available/http-app /etc/nginx/sites-available/kc-app

# cat /etc/nginx/sites-available/kc-app
...
        server_name kc.corp.un;
...
        location / {
            proxy_pass http://172.18.0.2:8080;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Proto $scheme;
        }

Шаг 3. REST

Задачи:

  1. Проверить работоспособность приложения
  2. Управлять данными в приложении
debian:~# cat /etc/hosts
...
192.168.M.N kc.corp.un
  1. Получаем токен для авторизации (POST)
  2. Выводим список пользователей (GET)
  3. Добавляем user1 (POST)
  4. Обновляем информацию (добавляем атрибуты) user1 (PUT)
  5. Находим информацию по user1 (GET …?q=…)
  6. Назначаем пароль и проверяем возможность подключиться https://kc.corp.un/realms/master/account/
  7. Удаляем учетную запись user1 (DELETE)

Что не вошло в вебинар

https://kc.corp.un/realms/master/protocol/openid-connect/token

username:admin
password:strongpassword
grant_type:password
client_id:admin-cli