По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В данной краткой статье поговорим о разнице между HTTP и HTTPS.
Видео: HTTP или HTTPS – как работает и в чем разница?
Что такое HTTP?
HTTP расшифровывается как Hyper Text Transfer Protocol - Протокол Передачи Гипертекста. HTTP предлагает набор правил и стандартов, которые регулируют способ передачи любой информации во Всемирной паутине. HTTP предоставляет стандартные правила для взаимодействия веб-браузеров и серверов. По умолчанию данный протокол использует 80-ый порт.
HTTP - это сетевой протокол прикладного уровня, созданный поверх TCP. HTTP использует структурированный текст гипертекста, который устанавливает логическую связь между узлами, содержащими текст. Он также известен как «протокол без состояния», поскольку каждая команда выполняется отдельно, без использования ссылки на предыдущую команду запуска.
Что такое HTTPS?
HTTPS - это защищенный протокол передачи гипертекста (Hyper Text Transfer Protocol Secure). Это продвинутая и безопасная версия HTTP. Для коммуникации данных используется 443-ий порт. Данный протокол позволяет обеспечить безопасность транзакций путем шифрования всего трафика с помощью SSL. Это комбинация протокола SSL/TLS и HTTP. Обеспечивает зашифрованную и безопасную идентификацию сетевого сервера.
HTTPS также позволяет создать защищенное зашифрованное соединение между сервером и браузером. Он обеспечивает двунаправленную безопасность данных. Это помогает защитить потенциально конфиденциальную информацию от кражи.
В протоколе HTTPS SSL транзакции согласовываются с помощью алгоритма шифрования на основе ключа. Обычно длина ключа составляет 40 или 128 бит.
Ключевые различия
В HTTP отсутствует механизм защиты для шифрования данных, в то время как HTTPS для защиты связи между сервером и клиентом использует цифровой сертификат SSL или TLS.
HTTP работает на уровне приложения, а HTTPS - на транспорном уровне.
HTTP по умолчанию работает по 80-ому порту, а HTTPS – через 443-му.
HTTP передает данные открытым текстом, а HTTPS - зашифрованным.
HTTP по сравнению с HTTPS работает быстрее, поскольку последнему нужно время для шифрования канала связи.
Преимущества HTTP:
HTTP может быть реализован на основе другого протокола в Интернете или в других сетях;
Страницы HTTP хранятся в кэше компьютера и Интернета, поэтому доступ к ним осуществляется быстрее;
Кроссплатформенность
Не нуждается в поддержке среды выполнения
Можно использовать через брандмауэры. Возможны глобальные приложения
Не ориентирован на подключение; таким образом, отсутствуют накладные расходы на сеть для создания и поддержания состояния сеанса и информации
Преимущества HTTPS
В большинстве случаев сайты, работающие по протоколу HTTPS, будут перенаправлены. Поэтому даже если ввести HTTP://, он перенаправит на https через защищенное соединение
Это позволяет пользователям выполнять безопасные транзакции электронной коммерции, такие как онлайн-банкинг.
Технология SSL защищает всех пользователей и создает доверие
Независимый орган проверяет личность владельца сертификата. Таким образом, каждый SSL-сертификат содержит уникальную аутентифицированную информацию о владельце сертификата.
Ограничения HTTP
Нет защиты информации, так как любой может прослушать и увидеть передаваемый контент
Обеспечение целостности данных является большой проблемой, поскольку есть возможность изменения содержимого на лету во время передачи.
Не знаешь кто на противоположной стороне. Любой, кто перехватит запрос, может получить имя пользователя и пароль.
Ограничения HTTPS
Протокол HTTPS не может остановить кражу конфиденциальной информации со страниц, кэшированных в браузере
Данные SSL могут быть зашифрованы только во время передачи по сети. Поэтому он не может очистить текст в памяти браузера
HTTPS ввиду вычислений может увеличить задержки во время передачи данных.
Разница между HTTP и HTTPS
В приведенной ниже таблице показано различие между HTTP и HTTPS:
ПараметрHTTPHTTPSНазваниеHypertext Transfer ProtocolHypertext Transfer Protocol SecureБезопасностьМенее безопасен. Данные могут быть доступны для злоумышленниковОн предназначен для предотвращения доступа хакеров к критически важной информации. Защищен атак типа Man-in The-Middle.ПортПо умолчанию – 80По умолчанию 443Начинается наhttp://https://Область примененияЭто хорошо подходит для веб-сайтов общего назначения, таких как блоги.*Если на сайте нужно вводить конфиденциальную информацию, то данный протокол подходить большеЗащитаНет защиты передаваемой информации. Любой, кто прослушивает трафик может получить доступ к даннымHTTPS шифрует данные перед передачей их по сети. На стороне получателя, данные расшифровываются.ПротоколРаботает с TCP/IPНет специального протокола. Работает поверх HTTP, но использует TLS/SSL шифрование.Проверка названия доменаСайтам с HTTP не нужен SSLДля работы с HTTPS нужен SSL сертификатШифрование данныхНе использует шифрованиеДанные шифруютсяРейтинг поискаНе влияет на рейтинг поискаПомогает увеличивать поисковый рейтингСкоростьБыстро**Относительно медленноУязвимостьУязвима для злоумышленниковЛучше защищен, использует шифрование данных.
*В настоящее время рекомендуется получать сертификат всем сайтам, так как это повышает доверие к нему. Тем более, что сертификат можно получить даже бесплатно.
**По современным меркам скорости подключения к Интернету, эта разница почти не ощущается.
Типы SSL/TLS-сертификатов, используемых с HTTPS
Теперь поговорим о типах SSL/TLS сертификатов, используемых с HTTPS:
Проверка домена
Проверка домена проверяет, является ли лицо, подающее заявку на сертификат, владельцем доменного имени. Этот тип проверки обычно занимает от нескольких минут до нескольких часов.
Проверка организации
Центр сертификации не только проверяет принадлежность домена, но и идентифицирует владельцев. Это означает, что владельцу может быть предложено предоставить документ, удостоверяющий личность.
Расширенная проверка
Расширенная проверка - это самый верхний уровень проверки. Она включает проверку владения доменом, личность владельца, а также подтверждение регистрации компании.
В 2013 году, вместе с бета – релизом Asterisk 12 астериск - комьюнити был представлен новый API, который получил гордое название - ARI (Asterisk REST Interface). Что это и как им пользоваться, если вы любите php - рассказываем в статье.
Зачем Asterisk нужен новый API?
Все мы привыкли, что Asterisk имеет два интерфейса: Asterisk Manager Interface (AMI) и Asterisk Gateway Interface (AGI). AMI это асинхронный интерфейс, который используется для управления вызовами, инициацией звонков и всем, что попадает под определение «call control». AGI, в свою очередь, предоставляет синхронный интерфейс манипуляции одним каналом, являясь своего рода «прослойкой» между диалпланом и внешними скриптами. Важно отметить, что на время выполнения, AGI блокирует поток.
В связке, оба интерфейса неплохо справляются с задачами, связанными с различного рода манипуляциями с каналами и диалпланом Asterisk. Но разработка сложного и многоуровневого приложения может стать по настоящему трудной задачей для разработчика, в которой придется задействовать AGI и AMI одновременно.
Именно в этот момент на помощь приходит ARI (Asterisk REST Interface). Отметим, что ARI не заменяет AGI или AMI. Новый интерфейс позволяет разработчикам заменить управление на уровне диалплана внешними приложениями (скриптами). Тем самым, ARI упрощает жизнь разработчикам бизнес – приложений, которые используют Asterisk в качестве коммуникационной платформы.
ARI дает девелоперам высокоуровневый REST интерфейс, через который доступно управление базовыми операциями Asterisk, например, такими как каналы, мосты (бриджи), конечные устройства, управление медиа – потоками, записью разговоров и так далее. Информация об этих объектах передается в асинхронном режиме событиями JSON поверх WebSocket.
Только представьте: раньше, чтобы овладеть подобным набором инструментов, вам необходимо было иметь навыки программирования на C и разработать свой собственный модуль и внедрить в Asterisk. С использованием ARI, приложения могут быть написаны на вашем любимом языке, будь то Python, Ruby, PHP или JavaScript! Для удобства, ниже мы привели библиотеки и ссылки на них для различных языков программирования:
Библиотека
Язык программирования
Ресурс
ari4java
Java
https://github.com/l3nz/ari4java
ari-py
Python
https://github.com/asterisk/ari-py
AsterNET.ARI
C#/.NET
https://asternetari.codeplex.com/
node-ari-client
JavaScript (node)
https://github.com/asterisk/node-ari-client
phpari
PHP
http://www.phpari.org/
Подведем итог: новый интерфейс ARI дает новые возможности не только для Asterisk комьюнити, но и для разработчиков бизнес приложений. От слов к делу, переходим к настройке.
Настройка phpari
Поскольку ARI это технология, базирующаяся на WebSocket, первым делом необходимо внести некоторые настройки в файл http.conf, который находится в директории /etc/asterisk/:
cd /etc/asterisk/
vim http.conf
Приводим файл к следующему виду:
[general]
enabled = yes
bindaddr = 127.0.0.1
Далее, «сетапим» файл ari.conf, открыв его командой vim ari.conf:
[general]
enabled = yes
pretty = yes
[имя_вашего_пользователя]
type = user
read_only = no
password = пароль_для_пользователя
В секции [имя_вашего_пользователя], укажите юзернейм, а в секции password его соответствующий пароль. Перегружаем Asterisk:
asterisk –rv
core restart now
Теперь мы установим phpari. Установку будем производить с помощью composer:
Если у вас не установлен composer, вы можете скачать его по этой ссылке.
Открываем для редактирования файл composer.json и добавляем в него следующий код:
{
"require": {
"php": ">=5.3.9",
"educoder/pest": "1.0.0",
"devristo/phpws": "dev-master",
"greenfieldtech-nirs/phpari": "dev-master"
}
}
После чего запускаем команду:
composer install
Необходимая библиотека будет загружена. Переходим в директорию /vendor/greenfieldtech-nirs/phpari и открываем для редактирования файл phpari.ini:
cd /vendor/greenfieldtech-nirs/phpari
vim phpari.ini
Редактируем следующим образом:
[general]
debug=0
logfile=console ; #если хотите логировать ARI в консоль, то оставьте данное поле без изменений. Если хотите логировать в файл, то укажите полный путь к нему;
[asterisk_ari]
username= имя_вашего_пользователя
password= пароль_для_пользователя
host=IP_адрес_Asterisk
port=8088
endpoint=/ari
transport=ws ; #нешфированный транспорт, wss для шифрования;
Отлично. Теперь давайте соберем простенький .php скрипт, который будет показывать активные каналы. Для этого, в директории, где у нас находится скачанная библиотека phpari и соответственно директория /vendor, создаем файл ari.php и наполяем его следующей конфигурацией:
require_once "vendor/autoload.php";
$ariCon = new phpari();
print_r($ariCon->channels()->channel_list());
Сохраняем. Сделайте 1 активный вызов на вашем Asterisk (например, позвонив с софтфона на софтфон). Переходим в консоль, и даем команду на выполнение этого скрипта:
php ari.php
Если все сделано правильно, в консоли мы увидим JSON – ответ, в котором будут переданы параметры активного канала: context, exten, caller, accountcode и прочие.
Как вызвать приложение?
Вызвать приложение из диалплана очень просто. Для этого, необходимо использовать Stasis:
exten => _XXXX,1,Stasis(ваше_приложение)
Что именно умеет ARI?
Кратко поговорим о том, какие именно операции умеет совершать ARI:
Метод
Путь
Описание
GET
/channels/{channelId}
Получить информацию о канале с channelId
POST
/channels/{channelId}
Создать канал с указанным channelId
DELETE
/channels/{channelId}
Удалить (Hang Up) канал
POST
/channels/{channelId}/continue
Возврат в диалплан (выход из скрипта)
POST
/channels/{channelId}/continue
Возврат в диалплан (выход из скрипта)
POST
/channels/{channelId}/answer
Ответить на канал
POST
/channels/{channelId}/mute
"Замьютить" канал
DELETE
/channels/{channelId}/mute
"Снять мьют" с канала
POST
/channels/{channelId}/hold
Поставить вызов на удержание
DELETE
/channels/{channelId}/hold
Снять вызов с удержания
POST
/channels/{channelId}/play
Воспроизвести медиа файл
POST
/channels/{channelId}/record
Начать запись
GET
/bridges
Лист всех активных мостов (бриджей)
GET
/bridges
Лист всех активных мостов (бриджей)
POST
/bridges/{bridgeId}/addChannel
Добавить канал к бриджу
POST
/bridges/{bridgeId}/removeChannel
Удалить канал с бриджа
GET
/endpoints
Список оконечных устройств
GET
/endpoints/{tech}
Список оконечных устройств, которые функционируют по указанной технологии
GET
/endpoints/{tech}/{resource}
Детальная информация по оконечному устройству
GET
/sounds
Список звуков
GET
/sounds/{soundId}
Список звуков
Ну просто очень частый кейс: создается виртуальная машина на Linux ОС (Hyper-V или VMware, не важно), которая работает длительное время. Но в один прекрасный момент, память сервера переполняется и приходится расширять диск. В виртуализации (гипервизоре) это сделать очень просто - нарастить виртуальный диск с физического. А что делать внутри виртуалки, где живет Linux/CentOS?
В статье мы расскажем, как расширить пространство памяти (диск) на сервера под управлением Linux/CentOS, последовательно управляя PV (Physical Volume, физические тома), VG (Volume Group, группа томов) и LV (Logical Volume, логические разделы).
А вообще мы можем расширить диск или нужно создать новый?
Это очень важный пункт. Обязательно проверьте вот что: дело в том, что диск разделенный на 4 раздела более не сможет быть расширен. Проверить это легко. Подключаемся к серверу CentOS и вводим команду fdisk -l:
# fdisk -l
Disk /dev/sda: 187.9 GB, 187904819200 bytes
255 heads, 63 sectors/track, 22844 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 2636 20972857+ 8e Linux LVM
Если вывод команды у вас выглядит так, как показано выше - все хорошо. У вас пока только два раздела - /dev/sda1 и /dev/sda2. Можно создать еще два.
Однако, если вывод команды будет выглядеть вот так:
# fdisk -l
Disk /dev/sda: 187.9 GB, 187904819200 bytes
255 heads, 63 sectors/track, 22844 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 2636 20972857+ 8e Linux LVM
/dev/sda3 2637 19581 136110712+ 8e Linux LVM
/dev/sda4 19582 22844 26210047+ 8e Linux LVM
Это означает, что для решения задачи расширения памяти на сервере вам нужно создавать новый диск, а не расширять предыдущий. Мы рассматриваем первый вариант, когда у вас еще есть возможность создавать разделы. Погнали!
Создаем новую партицию
Проверяем что у нас на физических дисках командой fdisk -l
# fdisk -l
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 391 3036285 8e Linux LVM
Сервер видит 10.7 ГБ места на диске. Начинаем создавать новую партицию (раздел) командой fdisk /dev/sda. После запроса ввода команды, указываем n, чтобы создать новую партицию:
# fdisk /dev/sda
The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
В следующем разделе конфигурации, указываем ключ p чтобы создать раздел. Тут будьте внимательны - самый первый пункт нашей статьи - у вас должно быть на этот момент строго меньше 4 партиций на диске!
Command action
e extended
p primary partition (1-4)
p
На следующем экране задаем номер для партиции. Так как у нас уже есть партиции /dev/sda1 и /dev/sda2, то следуя порядковому номеру, мы указываем цифру 3:
Partition number (1-4): 3
В следующем пункте, мы рекомендуем нажать Enter дважды, то есть принять предложенные по умолчанию значения:
First cylinder (392-1305, default 392):
Using default value 392
Last cylinder or +size or +sizeM or +sizeK (392-1305, default 1305):
Using default value 1305
Отлично. Теперь мы меняем типа нашего раздела. Для этого, в следующем меню нажимаем ключ t, указываем номер партиции, который только что создали (напомним, это был номер 3), 3, а в качестве Hex code укажем 8e, а дальше просто Enter:
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)
Готово. Мы вернулись в основное меню утилиты fidsk. Сейчас ваша задача указать ключ w и нажать Etner, чтобы сохранить опции партиций на диске:
Command (m for help): w
После, что самое важное этого метода - перезагружать ничего не нужно! Нам просто нужно заново сканировать партиции утилитой partprobe:
# partprobe -s
Если команда выше не работает, то попробует сделать с помощью partx:
# partx -v -a /dev/sda
И если уже после этого у вас не появляется новая партиция - увы, вам придется согласовать время перезагрузки сервера и перезагрузить его. Успешным результатом этого шага будет вот такой вывод команды fdisk, где мы видим новую партицию:
# fdisk -l
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 391 3036285 8e Linux LVM
/dev/sda3 392 1305 7341705 8e Linux LVM
Расширяем логический раздел LV с новой партиции
Теперь наша задача следующая: создаем физический том (PV) из новой партиции, расширяем группу томов (VG) из под нового объема PV, а затем уже расширяем логический раздел LV. Звучит сложно, но поверьте, это легко!
Итак, по шагам: создаем новый физический том (PV). Важно: у вас может быть не /dev/sda3, а другая, 4, например, или вообще /dev/sdb3! Не забудьте заменять в командах разделы, согласно вашей инсталляции.
# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
Отлично. Теперь находим группу томов (VG, Volume Group). А точнее, ее название. Делается это командой vgdisplay:
# vgdisplay
--- Volume group ---
VG Name MerionVGroup00
...
Найдено. Наша VG называется MerionVGroup00. Теперь мы ее расширим из пространства ранее созданного PV командой vgextend:
# vgextend MerionVGroup00 /dev/sda3
Volume group "MerionVGroup00" successfully extended
Теперь расширяем LV из VG. Найдем название нашей LV, введя команду lvs:
# lvs
LV VG Attr LSize
MerionLVol00 MerionVGroup00
MerionLVol00 - найдено.Расширяем эту LV, указывая до нее путь командой lvextend /dev/MerionVGroup00/MerionLVol00 /dev/sda3:
# lvextend /dev/MerionVGroup00/MerionLVol00 /dev/sda3
Extending logical volume MerionLVol00 to 9.38 GB
Logical volume MerionLVol00 successfully resized
Почти у финиша. Единственное, что осталось, это изменить размер файловой системы в VG, чтобы мы могли использовать новое пространство. Используем команду resize2fs:
# resize2fs /dev/MerionVGroup00/MerionLVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/MerionVGroup00/MerionLVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/MerionVGroup00/MerionLVol00 to 2457600 (4k) blocks.
The filesystem on /dev/MerionVGroup00/MerionLVol00 is now 2457600 blocks long.
Готово. Проверяет доступное место командой df -h. Enjoy!
Получаете ошибку в resize2fs: Couldn't find valid filesystem superblock
Если вы получили ошибку вида:
$ resize2fs /dev/MerionVGroup00/MerionLVol00
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/MerionVGroup00/MerionLVol00
Couldn't find valid filesystem superblock.
Это значит, что у вас используется файловая система формата XFS, вместо ext2/ext3. Чтобы решить эту ошибку, дайте команду xfs_growfs:
$ xfs_growfs /dev/MerionVGroup00/MerionLVol00
meta-data=/dev/MerionVGroup00/MerionLVol00 isize=256 agcount=4, agsize=1210880 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=4843520, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Как тебе такое, Илон Маск?