При разработке приложений я заметил, что каждый раз, когда мне приходилось сталкиваться с решением похожих задач (реализовывать работу с http, json, multithreading и т.п.), приходилось делать одну и туже роботу, причем на это уходило много времени. Поначалу это было не критично, но в больших проектах занимало слишком много времени. Чтобы сэкономить свое и ваше время, решил написать универсальное решение для этих задач, которым и хочу поделиться с сообществом.
Читать полностью »
Рубрика «http» - 14
Droidutils — набор решений, которые ускоряют разработку приложений под Android
2014-10-24 в 6:40, admin, рубрики: android, http, java.util.concurrent, json, mobile development, multithreading, Программирование, Разработка под androidПрименение инфраструктуры кеширования в ASP.NET
2014-06-23 в 6:15, admin, рубрики: .net, ASP.NET, asp.net mvc, http, Веб-разработка, кеширование, Серверная оптимизация, метки: ASP.NET, asp.net mvc, http, кеширование, серверная оптимизацияПолтора года назад я написал статью про кеширование в ASP.NET MVC, в которой описал как повысить производительность ASP.NET MVC приложения за счет кеширования как на сервере, так и на клиенте. В комментариях к статье было упомянто много дополнительных способов для управления кешированием в ASP.NET.
В том посте я расскажу как использовать возможности инфраструктуры ASP.NET для управления кешированием.
Шпаргалка по HTTP-библиотекам для С++
2014-06-18 в 7:54, admin, рубрики: c++, http, Блог компании Инфопульс Украина, Программирование, метки: c++, httpК сожалению, в стандартной библиотеке языка С++ нет никаких средств для работы с протоколом HTTP. Возможно, в будущем появятся, но на данный момент каждый раз при необходимости дёрнуть какой-нибудь REST-сервис, пропарсить веб-страничку, написать простенького бота или краулера приходится задаваться вопросами «А какую же библиотеку взять, так чтобы побыстрее и попроще?». Иногда проект уже использует какой-то фреймворк (а иногда даже несколько) и тогда приходится вспоминать «А как же сделать HTTP-запрос имеющимися средствами?». Чтобы не путаться я решил написать для себя шпаргалку с примерами HTTP-запросов на С++ с применением разных библиотек. А самое удобное место для хранения подобных шпаргалок — Хабр: и сам не потеряешь, и другим может пригодиться.
Будут рассмотрены:
- WinInet
- Casablanca
- Qt
- POCO
- wxWidgets
- Boost.Asio
- libcurl
- neon
- .NET (С++/CLI)
- IXMLHTTPRequest
- HappyHttp
- cpp-netlib
Обновился HTTP/1.1
2014-06-07 в 20:04, admin, рубрики: http, Сетевые технологии, метки: http, HTTP/1.1 Вот так неожиданно, через 15 лет после начальной публикации, обновилась спецификация/HTTP 1.1
Обновлений много, я бы даже сказал, дофига. Добавили много проясняющего текста, разбили спецификацию на 6 RFC (раньше было 2), добавили новый статус 308, стандартизировали X-Forwarded-For (теперь он просто Forward), и еще много всего.
Неполный спискок изменений:
- Новый статус 308 — Permanent Redirect, но с отправкой этих же самых данных. Т.е. запрос не меняется на GET, как раньше.
- Новый заголовок Forward, который призван заменить X-Forwarded-For и X-Forwarded-Proto
- Убрано ограничение на 2 подключения к серверу
- Убрана поддержка HTTP 0.9
- Убрана кодировка ISO-8859-1 по умолчанию
- Убран заголовок Content-MD5
- Запрет использования Content-Range на POST-запросах
- Добавлено кеширование кодов 204, 404, 405, 414 и 501
- Изменены коды 301 и 303 таким образом, чтобы позволить перенаправлять метод с POST на GET, чтобы сохранить совместимость с текущими реализациями. Управляется через user-agent.
- Добавлены разграничения между запретом отправки referer и случаем, когда referer нет. Теперь следует отправлять Referer: about:blank, если referer-а не было.
- Location теперь может перенаправлять на ссылку с хештегом.
Простым языком об HTTP
2014-03-08 в 23:16, admin, рубрики: http, SPDY, Веб-разработка, Программирование, Сетевые технологии, метки: http, SPDYВашему вниманию предлагается описание основных аспектов протокола HTTP — сетевого протокола, с начала 90-х и по сей день позволяющего вашему браузеру загружать веб-страницы. Данная статья написана для тех, кто только начинает работать с компьютерными сетями и заниматься разработкой сетевых приложений, и кому пока что сложно самостоятельно читать официальные спецификации.
HTTP — широко распространённый протокол передачи данных, изначально предназначенный для передачи гипертекстовых документов (то есть документов, которые могут содержать ссылки, позволяющие организовать переход к другим документам).
Аббревиатура HTTP расшифровывается как HyperText Transfer Protocol, «протокол передачи гипертекста». В соответствии со спецификацией OSI, HTTP является протоколом прикладного (верхнего, 7-го) уровня. Актуальная на данный момент версия протокола, HTTP 1.1, описана в спецификации RFC 2616.
Протокол HTTP предполагает использование клиент-серверной структуры передачи данных. Клиентское приложение формирует запрос и отправляет его на сервер, после чего серверное программное обеспечение обрабатывает данный запрос, формирует ответ и передаёт его обратно клиенту. После этого клиентское приложение может продолжить отправлять другие запросы, которые будут обработаны аналогичным образом.
Задача, которая традиционно решается с помощью протокола HTTP — обмен данными между пользовательским приложением, осуществляющим доступ к веб-ресурсам (обычно это веб-браузер) и веб-сервером. На данный момент именно благодаря протоколу HTTP обеспечивается работа Всемирной паутины.
Читать полностью »
Яндекс.Танк и автоматизация нагрузочного тестирования
2013-11-29 в 16:08, admin, рубрики: http, load testing, nginx, proxy, автоматизация, Блог компании Positive Technologies, нагрузка, тестирование, яндекс, яндекс.танк, метки: http, load testing, nginx, proxy, автоматизация, нагрузка, яндекс.танк В ходе тестирования некоторых продуктов компании Positive Technologies возникла необходимость проведения быстрых стресс-тестов одного веб-сервиса. Эти тесты должны были быть простыми и быстрыми в разработке, нетребовательными к аппаратным ресурсам и одновременно с этим давать значительную нагрузку однотипными HTTP-запросами, а также предоставлять статистические данные для анализа системы под нагрузкой.
Для их реализации мы исследовали и опробовали некоторое количество инструментов, среди которых были Apache JMeter и написанный нами на Python скрипт LogSniper, который выполнял реплей заранее подготовленных серверных логов с HTTP-запросами на цель.Читать полностью »
Миграция на новую версию API
2013-11-07 в 6:32, admin, рубрики: api, http, rest, Блог компании HeadHunter, метки: api, http, restПодходит к концу время жизни первой версии нашего API. Для тех, кто еще не перевёл свои приложения на новую версию, мы подготовили руководство по миграции.
Самое, что вероятно бросается в глаза — в новой версии нет XML. Да, мы оставили только JSON, но этим всё не ограничивается.
Читать полностью »
Картинки с внешних ресурсов — добро или зло?
2013-10-10 в 3:55, admin, рубрики: csrf, http, img, анонимность, безопасность, информационная безопасность, Сетевые технологии, метки: csrf, http, img, анонимность, безопасностьБольшинство многопосещаемых площадок позволяют размещать у себя картинки с внешних ресурсов. Это очень удобная и полезная фича не только для простых пользователей, но и для людей, собирающих информацию о вас.
Вы хотите узнать больше информации о самых действенных методах? Вам интересно, как с помощью маленькой картинки определить разрешение экрана, локальное время и сменить парочку паролей? Добро пожаловать под кат!Читать полностью »
Реактивный манифест
2013-09-28 в 10:44, admin, рубрики: actors, akka, asynchronous, callbacks, closure, clusters, distributed computing, elasticity, erlangvm, event loops, event-driven programming, failover, fault handling, fault tolerant, functional programming, futures, http, hyperthreading, immutability, interactive, jvm, lambda, latency, load balancing, location transparency, louse coupling, multicore, multithreading, network, no side effects, observable, Observer, parallel computing, performance, play framework, promises, pure functions, push-model, referential transparency, reliability, remoting, resilience, responsiveness, rxjava, scalability, self-heal, supervisors, synchronization, thread-safety, web applications, Анализ и проектирование систем, параллельное программированиеВ последние годы требования к приложениям значительно изменились. Десятки серверов, время отклика в несколько секунд, оффлайновое обслуживание, которое могло длиться часами, гигабайты данных — такими были большие приложения буквально несколько лет назад. Сегодня же приложения работают абсолютно на всём, начиная с простых мобильников и заканчивая кластерами из тысячи процессоров. Пользователи ожидают миллисекундного времени отклика и стопроцентного аптайма, в то время как данные выросли до петабайтов.
Первоначально эту нишу занимали крупные инновационные интернет-компании типа Google или Twitter, однако такие требования к приложениям начали всплывать во многих областях индустрии. Финансовые и телекоммуникационные компании первыми начали внедрять новые практики, чтобы удовлетворить новым требованиям, а теперь подтягиваются и остальные.
Новые требования требуют новых технологий. Предыдущие решения делали упор на управляемые сервера и контейнеры. Масштабирование достигалось засчёт покупки более крутых серверов и использования многопоточности. Для добавления новых серверов приходилось применять комплексные, неэффективные и дорогие проприетарные решения.
Однако прогресс не стоит на месте. Архитектура приложений эволюционировала в соответствии с изменившимися требованиями. Приложения, разработанные на основе этой архитектуры, мы называем Реактивными Приложениями. Такая архитектура позволяет программистам создавать событийно-ориентированные, масштабируемые, отказоустойчивые и отзывчивые приложения — приложения, работающие в реальном времени и обеспечивающие хорошее время реакции, основанные на масштабируемом и отказоустойчивом стеке и которые легко развернуть на многоядерных и облачных архитектурах. Эти особенности критически важны для реактивности.
HTTP Header Enrichment и URL Enrichment
2013-08-02 в 3:25, admin, рубрики: header, http, LTE, pgw, url, Телекомы, метки: header, http, LTE, pgw, urlДобрый день
В данной статье я хочу кратко рассказать о двух интересных функциях PGW — HTTP Header Enrichment и URL Enrichment
HTTP Header Enrichment
Одной из интересных функций элемента PGW является функция HTTP Header Enrichment. Cуть функции проста — это возможность добавлять в HTTP запрос пользователя заголовки со служебной информацией. Например, можно добавить IMSI или MSISDN абонента, APN, RAT, IMEI и другие
Читать полностью »