Analitycs

Показаны сообщения с ярлыком HTTP. Показать все сообщения
Показаны сообщения с ярлыком HTTP. Показать все сообщения

понедельник, 16 января 2017 г.

SSL cert “err_cert_authority_invalid” on Android device only

Reason: The wrong-formed SSL chain in the server, affects only Android devices

Recipe: https://gist.github.com/bradmontgomery/6487319

For checking the SSL work: - https://www.digicert.com/help/

среда, 9 ноября 2011 г.

PHP header("HTTP/1.0 404 Not Found") показывает пустую страницу

При отправке из PHP скрипта HTTP ошибки 404 - показывается белая страница, хотя в настройках вашего веб сервера явно задана собственная красивая страничка для этой ошибки.

Как лечить?

Просто считать содержимое файла с красивой 404 ошибкой и вывести его HTML в поток - примерно так
if ($is404) {
 $html = file_get_contents(YOUR_ROOT_PATH.'/404.htm');
 header("HTTP/1.0 404 Not Found");
 echo $html;
 exit();
}

вторник, 25 октября 2011 г.

Сравнение нагрузки PyCurl vs HTTPClientFactory+Deferred в сервисе на Twisted

Решил перевыложить с хабры свое небольшое старое исследование по поводу производительности Twisted при использовании  PyCurl и HTTPClientFactory - пусть лежит все в одном месте, раз уж начал активно писать в блог.

В процессе разработки одного проекта на Python+Twisted (распределителя запросов между несколькими СМС гейтами Kannel) пришлось переписать вызов URL различных сервисов с разных серверов c блокирующего вызова через PyCurl на неблокирующий (client.HTTPClientFactory + deferred). Чтобы иметь перед глазами реальные данные о нагрузке, решил дать много запросов и посмотреть на результаты

Описание теста

Использовался Jakarta/Apache Jmeter - очень полезная софтинка, к сожалению, почему-то применяют ее для тестов достаточно редко (может, просто не знают о ее существовании?), но мне она весьма нравится - ибо возможности у нее большие и даже краткое описание наврядли влезет в несколько постов - если кому интересно, могу потом пробежаться по ней вкратце.
В 200 потоков прогнано 100 запросов на один и тот же сервер, но со случайными данными (чтобы исключить кэширование). Прогонялось на обыкновенной рабочей машине с GUI под Ubunta — так, для примерной оценки.

Результаты теста

Одна ошибка — не справилась база, так что погрешностью можно пренебречь.

Графики распределения

Блокирующий (PyCurl)
Неблокирующий (deferred)

Итоги

Как видно из результата теста — при одинаковой нагрузке при использовании defered минимальное значение отклика сервера почти в 2.5 раза меньше (из-за отказа базы), а максимальное — меньше в два раза, чем у блокирующего. Среднее значение - также меньше в 2 раза.

Америку я, конечно, не открыл, но по-крайней мере — теперь на руках конкретные цифры по производительности. Надеюсь, кому-нибудь они пригодятся.

пятница, 19 августа 2011 г.

Mozilla Firefox не показывает картинки

Проблема - в настройках Firefox 4 и выше по умолчанию стоит излишняя безопасность

Вариант 1 - пользовательский

Идем на страниц в Firefox about:config (в адресной сроке). Дальше - соглашаемся с предупреждением, и в строке поиска ищем параметр: security.csp.enable Двойным щелчком переключаете на false и - вуаля!!! Всё заработало...

Вариант 2 - методически грамотный

Со стороны сервера нужно править HTTP заголовки. Для nginx - первая строчка будет
add_header X-Content-Security-Policy "allow 'self'; img-src *; script-src *;";

 add_header X-Frame-Options SAMEORIGIN;
 add_header X-XSS-Protection "1; mode=block";
Разумеется, если у админа включен параноидальный режим, то img-src *; script-src *; можно править на список одобренных доменов