Ответы пользователя по тегу Веб-серверы
  • Как ответить webhook Telegram 'ожидайте' при отправке сообщения в методе /sendMessage?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В течение 60 секунд после запроса на webhook вы должны отправить ответ с кодом 200, иначе телеграм повторит запрос.
    Соответственно, если вашему боту нужно более 60 секунд, то лучшим вариантом будет помещение запроса в очередь (например, RabbitMQ) и ответ "Запрос принят, идёт обработка" с кодом 200 Ok. Затем отдельным консольным скриптом обработка запроса из очереди и отправка результата пользователю.
    Ответ написан
    4 комментария
  • Websocket server + web (API) server. Какие есть варианты?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ничто не мешает скриптам API дёргать скрипт WS-сервера через какой-либо интерфейс. Скажем, тот же Workerman кроме WS-сервера может поднимать HTTP(s) или чистый TCP-сервер.
    Ответ написан
  • Можно ли указывать не уникальные ключи в HTTP Query String?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Обычно PHP в таком случае видит последнее значение. Используйте site.ru/?foo[]=bar&foo[]=bar2. Тогда в PHP будет массив $_GET['foo'] = ['bar', 'bar2'].
    Ответ написан
    2 комментария
  • Есть ли в природе echo-сервис, выводящий raw-содержимое запроса в ответ на него?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для HTTP достаточно tcpdump/wireshark на клиенте.
    Для HTTPs смотреть сырой сокет бесполезно, там будут зашифрованные данные.
    Но, по стандарту, обработка HTTP(s)-запроса не должна зависеть от порядка заголовков или регистра, в котором написано имя заголовка. Если вам критична эта информация, значит вы что-то делаете не так.
    Ответ написан
    Комментировать
  • Как поднять REST API на Yii2 по протоколу HTTPS?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для получения "глобального" сертификата вам нужно приобрести доменное имя и хостинг для него. Необходим белый статический IP-адрес, проброшенный на ваш сервер. Получить бесплатный сертификат можно, например, в LetsEncrypt через скрипт certbot.
    Ответ написан
  • Как определить разные сообщения в HTTP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    2 комментария
  • Как происходит матчинг ответов HTTP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В HTTP всё просто, один запрос - одно соединение - один ответ. Ничего матчить не надо.
    Если используется HTTP-pipelining, то ответы должны возвращаться строго в той же последовательности, в которой отправлялись запросы.
    Ответ написан
    Комментировать
  • Как запретить два параллельных запроса?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В начале транзакции снимать сумму с баланса пользователя, записывая её вместе с идентификатором транзакции. После подтверждения перевода удалять запись. При отказе или таймауте возвращать сумму на баланс пользователя.
    Как вариант - не снимать сумму, а отмечать её как заблокированную, проводя реальное уменьшение баланса после подтверждения перевода.
    Ну и ограничить частоту запросов на снятие средств от одного пользователя.
    Ответ написан
    Комментировать
  • Как обходится CORS?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Postman - это средство разработки, расширение браузера. Он перехватывает ответ ещё до анализа браузером и не обращает внимания на политику CORS.
    Для AJAX запрос анализируется браузером, который блокирует кросс-доменные запросы, если предварительно по запросу OPTION не вернулись разрешения на нужные методы, домены и т.д.
    Ответ написан
    Комментировать