Определение браузера javascript: Определение браузера при помощи JavaScript

Определение браузера ‣ Marketer

Автор статьи: Головин Андрей

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

Я уже писал об определении браузеров. Но тогда я использовал самый примитивный код. Дело в том, что реализация отличается даже при изменении в младшей цифре версии. Кроме того есть еще несколько полезных параметров, которые можно «узнать» у пользовательского агента. Для реализации этого я предлагаю вам библиотеку detect.js

Вам достаточно загрузить указанный файл и вставить его в тело своего документа (лучше сделать это в секции <HEAD>) таким образом ( имейте ввиду, что internet explorer версии 3 не понимает такой конструкции. В этом случае просто скопируйте библиотеку в тэг <SCRIPT>):

<SCRIPT TYPE=”text/javascript” SRC=”detect.js”></SCRIPT>
и в вашем распоряжении будет объект br.

Его свойства приведены в следующей таблице:
>

Свойство Описание
br.name Название браузера: Internet Explorer, Netscape Navigator и Opera
br.shortName Сокращенное название браузера:
EXP – Internet Explorer
NAV – Netscape Navigator
OPR – Opera
br.version Версия браузера
br.minorVer Младшая составляющая версии
br.language Язык браузера(*)
br.plainAgentStr То же самое, что и navigator.userAgent
br.plainNameStr То же самое, что и navigator. appName
br.plainVersionStr То же самое, что и navigator.appVersion

(*) — Указывается язык версии браузера, а не язык, на который настроено отображение страниц.

Кроме того в вашем распоряжении оказывается три логических переменных: IE, NN и OP, которые принимают значение истина в случае если используется Internet Explorer, Netscape Navigator или Opera, соответственно.

использовать, например, можно так:

<b>Вы используете Internet Explorer версии 5.01 </b>

Вот код этого фрагмента:

Вы используете <SCRIPT>document.write(br.name)</SCRIPT>
версии <SCRIPT>document.write(br.version)</SCRIPT>

Необходимо сделать замечание, что этот скрипт определяет версии Opera и Internet Explorer индивидуально, исходя из строки userAgent, так как Opera любой версии на appVersion выдает «3.0», а IE с установленным SP1 — на appMinorVersion выдает «;SP 1;».

Это, конечно, нужная информация, но чаще бывает нужен именно реальный номер версии браузера, т.е. для Opera, например, «3.60b3», а для IE — minorVersion — «01».

Порекомендую вам не устанавливать ссылку на локальную версию этого скрипта, а установить ссылку на скрипт, расположенный на сервере «Опытов». Таким образом на вашей странице будет работать всегда самая последняя версия. Сделать это можно так:

<SCRIPT TYPE=”text/javascript” SRC=”home.ural.ru/~tbi/exper/detect.js”></SCRIPT>

Total

Shares

Браузерное окружение, BOM — JavaScript — Дока

Кратко

Секция статьи «Кратко»

Современный JavaScript используется не только в браузерах. Среда, в которой он запускается, будь то браузер, сервер или что-то ещё, называется окружением.

У разных окружений разные возможности и функциональность. В этой статье рассмотрим браузерное окружение и браузерную модель документа.

Окружение предоставляет языку дополнительные возможности и функции. Браузерное окружение, например, даёт возможность работать со страницами сайтов.

Представление этих дополнительных возможностей и функциональности в виде объектов, к которым у языка есть доступ — это объектная модель.

В случае с браузерным окружением — это объектная модель браузера (Browser Object Model, BOM). Она предоставляет доступ к navigator, location, fetch и другим объектам.

/*                              BOM                              |    __________________________|______________________________________    |             |           |             |             |         |navigator      screen      location       fetch        history     ...*/
          
/* BOM | __________________________|______________________________________ | | | | | | navigator screen location fetch history . .. */

navigator Секция статьи «navigator»

Объект navigator содержит информацию о браузере: название, версия, платформа, доступные плагины, доступ к буферу обмена и прочее. Это один из самых больших объектов в окружении.

