Ответы пользователя по тегу Веб-разработка
  • Что такое "селен"?

    @rPman
    Формально, любое вопрос ответное правило, по которым общаются две программы - можно назвать api, просто когда это api состоит из единственного запроса, как то язык не поворачивается его таковым назвать.

    У тебя как минимум будет запрос на старт парсера, запрос на текущий статус (вернет я работаю, столько то сделал, или я закончил или ой ошибка), запрос на остановку (чтобы перезапустить) и запрос на получение результата, так что вот уже и тебе api.

    Про 'селен' - когда речь идет о загрузке данных с чужого сайта, то никаких других вариантов кроме selenium тут нет (в смысле слова, работу можно сделать и другими технологиями, но не обязательно такими удобными)
    Ответ написан
    5 комментариев
  • Как называется метод/технология, когда сайт развернут на одном домене, а доступен на другом?

    @rPman
    обратный прокси или forward/reverse proxy
    популярный инструмент - веб сервер nginx
    Ответ написан
    Комментировать
  • Какой должен быть порядок действий при переносе сайта на другой хостинг?

    @rPman
    Разработчик обязан выдать исчерпывающую инструкцию по установке и поддержке сайта на чистом хостинге.

    Инструкция не обязана быть для ничего не умеющего (так как иначе она станет огромной), есть типовые действия, которые должен знать обычный сисадмин.
    то есть моими силами

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

    Доменное имя, очень важно, требуй не логины пароли а передачу прав владения (если по какой то дурости ты этого не сделал ранее), т.е. домен должен быть на твоем (если ты владелец компании или ее доверенное лицо) аккаунте, с регистрацией на твое настоящее имя/компанию, лучше второе.
    Ответ написан
    Комментировать
  • Насколько сложно прикрутить систему оплаты и систему вывода денег, на сайт, имея статус физ лица?

    @rPman
    Вводи выводи криптовалюты.

    Юридически пока еще можно 'выбрать юрисдикцию' где это либо законно либо не затрагивает законодательство по причине ее закостенелости.
    Ответ написан
    Комментировать
  • Возможно ли в websocket'ах до подключения определить кто подключается (любым способом)?

    @rPman
    Разные браузеры - в общем случае считать подключения как от одного человека - нельзя. Так же нельзя считать один ip адрес как один пользователь, так как есть NAT.

    Т.е. тут вопрос идентификации пользователя, если есть возможность авторизации, то проблем нет - каждое новое подключение (браузер или вкладка браузера) - новая сессия, но в сессии хранить идентификатор пользователя, хранить авторизацию же в пределах браузера - в куки.

    Если авторизация не используется, придется собирать отпечаток пользователя альтернативными способами (через параметры браузера, железа, установленные шрифты, и т.п.), гуглить: browser fingerprint
    Ответ написан
    Комментировать
  • Как раньше делались онлайн чаты?

    @rPman
    Где то в 2007 году появилась технология long pooling (возможно и раньше, но название получила именно тогда).
    На бакэнде есть скрипт, который не возвращает (находится в режиме ожидания, т.е. sleep) данных пока не понадобится отправить на клиент сообщение.

    В это же время как такового ajax не было (xhtmlrequest появился какраз в 2007г), и чтобы получить данные с сервера проще всего было сгенерировать javascipt константы инициализации этих данных, переданные в функцию, являющуюся колбеком на их получение. Соответственно чтобы запустить ожидание сообщения на клиенте нужно подключить скрипт с соответствующим url в теге script.

    Чтобы длинное подключение не закрылось, long poling во время ожидания периодически должен отсылать какие-нибудь данные, например пробел раз в минуту.

    в итоге бакэнд формирует с паузой и возвращает скрипт типа:
    ................................
    messageReceived({user:'vasya',message:'Hi!'});


    p.s. мелкие чаты не брезговали периодическими апдейтами, на таймере, я видел локальный чат, который список сообщений представлялся в виде html внутри iframe, в котором в meta refresh было прописано обновляться раз в 5 секунд
    Ответ написан
    1 комментарий
  • Как вытянуть оригинал картинки с сервера. (Авито и прочие)?

    @rPman
    Если есть миниатюра + если вотермарка относительно простая (она не капча, а фиксированное изображение, с поворотом и скалингом), есть возможность восстановить изображение, математически это возможно, по факту решив уравнение (функция - наложение известной вотермарки + ее модификация + скалинг до миниатюры = миниатюра)

    Вотермарку определяют вручную, загрузив на сервер свое изображение и сравнив его с изменившимся.

    Если вотермарка меняется по сложному алгоритму, этот способ не подходит.

    p.s. с высокой вероятностью на сайте есть 'уязвимость', позволяющая вытащить оригинальное изображение, отличным примером поиска такого является вот эта статья - "Кража закрытых видео YouTube по одному кадру"

    p.p.s. хабр не дает вставлять эту ссылку так как слово вдсина в адресе под запретом О_о
    Ответ написан
    Комментировать
  • Несколько веб серверов дома, как настроить NS и маршрутизацию?

    @rPman
    Тебе нужен либо второй ip (доп услуга почти у любого провайдера) либо еще одна машина, выступающая http прокси. Посмотри возможности роутера, возможно если его перепрошить, туда можно водрузить nginx... и да не всякий роутера позволит настроить несколько ip адресов, поэтому опять - отдельная машина.

    Тебе правильно посоветовали проксировать в облаках. Рано или поздно придешь к пониманию что нужна защита от ддос, вот тут то решение и придет автоматически
    Ответ написан
    Комментировать
  • Хостинг: арендовать или создать на домашнем пк?

    @rPman
    Почему нельзя, можно, и даже нужно, начинать с этого вполне нормально. Позволяет очень сильно сэкономить на вложениях, за счет меньшей надежности.

    Но нужно понимать что хостинг это не только машина, но и стабильное подключение к интернету, а еще гарантии, что сервис будет работать с определенными низкими шансами на остановки (гарантированные SLA, чем значение ближе к 1 тем хостинг круче и дороже), достигается это как командой админов, готовых как чип и дейл решать проблемы 24 часа в сутки, так и выбором серверного железа и резервированием. Ну и опыт и готовые решения с высокой вероятностью лучше у компаний, которые этим занимаются годами/десятилетиями чем домашний колхоз.

    Дома все это сделать будет заметно сложнее и дороже (бессмысленно).

    p.s. что будете делать если ваши недоброжелатели запустят ddos на ваш домашний ip и провайдер его выключит,..

    p.p.s. в россии последние годы провайдеры с подачи текущей власти вытворяют эпическую дичь, ломая интернет и устоявшиеся стандарты.
    Совершенно нормально внезапно обнаружить что входящие https нормально не работают, или скорость режется, или подвисают подключения и т.п. Это так работает самодельный DPI
    Ответ написан
    Комментировать
  • Размещение Frontend'a приложения на GitHub Pages и Backend'a на собственном сервере, как лучше защитить?

    @rPman
    git pages получают на халявную некоторую защиту от ddos (но я думаю, если на ваш сайт пойдет большой трафик, вам как минимум погрозят пальчиком) и так как это хостинг файлов а не веб сервер (только статика), https защитит от атак man-in-the-middle (если бы были динамические страницы как у гугловских проектов, то их сертификат *.site.com уже не принес бы пользы)

    На этом плюсы кончаются и начинаются минусы, нужно читать лицензионное соглашение, почти наверняка интернет магазин поднять так не получится, так же не получится поднять тут видеохостинг на 100500 гигабайт
    Ответ написан
    Комментировать
  • Как организовать разработку клиент-сервеного приложения?

    @rPman
    Вообще то это должен быть it архитектор, который должен определить все необходимое, и даже составлять прогнозы развития систему на будущее, особенно если инет подробного ТЗ.

    Что в вашем проекте главнее? что задает тон разработки, бакэнд или фронтэнд? Если бакэнд по сути прослойка к базе данных, то пусть за api отвечает фронтэндер, ведь для его удобства его разрабатываете, если же у приложения сложная бизнеслогика и сложное использование и несколько клиентов, то скорее всего тон разработки api должен задавать бакэндер.

    Определите владеющего последним словом, у которого будет право наложить вето/принять окончательное решение в случае спорных вопросов. Инструменты, в которых будете чертить картинки могут быть любыми, можно хоть в текстовом файлике расписывать все, но в конечном счете все упирается в принятие решения, к примеру на сколько подробно нужно дробить логику на подуровни.
    Ответ написан
    1 комментарий
  • Как встроить графический редактор на сайт?

    @rPman
    Ответ написан
    Комментировать
  • Есть ли какя-то среда где можно дешево выполнить приложение?

    @rPman
    Пишешь приложение, с использованием одним из десятка доступных библиотек движков на любимом языке программирования (например на c# приложение браузер это кинуть на winforms контрол WebBrowser, если собрать его в monobuild оно будет использовать firefox, а на windows .net framework - internet explorer 11 trident) или к примеру используй webkit, по памяти это будет самое эффективное решение (так как другие запускают более полноценный браузер, а они жрут память как не в себя, сотнями мегабайт), оформляешь его как локальный сервер и обращаешься к нему уже из своего бакэнда.

    Советую коммуникацию наладить через сокеты, тогда можно физически разнести веб-бакэнд и браузеры, для легкого масштабирования.

    p.s. дешево не будет, браузеры жрут ресурсы очень сильно, чужие вебсервисы слабо поддаются контролю и при любой их ошибке могут сожрать еще больше ресурсов.
    Ответ написан
  • На что можно переехать с сервиса 3D для товаров?

    @rPman
    такое вращение это просто набор из статичных картинок (именно это по ссылке), если они у вас есть, не нужно ничего особого разрабатывать, кода минимум.

    Статика не создает никакой нагрузки на сервер (она минимальна, только сетевой трафик) поэтому уходите от готовых решений на свои
    Ответ написан
    4 комментария
  • Как очистить localStorage после закрытия всех вкладок с сайтом?

    @rPman
    100% гарантии локальными средствами не получишь, onbeforeunload может не исполниться по разным хоть и редким причинам (например убили процесс, или проблема с интернетом, или неудачное стечение обстоятельств при пробуждении ото сна, особенно это актуально для мобильных браузеров), поэтому ключевой вопрос задачи - обнаружить закрытие вкладок, что можно сделать только на серверной стороне, удерживая websocket подключение (сервер считает сколько открыто к какому пользователю подключений и на дисконнекте последнего помечает что сессия закончилась).

    В этом случае очистку localstorage придется делать и на открытии страницы, если сервер пометил для себя что сессия была закрыта и устарела
    Ответ написан
    Комментировать
  • Как отправлять видео с ютуба разным клиентам?

    @rPman
    Может не стоит усложнять простую задачу?

    Пишите свою веб-страничку, на которой выложено youtube видео без контролов управления, на странице кнопки управления которые отправляют всем участникам сигналы, управляющие просмотром видео.

    Периодически можно контролировать player.getCurrentTime() текущее время и корректировать его, при сильных расхождениях (например у кого то была проблема с сетью)
    Ответ написан
  • Почему такая разница между Nginx и Apache в метрике "Content Download"?

    @rPman
    Скорее всего все зависит от того как приложения отдают http заголовки.

    Когда работает через apache, TTFB ждет долго потому что пока приложение не отработает до конца, даже заголовки не будут отправлены, т.е. время, которое занимает работа приложения это TTFB+content download

    Когда же работает через php fpm, за заголовки отправляются тут же, nginx не ждет когда закончится работа приложения для этого, а значит TTFB маленький (кстати 122мс это ДОЛГО что там происходит?) а уже генерация контента происходит пока идет content download
    Ответ написан
    3 комментария
  • Как правильно организовать проксирование вебсокетов со сторонних сервисов?

    @rPman
    Если я правильно понял и речь о биржах криптовалютных (так как у бирж из фондового рынка не вебсокеты), у каждой биржи свой формат подключения websocket (к примеру для многих хватает чистого php ratchet а для некоторых нужно Thruway WAMP). У каждой биржи свои заморочки, лимиты на количество подписок на подключение, косяки с подвисшим каналом (соединение есть данные не идут) и т.п.

    Настоятельно рекомендую физически разнести по процессам сбор сырых данных и их обработку.
    Ответ написан
  • На каком языке программирования написаны сайты в TOR’e?

    @rPman
    Сайт в tor это обычный сайт, ничем не отличающийся от обычного интернета, запускается с использованием тех же программ типа ngnix/apache/php/... да там только http (так как шифрование на канальном уровне и некому выпустить сертификат для onion)

    Так как tor медленнее для клиентов плюс немного дороже обходится трафик, ведь не каждый хостер разрешает использовать tor (прописывают в лиц. соглашении) то лишние навороты будут реально лишними, плюс контенгент тор обычно такой, которому эти свистоп...навороты не требуются, только голый функицонализм.

    Если что, в тор есть полноценные зеркала сайтов, даже facebook - facebookcorewwwi.onion со всеми скриптами и аналитикой.
    Ответ написан
    1 комментарий
  • Как правильно "Спрятать" мой js код на сервере?

    @rPman
    Не слушайте других, ваша задача решаема без бакэнда (но сложнее само собой).

    Достаточно хранить не сами ответы а криптографически стойкий хеш от них, даже простого md5 будет достаточно, лучше взять многократно хеш от значения хеша, чтобы перебор значений был усложнен. Соответственно человек вводит ответ, вы берете от него хеш и сравниваете с сохраненным.

    Недостаток, ответ можно только сравнивать на равенство (никаких подстрока или больше меньше...). Так же не подходят задачи с выбором из предложенных вариантов, так как тестируемый может просто перебрать их значения, так как можно узнать верный ли ответ, посчитав хеш каждого из вариантов.

    p.s. еще можно почитать про гомоморфное шифрование, там возможны математические операции над зашифрованными данными без их расшифровки, тут уж полная свобода операций.
    После тестирования всем клиентам выдается ключ расшифровки и все смотрят ответ.
    Ответ написан