По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Управление кэш-памятью определяет поведение кэширования для веб-сайта, давая браузерам понять, как часто следует обновлять локально хранящиеся ресурсы. Что такое cache-control? Cache-control – это HTTP-заголовок, который определяет поведение браузера при кэшировании. Проще говоря, когда кто-то посещает веб-сайт, то его браузер сохраняет определенные ресурсы, такие как изображения и данные веб-сайта, в хранилище, которое называется кэш. Когда пользователь вновь посещает этот веб-сайт, то cache-control диктует правила, которые определяют, будут ли эти ресурсы загружены из локального кэша данного пользователя, или браузер должен отправить запрос на сервер для получения новых ресурсов. Для более глубокого понимания, что такое cache-control необходимо базовое понимание того, что такое кэширование в браузере и что такое HTTP-заголовки. Что такое кэширование в браузере? Как уже было описано выше, кэширование в браузере – это когда веб-браузер сохраняет ресурсы веб-сайта, чтобы не запрашивать их вновь с сервера. Например, фоновое изображение веб-сайта может быть сохранено локально в кэше, чтобы при повторном посещении пользователем данного веб-сайта изображение загружалось из локальных файлов пользователя, и тем самым страница загружалась бы быстрее. Браузеры хранят эти ресурсы в течение определенного периода времени, известного как время жизни информации (TTL - Time To Live). Если пользователь запросит кэшированный ресурс после истечения TTL, то браузеру придется снова обратиться к серверу, чтобы загрузить новую копию ресурса. Как браузеры и веб-серверы узнают TTL для каждого ресурса? Вот здесь в игру вступают HTTP-заголовки. Что такое HTTP-заголовки? Протокол передачи гипертекста (HTTP - Hypertext Transfer Protocol) представляет собой синтаксис для обмена данными во Всемирной паутине, и этот обмен данными состоит из запросов от клиентов к серверам и ответов от серверов к клиентам. Каждый из HTTP-запросов и ответов содержит ряд пар «ключ-значение», которые называют заголовками. Заголовки содержат большое количество важной информации о каждом сообщении. Например, заголовок запроса обычно содержит: Информацию о том, какой ресурс запрашивается Информацию о том, какой браузер использует клиент Информацию о том, какие форматы данных примет клиент Заголовки ответов обычно содержат информацию о: Успешности выполнения запроса Языке и формате любых ресурсов в теле ответа Заголовок cache-control может использоваться как в HTTP-запросах, так и в HTTP-ответах. Что находится внутри заголовка cache-control? Заголовки состоят из пар «ключ-значение», разделенных двоеточием. Для cache-control «ключ», или часть слева от двоеточия, - это всегда «cache-control». «Значение» - это то, что находится справа от двоеточия. Значений для cache-control может быть несколько, или оно может быть одно. Если их несколько, то они разделяются запятыми. Эти значения называются директивами, и они определяют, кто может кэшировать ресурс, а также как долго эти ресурсы могут быть кэшированными, прежде чем их необходимо будет обновить. Давайте рассмотрим несколько наиболее распространенных директив cache-control: cache-control: private Ответ с директивой private может быть кэширован только клиентом, но никак не посредником, таким как CDN или прокси-сервером. Часто сюда относятся ресурсы, которые содержат личные данные, например, веб-сайт, отображающий личную информацию пользователя. cache-control: public Здесь наоборот, директива public говорит о том, что ресурс может хранится в любом кэше. cache-control: no-store Ответ с директивой no-store нельзя кэшировать нигде и никогда. Это означает, что при каждом запросе пользователем этих данных, требуется отправить запрос на исходный сервер для их получения. Эта директива, как правило, используется для ресурсов, содержащих конфиденциальные данные, например, информацию о банковском счете. cache-control: no-cache Эта директива означает, что кэшированные версии запрошенного ресурса нельзя использовать без предварительной проверки наличия обновленной версии. Обычно это делается с помощью ETag. ETag – это еще один HTTP-заголовок, который содержит маркер, уникальный для версии ресурса на момент его запроса. Этот маркер меняется на исходном сервере при каждом обновлении ресурса. Когда пользователь возвращается на страницу с ресурсом под директивой no-cache, клиенту всегда придется подключаться к исходному серверу и сравнивать ETag на кэшированном ресурсе с ETag на сервере. Если они совпадают, то кэшированный ресурс предоставляется пользователю. В противном случае, это означает, что ресурс был обновлен, и клиенту необходимо загрузить обновленную версию, чтобы иметь возможность предоставить его пользователю. Этот процесс гарантирует, что пользователь всегда будет получать самую последнюю версию ресурса без ненужных постоянных загрузок. cache-control: max-age Эта директива определяет время жизни информации, или, иными словами, сколько секунд ресурс может находиться в кэше после его загрузки. Например, если max-age установлен на 1800, то это значит, что в течение 1800 секунд (30 минут) после того, как ресурс был впервые запрошен с сервера, пользователю будет предоставляться кэшированная версия этого ресурса при последующих запросах. Если пользователь запросит этот ресурс снова по истечении этих 30 минут, то клиенту необходимо будет запросить новую копию с исходного сервера. Директива s-maxage предназначена специально для общих кэшей, таких как CDN. Она определяет, как долго эти общие кэши могут продолжать обслуживать ресурс из кэша. Эта директива отменяет действие директивы max-age для некоторых клиентов. Почему cache-control так важен? Кэширование в браузере – это отличный способ сохранить ресурсы и, тем самым, улучшить процесс взаимодействия с пользователем в Интернете, но без cache-control этот процесс не был бы столь надежным. Все ресурсы на всех сайтах будут использовать одни и те же правила кэширования, а это значит, что конфиденциальная информация будет кэшироваться также, как и общедоступная информация, а ресурсы, которые часто обновляются, будут кэшироваться на то же время, что и ресурсы, которые редко обновляются. Cache-control добавляет гибкости, которая делает кэширование в браузере действительно полезным, позволяя разработчикам определять, как будет кэшироваться каждый ресурс. Этот заголовок также позволяет разработчикам устанавливать определенные правила для посредников, что является причиной, по которой сайты, которые используют CDN, как правило, работают лучше, чем сайты, которые этого не делают.
img
Весь шум сосредоточен вокруг больших данных. И молодые, и опытные компании вовсю изучают новый подход к решению проблем с помощью «больших данных». Но что такое эти большие данные? И как можно воспользоваться растущим спросом на знания и технологии, касающиеся больших данных? Данные – это информация. Большие данные – это много информации. Ключевыми различиями между просто данными и большими данными заключается в объеме, скорости и многообразии. Как правило, большие данные – это более подробная информация с большим количеством отдельных компонентов, которые собираются за более короткий период времени. Источники больших данных часто являются новыми, но могут охватывать и более старые потоки данных. В наше время мы создаем больше данных, чем когда-либо прежде. Эти данные содержат ценную информацию, которую мы можем использовать для улучшения различных систем и процессов. Специалисты по обработке данных, аналитики и инженеры собирают и анализируют данные для того, чтобы сделать обоснованные и полезные выводы. Далее мы более подробно рассмотрим большие данные, а также технологии, которые лежат в их основе, проблемы их использования и многое другое. Примеры больших данных Как мы уже говорили ранее, большие данные содержат ценную информацию. Результаты анализа этих данных помогают компаниям лучше обслуживать своих клиентов и зарабатывать больше денег. Именно из-за этого большие данные часто используют в маркетинге. Многие из наших действий в Интернете отслеживаются, от нашей активности в социальных сетях до наших покупательских привычек. Маркетологи используют эти данные для таргетированной рекламы, продвижения товаров и услуг, соответствующих вашим интересам. Большие данные также используются в сфере здравоохранения. Вспомните хотя бы все эти устройства, которые мы сегодня используем, от Apple Watch до Fitbits. Эти устройства способны отслеживать частоту сердечных сокращений, дыхание, режим сна и многое другое – и даже предупреждать вас о любых изменениях, которые вас интересуют. Кроме того, врачи могут использовать данные с этих устройств для создания более полных профилей здоровья и для предоставления лучшего лечения для своих пациентов. Примеры больших данных можно найти в транспортной и автомобильной отраслях. Беспилотные автомобили и грузовики используют данные о погоде и дорожных условиях, информацию о транспортных средствах и пешеходах и многое другое для повышения безопасности и эффективности. Как вы можете видеть, большие данные обладают огромным потенциалом, способным улучшить наше общество. Но прежде чем использовать большие данные, их необходимо обработать. Обработка больших данных Так как большие данные очень обширны и детальны, их необходимо обработать, прежде чем анализировать для получения информации. Процесс обработки включает в себя сбор и сравнение данных их нескольких источников, их очистку от ошибок или дубликатов и многое другое. После того, как большие данные будут обработаны, специалисты по обработке данных просматривают их в поисках любых значимых закономерностей. Очень часто этот процесс основан на машинном обучении. Затем используются методы визуализации данных, чтобы упростить понимание результатов анализа. Также немаловажную роль в анализе данных играет статистика, так как помогает понять взаимосвязь между данными и вероятными результатами. Языки программирования больших данных За инструментами, которые специалисты по обработке данных используют для сбора, обработки, анализа и визуализации больших данных, стоит несколько языков программирования. Каждый из языков имеет свои собственные преимущества. Вот некоторые из наиболее популярных языков программирования, используемых для больших данных: Python Python - простой язык для изучения и один из самых популярных языков, используемых в науке о данных. Поэтому существует множество библиотек Python, которые предназначены для обработки, анализа и визуализации данных. Эти библиотеки существенно упрощают работу с большими данными. Python также можно использовать для статистического анализа, и он широко используется в машинном обучении – это два важнейших компонента науки о данных. Java Java является не менее полезным языком для больших данных. Некоторые из популярных инструментов для работы с большими данными написаны именно на Java. Они являются свободными, гибкими и бесплатными, что делает Java очень привлекательным для всех, кто работает с большими данными. JavaScript JavaScript – это один из основных языков программирования для веб-разработки. Он позволяет делать веб-сайты интерактивными и динамичными, а не статичными. Преимущества JavaScript делают его полезным для представления и визуализации данных в Интернете. JavaScript часто используется для обмена большими данными и упрощения их понимания. C/C++ С и С++ - невероятно полезные языки программирования. И хотя С был изобретен в начале 1970-х, а С++ - в середине 1980-х, программисты со знанием С и С++ по-прежнему пользуются большим спросом. И на это есть веская причина. Когда речь идет о скорости, то С++ часто оказывается лучшим вариантом. Одно из ключевых преимуществ языков программирования С – это быстрая обработка больших объемов данных. Когда необходимо получать информацию быстро в некоторых случаях, то С++ может оказать лучшим выбором. R Неотъемлемой частью получения достоверных и полезных выводов является статистический анализ больших данных. R отлично справляется со статистическим анализом и визуализацией. R является предпочтительным вариантом для анализа данных, когда необходимо применить сложную статистику. SQL SQL используется для доступа к информации, которая хранится в базах данных. Язык был разработан для оперирования с большими базами данных со связями между различными переменными из разных наборов данных. Часто SQL используется для простого доступа к большим объемам хранимых данных. Проблемы, связанные с большими данными С большими данными приходят большие проблемы. Входящие данные, которые необходимо проанализировать, могут оказаться структурированными, неструктурированными или чем-то средним между тем и тем. Структурированные данные четко определены, например, день рождения или количество проданных товаров в день. И их намного проще обрабатывать и интерпретировать. Неструктурированные данные сложно понять, и они нуждаются в дополнительной интерпретации, чтобы стать полезными. Хорошим примером неструктурированных данных обычно является текст электронного письма или твита. Одна из проблем больших данных заключается лишь в том, что просто необходимо осмыслить огромный объем доступной информации. Именно алгоритмы для понимания ключевого смысла текста являются основной частью извлечения информации из больших данных. Также серьезными проблемами является конфиденциальность и безопасность. Часто кажется, что мы слышим о краже личной информации от тысяч людей еженедельно. Большие данные требуют новых инструментов и методов для обеспечения безопасности информации. Потеря контроля над информацией может нанести ущерб репутации компании, а также может привести к различным юридическим и финансовым последствиям. Огромной проблемой также можно считать хранение и обработку данных. При наличии больших объемов данных, которые быстро меняются, требуется быстрый доступ и интерпретация. Часто для этой цели используют облачное хранилище, но оно может создавать дополнительные проблемы со скоростью, стоимостью и доступностью. Узнайте больше о больших данных Возможностей в области больших данных очень много, и спрос на специалистов по обработке данных, вероятно, будет только расти, так как онлайн-мир продолжает производить все больше информации. Если вас заинтересовала работа с большими данными, то первый шаг – это научиться работать с некоторыми языками программирования из списка выше.
img
В сегодняшней статье покажем пример настройки DMVPN – Dynamic Multipoint VPN, что является VPN решением компании Cisco. Данное решение используется, когда требуется высокая масштабируемость и легкость настройки при подключении филиалов к головному офису. DMPVN одно из самых масштабируемых и эффективных решений VPN поддерживаемых компанией Cisco. В основном оно используется при топологии Hub-and-Spoke, где вы хотели бы видеть прямые VPN туннели Spoke-to-Spoke в дополнение к обычным Spoke-to-Hub туннелям. Это означает, что филиалы смогут общаться с друг другом напрямую, без необходимости прохождение трафика через HQ. Как уже упоминали, эта технология является проприетарной технологией Cisco. Если вам необходимо подключить более десяти сайтов к головному офису, то DMPVN будет идеальным выбором. Кроме того, DMPVN поддерживает не только Hub-and-Spoke, но и Full-Mesh топологию, так как все сайты имеют между собой связность без необходимости настройки статических VPN туннелей между сайтами. Некоторые характеристики DMVPN Для начала перечислим важные характеристики данного способа организации Site-to-Site VPN для лучшего понимания: Центральный маршрутизатор (HUB) - данный роутер работает как DMVPN сервер, и Spoke маршрутизаторы работают как DMVPN клиенты; У данного маршрутизатора есть публичный статический IP-адрес на WAN интерфейсе; У Spoke маршрутизаторов на WAN интерфейсах может как статический, так и динамический публичный IP-адрес; У каждого филиала (Spoke) есть IPSEC туннель к головному офису (Hub); Spoke-to-Spoke - туннели устанавливаются при возникновении необходимости, когда есть движение трафика между филиалами. Таким образом, трафик может не ходить через головной офис, а использовать прямые туннели между филиалами; Все туннели используют Multipoint GRE c IPSEC; NHRP (Next Hop Resolution Protocol) - данный протокол используется для установления соответствий между приватными IP туннельных интерфейсов с публичными WAN адресами Описанные выше NHRP соответствия будут храниться на NHRP сервере, чем в нашем случае является HUB роутер. Каждый филиал устанавливает соединение с головным офисом и регистрирует свой публичный IP-адрес и его приватный IP-адрес тунеля; Когда филиалу необходимо отправить пакеты в подсеть другого филиала, он запрашивает NHRP сервер для получения информации о внешнем публичном адресе целевого филиала; Для лучшей масштабируемости советуем использовать один из протоколов динамический маршрутизации между всеми роутерами – например, EIGRP; Еще раз кратко о технологиях, которые использует DMVPN: Multipoint GRE; IPSEC; NHRP – Next Hop Resolution Protocol; Статическая или динамическая маршрутизация; Настройка маршрутизатора Конкретно в нашем примере у нас будет HUB маршрутизатор и два филиала. И, как было описано ранее, HUB – это DMVPN cервер, а филиалы – DMPVN клиенты. В нашем примере в качестве маршрутизатора используется CISCO1921/K9 Сначала настраиваем HUB маршрутизатор – ему необходимо присвоить статический IP – адрес на внешнем WAN-интерфейсе: ! Настраиваем интерфейсы interface GigabitEthernet0/0 description to Internet-WAN ip address 10.10.10.1 255.255.255.252 ! interface GigabitEthernet0/1 description to LAN ip address 192.168.160.1 255.255.255.0 duplex auto ! Настраиваем туннельный интерфейс, который является улучшенным GRE (Multipoint GRE) interface Tunnel1 description DMVPN Tunnel ip address 172.16.1.1 255.255.255.0 // выбираем приватную подсеть для туннелей no ip redirects ip nhrp authentication nhrp1234 // аутентификация между маршрутизаторами ip nhrp network-id 1 // сетевой идентификатор, который должен быть одинаковым на всех маршрутизаторах load-interval 30 keepalive 5 10 tunnel source GigabitEthernet0/0 // назначаем источником туннеля WAN интерфейс tunnel mode gre multipoint // определяем туннель как mGRE tunnel protection ipsec profile protect-gre // шифруем трафик в туннеле с помощью IPSEC ip mtu 1440 // уменьшаем MTU для того, чтобы разрешить оверхед на mGRE и IPSEC ip nhrp map multicast dynamic // разрешаем форвардить мультикаст трафик между туннелями. ! Настраиваем IPSEC на главном роутере crypto isakmp policy 1 encr 3des hash md5 authentication pre-share group 2 crypto isakmp key isakmp1234 address 0.0.0.0 0.0.0.0 // принимать соединения от любого источника при наличии динамических филиалов ! crypto ipsec transform-set TS esp-3des esp-md5-hmac mode tunnel ! ! crypto ipsec profile protect-gre // профиль добавленный к mGRE туннелю для шифрования set security-association lifetime seconds 86400 set transform-set TS ! Настраиваем статическую маршрутизацию на HUB маршрутизаторе ip route 192.168.164.0 255.255.255.0 172.16.1.2 // удаленные подсети доступны через IP удаленного туннеля ip route 192.168.161.0 255.255.255.0 172.16.1.3 // удаленные подсети доступны через IP удаленного туннеля Затем настраиваем маршрутизаторы в филиалах (Spoke роутеры) - у одного маршрутизатора статический айпишник на WAN интерфейсе, и у другого динамический, получаемый по DHCP. Первый маршрутизатор в филиале, с динамическим IP: interface GigabitEthernet0/0 description WAN to Internet ip address dhcp duplex auto speed auto interface GigabitEthernet0/1 description To LAN ip address 192.168.164.1 255.255.255.0 duplex auto speed auto interface Tunnel1 ip address 172.16.1.2 255.255.255.0 // помещаем в ту же подсеть что и другие туннели no ip redirects ip nhrp map multicast dynamic // разрешаем форвардить мультикаст трафик между туннелями tunnel source GigabitEthernet0/0 // “source”- WAN интерфейс tunnel mode gre multipoint tunnel protection ipsec profile protect-gre ip nhrp authentication nhrp1234 ip nhrp map 172.16.1.1 10.10.10.1 // соответствие HUB адреса туннеля с HUB адресом WAN ip nhrp network-id 1 ip nhrp nhs 172.16.1.1 // настройка NHRP ip nhrp registration no-unique // если NHRP процесс завершился (поиск соответствия) для определенного IP, то больше данный процесс не запустится ip nhrp map multicast 10.10.10.1 // Отправка milticast трафика только в Hub. Головной маршрутизатор будет получать весь мультикаст трафик (например, обновления протокола маршрутизации) и отправлять его всем Spoke маршрутизаторам ip mtu 1440 load-interval 30 keepalive 5 10 crypto isakmp policy 1 encr 3des hash md5 authentication pre-share group 2 crypto isakmp key isakmp1234 address 0.0.0.0 0.0.0.0 // Филиалы должны разрешать подклюения с любого адреса для формирования IPSEC VPN туннелей с другими филиалами ! ! crypto ipsec transform-set TS esp-3des esp-md5-hmac mode tunnel ! crypto ipsec profile protect-gre set security-association lifetime seconds 86400 set transform-set TS ip route 192.168.160.0 255.255.255.0 172.16.1.1 // Маршрут для HUB ip route 192.168.161.0 255.255.255.0 172.16.1.3 // Маршрут для другого филиала Spoke site Второй филиальный маршрутизатор, со статическим IP: interface GigabitEthernet0/0 description TO Internet ip address 10.10.10.9 255.255.255.252 duplex auto speed auto interface GigabitEthernet0/1 description To: LAN ip address 192.168.161.1 255.255.255.0 duplex auto speed auto interface Tunnel1 ip address 172.16.1.3 255.255.255.0 // должен быть в той же подсети что и другие туннели no ip redirects ip nhrp map multicast dynamic // разрешаем форвард мульткастов между туннелями. tunnel source GigabitEthernet0/0 tunnel mode gre multipoint tunnel protection ipsec profile protect-gre ip nhrp authentication nhrp1234 ip nhrp map 172.16.1.1 10.10.10.1 // мапируем адрес HUB тунеля к WAN адресу ip nhrp network-id 1 ip nhrp nhs 172.16.1.1 // настраиваем NHRP клиент с указанием адреса сервера ip nhrp registration no-unique ip nhrp map multicast 10.10.10.1 ip mtu 1440 load-interval 30 keepalive 5 10 crypto isakmp policy 1 encr 3des hash md5 authentication pre-share group 2 crypto isakmp key isakmp1234 address 0.0.0.0 0.0.0.0 ! crypto ipsec transform-set TS esp-3des esp-md5-hmac mode tunnel ! !crypto ipsec profile protect-gre set security-association lifetime seconds 86400 set transform-set TS ip route 192.168.160.0 255.255.255.0 172.16.1.1 // маршрут до головного маршрутизатор ip route 192.168.164.0 255.255.255.0 172.16.1.2 // маршрут до другого филиала Переходим к тестированию: show dmvpn // проверяем статус DMVPN и NHRP show crypto isakmp sa // проверяем IPSEC cвязность между маршрутизаторами ping 192.168.164.1 // пингуем для проверки ping 192.168.1.1 В нашем примере использовалась статическая маршрутизация, но при большом количестве филиалов необходимо использовать протоколы динамический маршрутизации для уменьшения ручного труда и риска ошибки.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59