Для Chrome развивается API для прямых TCP и UDP коммуникаций
22 августа 2020 года
Компания Google приступила к реализации в Chrome нового API Raw Sockets, позволяющего web-приложениям устанавливать прямые сетевые соединения с использованием протоколов TCP и UDP. В 2015 году консорциумом W3C уже была предпринята попытка стандартизации API "TCP and UDP Socket", но участники рабочей группы не достигли консенсуса и разработка данного API была остановлена.
Необходимость добавления нового API объясняется предоставлением возможности взаимодействия с сетевыми устройствами, которые используют собственные протоколы, работающие поверх TCP и UDP, и не поддерживают взаимодействие через HTTPS или WebSockets. Отмечается, что API Raw Sockets дополнит уже имеющиеся в браузере низкоуровневые программные интерфейсы WebUSB, WebMIDI и WebBluetooth, позволяющие взаимодействовать с локальными устройствами.
Для исключения негативного влияния на безопасность API Raw Sockets будет допускать сетевые обращения только инициированные с согласия пользователя и ограниченные списком разрешённых пользователем хостов. Пользователь должен будет явно подтверждать первую попытку соединения для нового хоста. Повторные соединения будут допускаться без отдельного запроса, но интенсивность обращений через Raw Sockets будет лимитирована. UDP-пакеты, полученные с хостов, не одобренных пользователем, будут игнорироваться и не доходить до web-приложения. Начальная реализация не предусматривает создания слушающих сокетов, но в будущем не исключается предоставление вызовов для приёма входящих соединений с localhost или списка известных хостов.
Среди рисков, которые могут возникнуть при реализации нового API, отмечается его возможное неприятие производителями других браузеров, что может привести к проблемам с совместимостью. Разработчики движков Mozilla Gecko и WebKit пока не выработали свою позицию по поводу возможной реализации API Raw Sockets, но компания Mozilla ранее для проекта Firefox OS (B2G) уже предлагала похожий API (Архивная копия от 20 октября 2020 на Wayback Machine).
Web-разработчики положительно отозвались о новом API и высказали много новых идей об его применении в областях, в которых API XMLHttpRequest, WebSocket и WebRTC недостаточно (от создания браузерных клиентов для SSH, RDP, IMAP, SMTP, IRC и протоколов вывода на печать до разработки распределённых P2P-систем с DHT (Distributed Hash Table), поддержки IPFS и взаимодействия с IoT-устройствами).
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.