Ответы пользователя по тегу Компьютерные сети
  • Какой из двух вариантов работы с данными в Angular выбрать?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1-ый вариант. Второй только если вам очень нужна поддержка работы оффлайн и она делается поверх первого.

    Минусы первого варианта смехотворны по сравнению с плюсами и минусами второго. Есть же такая вещь как кэширование.
    Ответ написан
    3 комментария
  • Что изучать для создания динамического сайта?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    да и не вся информация запомнится


    Важно не запоминать документацию а просто знать что там есть. Можете по документации майндмэпы строить что бы потом проще было возвращаться.
    Ответ написан
  • Многопоточность в JSON PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Или php однопоточный и так не реализуешь?


    Помимо "потоков" есть еще неблокируемые вызовы. Вам именно это нужно.

    Рекомендую эту библиотеку: https://github.com/mpyw/co либо даже лучше https://github.com/recoilphp/recoil
    Ответ написан
    Комментировать
  • Как идёт взаимодействие между PHP/MySQL/Apache?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    то я вовсе не понимаю зачем нужен Apache (говорю именно о нём, т.к. ни о чем другом не слышал).


    Гуглим про HTTP

    Сейчас геморрой есть, чтобы поставить всё это и сконфигурировать, надо разбираться.


    Вам сейчас достаточно тупо php поставить. php.net/manual/ru/features.commandline.webserver.php Apache вам не нужен.
    Ответ написан
    3 комментария
  • Как написать собственный протокол беспроводной связи?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    итак, давайте все же определимся что вы хотите сделать.

    Как написать собственный протокол беспроводной связи?


    Беспроводной протокол это как раз таки WiFi (стандарты ieee 802.11) и BlueTooth. Эти протоколы описывают протоколы на физическом уровне модели OSI. То есть "протокол беспроводной связи" это мега сложно и вы хотите сделать не это.

    Требуется элементарно передать данные от устройства А к устройству Б через Wi-Fi, или хотябы BlueTooth.


    Для этого вы должны наладить канал данных между двумя устройствами. Для wifi это означает объеденить их в одну сеть или подключить друг к другу через wifi-direct. Для bluetooth - сопряжение устройств.

    При подключении обоих устройств в одну сеть (через wifi, ethernet или как-то еще - это не важно) - всем самым сложным будет заниматься операционная система. Вам же на выборк 2 транспортных протокола, TCP и UDP, юзай не хочу. Или любой готовый протокол для передачи данных поверх TCP/UDP.

    В случае с wifi direct или bluetooth есть примеры на гитхабе как организовать общение устройств меджу собой.

    Вопрос не совсем по теме: можно ли для этого использовать ssh подключение между устройствами?


    SSH это протокол прикладного уровня, который работает поверх TCP. Так что в случае с подключением в одну сеть - да. Есть еще netcat, который чуть по проще если нужно простые данные отправлять.
    Ответ написан
    1 комментарий
  • Каких онлайн-сервисов, веб-приложений не хвататет в интернете?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Сделайте нормальный клон testlink в рамках опенсурса. Платных сервисов хватает, а вот среди опенсурс решений только это ищадие ада.
    Ответ написан
    1 комментарий
  • Что выбрать для клиент-серверного приложения?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Определитесь с задачей. Если вы хотите научиться сервера писать - то Java + Spring, это и для аднроида вам поможет (немного расширит кругозор).

    А если просто хочется приложеньку с сервером написать - возьмите какой parse.com, contentful и прочие облачные сервисы. Они бесплатны в большинстве случаев для небольших нагрузок.
    Ответ написан
    Комментировать
  • Как сделать put запрос с api в angular?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    var data = $.param({
                    зфкфьі:  ["apple", "potato"] ,
                   
                });


    что это?

    $http.put('http://*****/mongorest/control/get-menu?'+ data)


    ммм... почему у вас данные в query string ложатся а не в тело запроса? Как смысл тогда PUT запрос делать?

    Насколько я помню у монги нормальное REST api.

    Должно быть как-то так:

    $http.put('/some/url', {
        someKey:  ["apple", "potato"] ,
    }).then(function (response) {
        // не пользуйтесь .success/.error
    }, function (reason) {
        // пользуйтесь только промисами.
    });


    то есть никаких извращений и подоброго. И не пользуйтесь $.params. Вообще. Для query string у angular есть отдельный параметр в конфигурации запросов.

    $http.get('/something', {
        params: {
             query: 'param'
        }
    }
    Ответ написан
    3 комментария
  • Безсерверные протокол передачи данных, что вы знаете о нем?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ip адреса известны заранее.


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

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

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

    Посылать бродкаст запросы в интернет явно не лучшая идея потому обычно есть сервер с известным IP который делает ровно то же самое.

    Если же у вас все и так известно - то нет смысла в сервере.
    Ответ написан
    7 комментариев
  • Как работают мессенджеры?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Интересует полный цикл


    Тут можно поразному делать:
    - pear-to-pear, в этом случае сервер нужен только для того, что бы люди находили друг друга. Ну или можно исхитриться и сервер тогда вообще не нужен. В этом случае клиенты коннектятся друг к другу и шлют сообщения напрямую.
    - обычная модель обмена сообщений через общий сервер. Самый простой вариант. Все коннектсятся к одному серверу, который выступает как маршрутизатор сообщений. У каждого сообщения есть идентификатор откуда и куда оно хочет доставиться. Далее думаю алгоритм вам будет понятен.

    Когда происходит шифрование

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

    Книги... поищите тут вопросы по компьютерным сетям, думаю найдете себе список литературы.
    Ответ написан
    Комментировать
  • Rust, написание chat сервера, как быть?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    откажитесь от идеи создавать по потоку на пользователя, это далеко не самый эффективный способ работы с I/O. Лучше вооружитесь event loop.

    https://nbaksalyar.github.io/2015/07/10/writing-ch...
    Ответ написан
    Комментировать
  • Где можно почитать о современных методах построения больших web-сайтов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В тренде микросервисы, Docker. Полезно знать ансиблы и/или паппеты. Чуть проще стало настраивать реплики и шардинги. Вместо Apache - Nginx, HaProxy для балансировки...
    Ответ написан
    8 комментариев
  • Базовые книги для back end разработчика?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Если говорить о сетях, то вы должны:
    - знать HTTP: хотя бы основные фреймворки (авторизация, кэширование и т.д.) + основы, методы, заголовки, структура сообщений, статус коды.
    - разобрать модель OSI и TCP/IP хотя бы до транспортного уровня, ну и может быть было бы неплохо получить базовое представление о низлежащих уровнях. Ну и понимать что есть TLS.

    в принципе все есть в википедии, а для деталей есть спецификация HTTP.
    Ответ написан
    Комментировать
  • Что должен знать разработчик о сетях и устройстве ос?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Да для общего представления хватит и википедии:

    По сетям
    - модель OSI
    - стэк TCP/IP

    Далее можно уже после прочтения походить по смежным статьям и разобраться как работает адресация в сети например и т.п. Учить заголовки для протоколов не надо. Но как скажем устанавливается TCP соединение знать стоит, хотя бы приблизительно. Ну и разницу между TCP и UDP осозновать неплохо.

    По операционным системам: тут все зависит от того что вы хотите знать... Проще было бы Танембаума почитать, менее разрозненно информация была бы воспринята, а скучные главы можно было бы пропускать и возвращаться к ним за прояснением каких-то определенных моментов.
    Ответ написан
  • В чем фатальный недостаток "опен-сорс" сервиса заказа такси?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    С технической точки зрения проблем никаких нет, проблема в людях. Гарантию б еще доехать до места назначения целым и невредимым, а опенсурсные сервисы этой гарантии не особо предоставляют. Именно поэтому подобные сервисы зачастую работают со службами посредниками, у которых есть регулярное медобследование персонала и т.д.

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Создаю для этого кастомный заголовок Token.

    Используйте стандартный Authorization... Хватит городить на пустом месте заголовки.

    Но клиент (Chrome, Angular, ngResource) все равно выполняет префлайт.

    Ну так как бы так работает CORS, на каждый запрос высылается запрос на подтверждение доступа. На каждый.

    Хотелось бы передавать его в заголовках, но для этого нужно избавится от префлайта.

    я не понимаю в чем проблема, просто не обрабатывайте на сервере префлайт запросы, разрешайте и закрывайте.
    Ответ написан
  • Чем смотреть протокол обмена между браузером и веб-сервером?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Wireshark
    Ответ написан
    Комментировать
  • На чем написать сервис наподобии fl.ru?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Скажу сразу я не программер, мне нужно знать на каком языке программирования лучше написать такой проект.


    Найдите разработчика, а он вам уже скажет на каком он будет это писать.

    Можно написать обсалютно любой функционал

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

    Скорость загрузки сайта

    Как бы нибыл язык хорош и быстр все может загубить кривая архитектура и плохой выбор СУБД или архитектуры базы. В целом на вашем месте я бы этот параметр опустил бы в самый конец списка. Можно предьявить к разработчику нефункциональное требование по выдерживаемой нагрузке и времени генерации страниц. А далее пойдут кэширования всякие и т.д. Посмотрите на GitHub, он написан на крайне медленном RoR но в целом довольно шустро работает.

    Безопасность от взломов

    Дырки есть везде. Вопрос профессианализма разработчика и используемых средств разработки, настройки сервера и т.д.

    Распространенность

    На PHP написано ~80% всего WEB, но если брать качественные проекты то распределение по технологиям я думаю будет приблизительно одинаковое. Возможно Java тут будет выигрывать но и дороже выйдет существенно.

    Словом, все решает вменяемый разработчик. И да, это дорого и не быстро. Можно взять PHP, Ruby или еще чего и быстренько сделать MVP, пускай и не выдерживающий больших нагрузок и не на 100% то что вам нужно, но можно будет запустить проект раньше. В любом случае расчитывать на большой поток пользователей при старте проекта - тут либо надо нехило вкинуть денег в маркетинг или привести трафик откуда-то еще, либо не знаю.
    Ответ написан
    4 комментария
  • Какой оптимальный размер MTU для скорости 1 Гбит/с?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Увеличивая MTU мы увеличиваем размер пакета и соотношение заголовок фреймов и полезной нагрузки этого фрейма. За счет того что увеличивается объем полезных данных по отношению к заголовкам, увеличивается процент утилизации пропускной способности. Но никто не гарантирует вам что фрейм не будет поврежден в пути и не потребуется его повторая отправка, с стало быть чем больше пакеты тем больше данных будут нуждаться в пересылке (мол из-за маленькой ошибки в пару байт придется отправлять заного блок данных в пару килобайт).

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

    Словом надеюсь вы уловили идею. Чем надежнее сеть - тем выше можно ставить MTU.
    Ответ написан
    1 комментарий
  • Как создают свой протокол?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    более низкому по цепочке, TCP/UDP протоколу.

    Именно так. Читаем про модель OSI.

    шифрование данных собственным алгоритмом (и расшифровка на приеме) своим протоколом?

    Если в рамках вашего протокола вы так же описываете как происходит обмен ключами и т.д. то да.
    Ответ написан
    Комментировать