Так, например, может выглядеть содержимое этого объекта в Safari:

Или, например, так в Chrome:

С помощью этого объекта можно узнать, разрешён ли доступ к кукам, получить доступ к буферу обмена, геолокации, узнать, с какого браузера пользователь смотрит на страницу через userAgent.

Забавный факт: поле userAgent объекта navigator часто используется, чтобы определять, в каком именно браузере пользователь смотрит страницу сайта. Но читать его глазами достаточно трудно, поэтому лучше это дело оставить какому-нибудь парсеру.

💬

В июне 2021 появился более безопасный инструмент для определения браузера — User-Agent Client Hints. Его цель в том, чтобы позволить определять тип браузера, не оставив возможности для сбора данных о пользователях.

Также с помощью navigator можно зарегистрировать Service Worker.

screen Секция статьи «screen»

Объект screen содержит информацию об экране браузера.

width и height указывают ширину и высоту экрана в пикселях соответственно. avail-метрики указывают, сколько ширины и высоты доступно — то есть ширину и высоту с учётом интерфейсных деталей браузера типа полос прокрутки.

pixelDepth указывает количество битов на один пиксель экрана.

location Секция статьи «location»

Объект location даёт возможность узнать, на какой странице мы находимся (какой у неё URL) и перейти на другую страницу программно.

Например, для страницы https://www.google.com?search?sxsrf=ALekK02Nk… этот объект будет содержать:

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

  • href содержит URL целиком, включая в себя полный адрес хоста, страницы и все query-параметры.
  • host и hostname указывают имя хоста. Разница между ними в том, что host включает в себя порт. Если бы мы стучались не на [google.com](http://google.com), а на google.com:8080, то host содержал бы значение www.google.com:8080, в то время как hostname остался бы тем же.
  • pathname указывает путь от корня адреса до текущей страницы.
  • search указывает query-параметры, которые находятся в адресной строке, если они есть.
  • hash указывает хеш (ID элемента после
    #
    ) страницы. Его ещё называют якорем, потому что при переходе на страницу с хешем браузер найдёт элемент с ID, равным этому хешу, и прокрутит страницу к этому элементу.

Если мы хотим изменить адрес и перейти на другую страницу, мы можем указать новый location.href:

location.href = 'https://yandex.ru'
          location.href = 'https://yandex.ru'

И браузер перейдёт на страницу с адресом https://yandex.ru.

fetch Секция статьи «fetch»

fetch предоставляет возможность работы с сетью, с его помощью можно отправлять запросы на сервер.

fetch('http://example.com/movies.json')  .then((response) => {    return response.json()  })  .then((data) => {    console.log(data)  })
          fetch('http://example.com/movies.json')
  .then((response) => {
    return response.json()
  })
  .then((data) => {
    console.log(data)
  })

history Секция статьи «history»

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

Чтобы перемещаться по истории назад и вперёд, можно использовать методы back() и forward():

// Перешли на страницу назадhistory.back()// Перешли на страницу вперёд.history.forward()
          // Перешли на страницу назад
history.back()
// Перешли на страницу вперёд.
history.forward()

Для более точного управления историей рекомендуется использовать pushState()

и replaceState().

Методы pushState() и replaceState() принимают три параметра:

  • state — любые данные, которые связаны с переходом;
  • unused — неиспользуемый параметр, который существует по историческим причинам;
  • url (необязательный) — url адрес новой записи в истории.
// state — данные для новой записи в историиconst state = { user_id: 5 }// unused — для совместимости рекомендуется передавать пустую строку:const unused = ''// url — url адрес который будет добавлен в адресную строку:const url = '/another-page/'history.pushState(state, unused, url)
          
// state — данные для новой записи в истории const state = { user_id: 5 } // unused — для совместимости рекомендуется передавать пустую строку: const unused = '' // url — url адрес который будет добавлен в адресную строку: const url = '/another-page/' history.pushState(state, unused, url)

Браузер «перейдёт» на страницу /another-page/. Перейдёт не по-настоящему, потому что страница не перезагрузится, а лишь сменит адрес в строке. Это удобно при работе с одностраничными приложениями, когда мы не хотим, чтобы страница перезагружалась.

localStorage, sessionStorage Секция статьи «localStorage, sessionStorage»

Локальные хранилища используются, чтобы хранить какие-то данные в браузере пользователя.

Они удобны, когда мы не хотим отправлять данные на сервер, потому что они, например, промежуточные, или нужны только на клиенте.

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

function saveToStorage(data) {  try {    window.localStorage.setItem('some-key', JSON.stringify(data))  } catch {    alert('Failed to save data to local storage.')  }}function loadFromStorage() {  try {    return JSON.parse(window.localStorage.getItem('some-key'))  } catch {    alert('Failed to load data from local storage.')  }}// Код обработки формыfunction nextStep() {  // При переходе сохраняем всё, что введено:  saveToStorage(formData)}
          function saveToStorage(data) {
  try {
    window.localStorage.setItem('some-key', JSON.stringify(data))
  } catch {
    alert('Failed to save data to local storage.')
  }
}
function loadFromStorage() {
  try {
    return JSON. parse(window.localStorage.getItem('some-key'))
  } catch {
    alert('Failed to load data from local storage.')
  }
}
// Код обработки формы
function nextStep() {
  // При переходе сохраняем всё, что введено:
  saveToStorage(formData)
}

Разница между localStorage и sessionStorage в длительности хранения данных. Данные из sessionStorage сотрутся, когда пользователь закроет вкладку с приложением. Данные же из localStorage не стираются сами по себе.

На практике

Секция статьи «На практике»

Саша Беспоясов советует

Секция статьи «Саша Беспоясов советует»

navigator Секция статьи «navigator»

Чтобы проверить, есть ли в navigator необходимая вам фича, используйте in:

if ('bluetooth' in navigator) {  // Есть доступ к Bluetooth API.}if ('serviceWorker' in navigator) {  // Есть доступ к Service Worker API. }
          if ('bluetooth' in navigator) {
  // Есть доступ к Bluetooth API.
}
if ('serviceWorker' in navigator) {
  // Есть доступ к Service Worker API.
}

screen Секция статьи «screen»

Чтобы узнать, сколько пикселей занимает по ширине экран без полосы прокрутки (актуально для Windows, где полоса прокрутки отнимает какое-то пространство), используйте availWidth:

// Без учёта полосы:const screenWidth = screen.width// С учётом полосы прокрутки:const withoutScrollBar = screen.availWidth
          // Без учёта полосы:
const screenWidth = screen.width
// С учётом полосы прокрутки:
const withoutScrollBar = screen.availWidth

location Секция статьи «location»

Чтобы программно перейти на другую страницу, используйте location.href.

Перейти по адресу на текущем сайте:

location.href = '/another-page'
          location.href = '/another-page'

Чтобы перейти на другой сайт, укажите его URL полностью:

location. href = 'https://google.com'
          location.href = 'https://google.com'

Чтобы узнать полный путь от корня сайта, используйте location.pathname:

// https://out-great-service.io/full/path/to/current/pageconst path = location.pathnameconsole.log(path)// '/full/path/to/current/page'
          // https://out-great-service.io/full/path/to/current/page
const path = location.pathname
console.log(path)
// '/full/path/to/current/page'

history Секция статьи «history»

Чтобы изменить адрес без перезагрузки страницы, используйте history.pushState():

history.pushState(null, '', '/new/page/url')
          history.pushState(null, '', '/new/page/url')

Для передачи данных, ассоциированных с переходом, используйте первый аргумент в history.pushState():

const transitionData = { userName: 'Alex' }history. pushState(transitionData, '', '/new/page/url')
          const transitionData = { userName: 'Alex' }
history.pushState(transitionData, '', '/new/page/url')

После изменения url может потребоваться изменить заголовок — используйте document.title.

document.title = 'Это новая страница!'
          document.title = 'Это новая страница!'

localStorage Секция статьи «localStorage»

Используйте функции-обёртки, чтобы получать доступ к хранилищу безопасно и не забывать превращать данные в JSON-строку при записи и в объект при чтении:

function saveToStorage(key, data) {  try {    // Если браузер не поддерживает localStorage,    // блок try обезопасит код от неожиданной ошибки.    window.localStorage.setItem(key, JSON.stringify(data))  }  catch {    console.error('Failed to save data to local storage.')  }}function loadFromStorage(key) {  try {    return JSON.parse(window.localStorage. getItem(key))  }  catch {    console.error('Failed to load data from local storage.')  }}saveToStorage('user', {name: 'Alex', age: 26})loadFromStorage('user')
          function saveToStorage(key, data) {
  try {
    // Если браузер не поддерживает localStorage,
    // блок try обезопасит код от неожиданной ошибки.
    window.localStorage.setItem(key, JSON.stringify(data))
  }
  catch {
    console.error('Failed to save data to local storage.')
  }
}
function loadFromStorage(key) {
  try {
    return JSON.parse(window.localStorage.getItem(key))
  }
  catch {
    console.error('Failed to load data from local storage.')
  }
}
saveToStorage('user', {name: 'Alex', age: 26})
loadFromStorage('user')

Добро пожаловать в JavaScript и веб-браузеры

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

JavaScript


Еще в 1995 году разработчик Netscape по имени Брендан Эйх представил миру JavaScript. Несмотря на то, что Java и JavaScript содержат «Java» в своих именах, это два разных языка, которые не имеют ничего общего друг с другом. Официальное название JavaScript — ECMAScript, получившее свое название от поддерживающей его международной организации — Европейской ассоциации производителей компьютеров (ECMA).

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

Версии ECMAscript

Мы часто будем ссылаться на «ES6» в наших учебных программах. ES6 означает ECMAscript версии 6, которая вышла в 2015 году и внесла значительное количество изменений в разработку JavaScript. Полезно знать, что означает «ES6», но вам не нужно беспокоиться о том, какая функция JS поставляется с какой версией ES. В Epicodus и далее мы будем использовать функции всех версий ECMAscript.

Разметка, таблицы стилей и языки программирования

JavaScript — первый язык программирования, который мы будем изучать в Epicodus. Позже, в зависимости от трека, на который вы подписались, вы также изучите C# или Ruby. Если непонятно, HTML, Markdown и CSS не являются языками программирования. Давайте рассмотрим различия:

  • Языки разметки , такие как HTML и Markdown, определяют формат данных, например разделение обычного текста на заголовки, абзацы, списки и т. д. Языки разметки определяют структуру данных.
  • Языки таблиц стилей , такие как CSS, определяют представление данных или то, как они выглядят. Языки таблиц стилей стилизуют данные, такие как определение цвета текста на веб-сайте.
  • Языки программирования , такие как JavaScript, позволяют выполнять действия и интерактивность. Языки программирования имеют функциональное назначение, то есть они делать вещей, например оценивать математику, обрабатывать события (например, что делать после того, как пользователь нажмет кнопку) или обрабатывать условные ситуации (например, иметь возможность определить, может ли кто-то голосовать, основываясь на том, является ли его возраст больше или меньше чем 18). Короче говоря, языки программирования манипулируют данными и позволяют нам взаимодействовать с данными.

HTML, CSS и JavaScript — стандартные технологии, используемые в веб-разработке.

Веб-документы Mozilla Developer Network

Чтобы помочь нам писать JavaScript, мы узнаем, как использовать документацию и справочник Mozilla Developer Network. Согласно сайту, MDN создан разработчиками для разработчиков.

MDN Web Docs (ранее известная как MDN — сеть разработчиков Mozilla) — это развивающаяся обучающая платформа для веб-технологий и программного обеспечения, лежащего в основе Интернета, включая CSS, HTML и JavaScript… Миссия MDN проста: предоставить разработчикам информацию, необходимую им для простого создания проектов в открытом Интернете. Если это открытая технология, представленная в Интернете, мы хотим задокументировать ее.

MDN содержит отличную документацию по JavaScript, включая руководства для начинающих, примеры кода и подробные справочные материалы.

Веб-браузеры


Давайте кратко рассмотрим, как работают веб-браузеры, чтобы получить больше информации о программировании для Интернета. Веб-браузер — это приложение, позволяющее просматривать веб-страницы. В Epicodus мы используем браузер Chrome от Google. Другие популярные браузеры включают Firefox от Mozilla, Edge от Microsoft, Safari от Apple и многие другие. Важно знать, что каждый браузер имеет свои собственные инструменты, в том числе собственную версию JavaScript, основанную на стандартах ECMAscript. Да все верно. ECMA устанавливает стандарты только для JavaScript, и у каждого браузера есть своя версия JavaScript.

Веб-стандарты

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

Веб-стандарты включают правила для:

  • Интернета
  • HTML, CSS и DOM (о которых мы скоро узнаем больше)
  • Доступность
  • JavaScript
  • И БОЛЬШЕ!

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

Как сделать веб-браузер

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

Механизмы JavaScript

Механизм JavaScript выполняет исходный код JavaScript, собственную версию браузера стандартов ECMAscript. Движок создан для быстрой работы, а также для соответствия веб-стандартам. Примечательно, что движки JavaScript используются не только в браузерах, но и на серверах и в компиляторах JavaScript. Мы пока не будем беспокоиться об обоих.

Механизмы браузера

Механизм браузера преобразует исходный код HTML и CSS в визуальное и интерактивное представление на экране вашего компьютера. Он также создан для быстрой работы и соответствия веб-стандартам. Если вы исследуете движки браузера в Интернете, обратите внимание, что вы увидите совпадения для «движков рендеринга» и «механизмов макета», двух процессов, которые являются частью функциональности движка браузера.

Примеры крупных компаний

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

  • Браузер Google Chrome использует движок JavaScript V8 вместе с движком браузера Blink.
  • Браузер Mozilla Firefox использует движок JavaScript SpiderMonkey, а Gecko является их движком браузера.
  • Браузер Apple Safari использует JavaScriptCore в качестве механизма JavaScript и WebKit в качестве механизма браузера.
  • Microsoft Edge использует Chakra в качестве движка JavaScript и EdgeHTML в качестве движка браузера.

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

Совместимость с браузерами

Несмотря на то, что компании, производящие веб-браузеры, должны соответствовать международным веб-стандартам, это не означает, что каждый браузер соответствует всем этим стандартам. Технологии постоянно развиваются, и регулярно разрабатываются новые стандарты. Это означает, что компании, производящие веб-браузеры, должны идти в ногу с новыми выпускаемыми стандартами. Это также означает, что некоторые веб-браузеры отстают в реализации новых стандартов или просто устарели (например, Internet Explorer).

Из-за этого веб-разработчикам необходимо учитывать совместимость браузеров. Совместимость с браузером — это способность веб-сайтов работать в нескольких разных веб-браузерах.

Давайте рассмотрим пример. Ознакомьтесь с этой таблицей совместимости, в которой описаны функции ECMAscript версии 6 (ES6) и поддерживаются ли эти функции веб-браузерами. Эта сложная таблица показывает функции ES6 в каждой строке и перечисляет не только настольные браузеры в столбцах, но и мобильные браузеры, серверы и компиляторы, использующие JavaScript. Любое поле, окрашенное в зеленый цвет, означает, что функция ES6 поддерживается. Если вы выберете версию ECMAscript «2016+» (в левом верхнем углу строки меню), вы сможете увидеть функции из более поздних версий ECMAscript.

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

Выводы


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

Просто запомните эти элементы:

  • HTML, CSS и JavaScript — это основные веб-технологии, и все браузеры их поддерживают.
  • Каждый браузер уникален, создан разными компаниями и работает на разных технологиях.
  • Все браузеры соответствуют одним и тем же веб-стандартам, установленным международными организациями.

По мере изучения этого раздела мы будем возвращаться к концепциям этого урока.

404: Страница не найдена

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

Что я могу сделать сейчас?

Если вы впервые посещаете TechTarget, добро пожаловать! Извините за обстоятельства, при которых мы встречаемся. Вот куда вы можете пойти отсюда:

Поиск
  • Ознакомьтесь с последними новостями.
  • Наша домашняя страница содержит самую свежую информацию о Java-разработке.
  • Наша страница «О нас» содержит дополнительную информацию о сайте, на котором вы находитесь, TheServerSide.com.
  • Если вам нужно, свяжитесь с нами, мы будем рады услышать от вас.

Поиск по категории

SearchAppArchitecture

  • Признаки антипаттерна «Золотой молот» и 5 способов его избежать

    Антипаттерн «Золотой молот» может подкрасться к команде разработчиков, но есть способы его обнаружить. Изучите знаки, а также некоторые…

  • Почему контрактное тестирование может быть необходимо для микросервисов

    Разработчики сталкиваются с многочисленными проблемами, пытаясь выполнить традиционное сквозное интеграционное тестирование микросервисов. Контракт…

  • Растущая роль разработчиков, ориентированных на данные

    Больше, чем когда-либо, растущая зависимость разработчиков от данных, источников данных и пользователей подталкивает разработчиков к пониманию ИТ-покупок …

ПоискSoftwareQuality

  • Инструменты Atlassian Open DevOps объединяют больше рабочих процессов

    Atlassian утверждает, что по мере роста числа поставщиков комплексных инструментов DevOps пользователям нужен выбор; клиенты говорят, что интеграция сторонних инструментов — это …

  • Инструмент управления API с низким кодом борется со сложностью с оговорками

    Новый инструмент управления API с низким кодом может принести такие преимущества, как повышенная скорость, меньшее количество ошибок кодирования и более широкий доступ. Но…

  • Обновления безопасности GitHub и расширение Copilot наделали много шума

    Новые функции, представленные на GitHub Universe, включают частные каналы для решения проблем безопасности и Copilot для бизнеса, которые могут упасть …

SearchCloudComputing

  • Эксперты по облачным технологиям и их прогнозы AWS re:Invent 2022

    Поскольку AWS готовится к своему крупнейшему событию года, наши участники предсказывают, что поставщик облачных услуг представит на re:Invent 2022.

  • Сравните Amazon Lightsail и EC2 для нужд вашего веб-приложения

    Не всем разработчикам нужны или нужны все возможности Amazon EC2. Посмотрите, подходит ли сокращенный и упрощенный Amazon Lightsail …

  • VMware добавляет инструменты управления несколькими облаками

    VMware представила HCX+, управляемую услугу для мультиоблачных центров обработки данных, а также возможности Kubernetes для частных облаков и . ..

ПоискБезопасность

  • Основные проблемы кибербезопасности метавселенной: как их решить

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

  • Вредоносная программа Magecart угрожает продавцам Magento

    Исследователи Sansec говорят, что до 38% коммерческих клиентов, использующих платформы Adobe Commerce и Magento, могут быть заражены …

  • 5 лучших инструментов сканирования уязвимостей для групп безопасности

    Используйте эти пять инструментов сканирования уязвимостей, чтобы найти слабые места и потенциальные эксплойты в веб-приложениях, ИТ и облаке …

ПоискAWS

  • AWS Control Tower стремится упростить управление несколькими учетными записями

    Многие организации изо всех сил пытаются управлять своей огромной коллекцией учетных записей AWS, но Control Tower может помочь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *