9. Браузеры
Общая схема работы браузера
Краткая история
Браузерные войны
Режимы отображения
UserAgent
Кроссбраузерность
10. Бра́узер — программное обеспечение для просмотра
веб-сайтов, т.е. для запроса веб-страниц, их обработки,
вывода и перехода от одной страницы к другой.
Wikipedia
4
18. Краткая история браузеров. 1991 год
WorldWideWeb
• Начало эпохи браузеров
• Разработал Тим Бернерс-Ли
– он очень крутой
8
19. Краткая история браузеров. 1991 год
WorldWideWeb
• Начало эпохи браузеров
• Разработал Тим Бернерс-Ли
– он очень крутой
– изобретатель всемирной паутины и как следствие: URI,
URL, HTTP, HTML, семантического веба
8
20. Краткая история браузеров. 1991 год
WorldWideWeb
• Начало эпохи браузеров
• Разработал Тим Бернерс-Ли
– он очень крутой
– изобретатель всемирной паутины и как следствие: URI,
URL, HTTP, HTML, семантического веба
• Переименован в Nexus, чтобы избежать путаницы
8
21. Краткая история браузеров. 1991 год
WorldWideWeb
• Начало эпохи браузеров
• Разработал Тим Бернерс-Ли
– он очень крутой
– изобретатель всемирной паутины и как следствие: URI,
URL, HTTP, HTML, семантического веба
• Переименован в Nexus, чтобы избежать путаницы
• Графический браузер
8
22. Краткая история браузеров. 1991 год
WorldWideWeb
• Начало эпохи браузеров
• Разработал Тим Бернерс-Ли
– он очень крутой
– изобретатель всемирной паутины и как следствие: URI,
URL, HTTP, HTML, семантического веба
• Переименован в Nexus, чтобы избежать путаницы
• Графический браузер
– но картинки только в отдельном окне
8
23. Краткая история браузеров. 1991 год
WorldWideWeb
• Начало эпохи браузеров
• Разработал Тим Бернерс-Ли
– он очень крутой
– изобретатель всемирной паутины и как следствие: URI,
URL, HTTP, HTML, семантического веба
• Переименован в Nexus, чтобы избежать путаницы
• Графический браузер
– но картинки только в отдельном окне
– WYSIWYG
8
24. Краткая история браузеров. 1991 год
WorldWideWeb
• Начало эпохи браузеров
• Разработал Тим Бернерс-Ли
– он очень крутой
– изобретатель всемирной паутины и как следствие: URI,
URL, HTTP, HTML, семантического веба
• Переименован в Nexus, чтобы избежать путаницы
• Графический браузер
– но картинки только в отдельном окне
– WYSIWYG
– NeXT, Objective C
8
29. Краткая история браузеров. 1993 год
Mosaic
• Разработан в NCSA
• Популяризовал веб
– удобный установщик
9
30. Краткая история браузеров. 1993 год
Mosaic
• Разработан в NCSA
• Популяризовал веб
– удобный установщик
– понятный интерфейс
9
31. Краткая история браузеров. 1993 год
Mosaic
• Разработан в NCSA
• Популяризовал веб
– удобный установщик
– понятный интерфейс
– Windows, Unix и Mac версия
9
32. Краткая история браузеров. 1993 год
Mosaic
• Разработан в NCSA
• Популяризовал веб
– удобный установщик
– понятный интерфейс
– Windows, Unix и Mac версия
– и конечно же инлайновые картинки
9
36. Краткая история браузеров. 1994 год
Netscape Navigator 1.x
• Обладает самыми широкими возможностями
• Стремительно набирает популярность
10
37. Краткая история браузеров. 1994 год
Netscape Navigator 1.x
• Обладает самыми широкими возможностями
• Стремительно набирает популярность
• Сodename Mozilla (Mosaic Killer)
10
38. Краткая история браузеров. 1994 год
Netscape Navigator 1.x
• Обладает самыми широкими возможностями
• Стремительно набирает популярность
• Сodename Mozilla (Mosaic Killer)
– вообще сложная история с названием Mozilla
10
39. Краткая история браузеров. 1994 год
Netscape Navigator 1.x
• Обладает самыми широкими возможностями
• Стремительно набирает популярность
• Сodename Mozilla (Mosaic Killer)
– вообще сложная история с названием Mozilla
– ещё и имя маскота
10
40. Краткая история браузеров. 1994 год
Netscape Navigator 1.x
• Обладает самыми широкими возможностями
• Стремительно набирает популярность
• Сodename Mozilla (Mosaic Killer)
– вообще сложная история с названием Mozilla
– ещё и имя маскота
10
44. Краткая история браузеров. 1996 год
Netscape Navigator 2.x-3.x
• Добавлена поддержка
– LiveAudio, LiveVideo, QuickTime, POP3, HTML 3.2
11
45. Краткая история браузеров. 1996 год
Netscape Navigator 2.x-3.x
• Добавлена поддержка
– LiveAudio, LiveVideo, QuickTime, POP3, HTML 3.2
– Java, JavaScript, плагины и само собой
анимированые гифки
11
46. Краткая история браузеров. 1996 год
Netscape Navigator 2.x-3.x
• Добавлена поддержка
– LiveAudio, LiveVideo, QuickTime, POP3, HTML 3.2
– Java, JavaScript, плагины и само собой
анимированые гифки
– email клиент и многое другое
11
47. Краткая история браузеров. 1996 год
Netscape Navigator 2.x-3.x
• Добавлена поддержка
– LiveAudio, LiveVideo, QuickTime, POP3, HTML 3.2
– Java, JavaScript, плагины и само собой
анимированые гифки
– email клиент и многое другое
• Около 90% рынка
11
55. Краткая история браузеров. 1996 год
Internet Explorer 1-2
• Разработан на основе Mosaic
• Поддерживает CSS
13
56. Краткая история браузеров. 1996 год
Internet Explorer 1-2
• Разработан на основе Mosaic
• Поддерживает CSS
– правда очень частично
13
57. Краткая история браузеров. 1996 год
Internet Explorer 1-2
• Разработан на основе Mosaic
• Поддерживает CSS
– правда очень частично
– но зато, впервые на рынке
13
58. Краткая история браузеров. 1996 год
Internet Explorer 1-2
• Разработан на основе Mosaic
• Поддерживает CSS
– правда очень частично
– но зато, впервые на рынке
• Плагины ActiveX, Java
13
59. Краткая история браузеров. 1996 год
Internet Explorer 1-2
• Разработан на основе Mosaic
• Поддерживает CSS
– правда очень частично
– но зато, впервые на рынке
• Плагины ActiveX, Java
• Поставляется с Windows 95 OSR2
13
60. Краткая история браузеров. 1996 год
Internet Explorer 1-2
• Разработан на основе Mosaic
• Поддерживает CSS
– правда очень частично
– но зато, впервые на рынке
• Плагины ActiveX, Java
• Поставляется с Windows 95 OSR2
• Первая версия включавшая синюю букву E
13
64. Краткая история браузеров. 1997 год
Netscape Navigator 4.x
• CSS1 частично
• Очень старый движок по сравнению с IE4
14
65. Краткая история браузеров. 1997 год
Netscape Navigator 4.x
• CSS1 частично
• Очень старый движок по сравнению с IE4
• Начало падения рыночной доли
14
66. Краткая история браузеров. 1997 год
Netscape Navigator 4.x
• CSS1 частично
• Очень старый движок по сравнению с IE4
• Начало падения рыночной доли
Opera 3
14
67. Краткая история браузеров. 1997 год
Netscape Navigator 4.x
• CSS1 частично
• Очень старый движок по сравнению с IE4
• Начало падения рыночной доли
Opera 3
• кроссплатформенная
14
68. Краткая история браузеров. 1997 год
Netscape Navigator 4.x
• CSS1 частично
• Очень старый движок по сравнению с IE4
• Начало падения рыночной доли
Opera 3
• кроссплатформенная
• JavaScript
14
72. Краткая история браузеров. 1997 год
Internet Explorer 4
• Код полностью переписан
• Cобственные расширения JavaScript, не совместимые с
Netscape
15
73. Краткая история браузеров. 1997 год
Internet Explorer 4
• Код полностью переписан
• Cобственные расширения JavaScript, не совместимые с
Netscape
• Собственная объектная модель документа (DOM)
15
74. Краткая история браузеров. 1997 год
Internet Explorer 4
• Код полностью переписан
• Cобственные расширения JavaScript, не совместимые с
Netscape
• Собственная объектная модель документа (DOM)
• Проще и стабильнее чем в Netscape
15
75. Краткая история браузеров. 1997 год
Internet Explorer 4
• Код полностью переписан
• Cобственные расширения JavaScript, не совместимые с
Netscape
• Собственная объектная модель документа (DOM)
• Проще и стабильнее чем в Netscape
• Поставляется с Windows 98
15
79. Краткая история браузеров. 1998 год
Netscape. Последние дни.
– Очень старый движок
– Множество ошибок обработки HTML и CSS
16
80. Краткая история браузеров. 1998 год
Netscape. Последние дни.
– Очень старый движок
– Множество ошибок обработки HTML и CSS
• AOL покупает Netscape
16
81. Краткая история браузеров. 1998 год
Netscape. Последние дни.
– Очень старый движок
– Множество ошибок обработки HTML и CSS
• AOL покупает Netscape
• Netscape наносит Microsoft последний удар в спину и
опенсорсит код браузера в рамках проекта Mozilla
16
82. Краткая история браузеров. 1998 год
Netscape. Последние дни.
– Очень старый движок
– Множество ошибок обработки HTML и CSS
• AOL покупает Netscape
• Netscape наносит Microsoft последний удар в спину и
опенсорсит код браузера в рамках проекта Mozilla
• Internet Explorer — новый лидер рынка
16
86. Краткая история браузеров. 1998 год
Opera 3.5
• Начинает поддерживать CSS
• Техническим директором компании становится один из
создателей CSS — Хокон Виум Ли
17
90. Краткая история браузеров. 1999 год
Internet Explorer 5.0-5.5
• Улучшенная поддержка HTML и CSS
• Поддержка XML и XSL
18
91. Краткая история браузеров. 1999 год
Internet Explorer 5.0-5.5
• Улучшенная поддержка HTML и CSS
• Поддержка XML и XSL
• XMLHttpRequest
18
92. Краткая история браузеров. 1999 год
Internet Explorer 5.0-5.5
• Улучшенная поддержка HTML и CSS
• Поддержка XML и XSL
• XMLHttpRequest
– можно считать днём рождения AJAX
18
93. Краткая история браузеров. 1999 год
Internet Explorer 5.0-5.5
• Улучшенная поддержка HTML и CSS
• Поддержка XML и XSL
• XMLHttpRequest
– можно считать днём рождения AJAX
– хотя сам термин появится гораздо позже
18
94. Краткая история браузеров. 1999 год
Internet Explorer 5.0-5.5
• Улучшенная поддержка HTML и CSS
• Поддержка XML и XSL
• XMLHttpRequest
– можно считать днём рождения AJAX
– хотя сам термин появится гораздо позже
• Последняя шестнадцатибитная версия
18
95. Краткая история браузеров. 1999 год
Internet Explorer 5.0-5.5
• Улучшенная поддержка HTML и CSS
• Поддержка XML и XSL
• XMLHttpRequest
– можно считать днём рождения AJAX
– хотя сам термин появится гораздо позже
• Последняя шестнадцатибитная версия
• Поставляется с Windows 98 SE, Windows ME,
Windows 2000 и Microsoft Office
18
99. Краткая история браузеров. 2000 год
Konqueror 2
• Игра на именах:
– Navigator — мореплаватель, штурман
19
100. Краткая история браузеров. 2000 год
Konqueror 2
• Игра на именах:
– Navigator — мореплаватель, штурман
– Explorer — путешественник, исследователь
19
101. Краткая история браузеров. 2000 год
Konqueror 2
• Игра на именах:
– Navigator — мореплаватель, штурман
– Explorer — путешественник, исследователь
– Conqueror — завоеватель, победитель
19
102. Краткая история браузеров. 2000 год
Konqueror 2
• Игра на именах:
– Navigator — мореплаватель, штурман
– Explorer — путешественник, исследователь
– Conqueror — завоеватель, победитель
• «K» это от KDE
19
103. Краткая история браузеров. 2000 год
Konqueror 2
• Игра на именах:
– Navigator — мореплаватель, штурман
– Explorer — путешественник, исследователь
– Conqueror — завоеватель, победитель
• «K» это от KDE
• Основан на KHTML и KJS
19
107. Краткая история браузеров. 2001 год
Opera 6
• Microsoft заблокировала доступ к MSN.com
– спасает опция «представляться как Internet Explorer»
20
108. Краткая история браузеров. 2001 год
Opera 6
• Microsoft заблокировала доступ к MSN.com
– спасает опция «представляться как Internet Explorer»
– в конце года полная маскировка под ИЕ
20
109. Краткая история браузеров. 2001 год
Opera 6
• Microsoft заблокировала доступ к MSN.com
– спасает опция «представляться как Internet Explorer»
– в конце года полная маскировка под ИЕ
Internet Explorer 6
20
110. Краткая история браузеров. 2001 год
Opera 6
• Microsoft заблокировала доступ к MSN.com
– спасает опция «представляться как Internet Explorer»
– в конце года полная маскировка под ИЕ
Internet Explorer 6
• Улучшена поддержка CSS1 и DOM уровня 1
20
111. Краткая история браузеров. 2001 год
Opera 6
• Microsoft заблокировала доступ к MSN.com
– спасает опция «представляться как Internet Explorer»
– в конце года полная маскировка под ИЕ
Internet Explorer 6
• Улучшена поддержка CSS1 и DOM уровня 1
• Всё ещё не соответствует стандартам W3C
20
112. Краткая история браузеров. 2001 год
Opera 6
• Microsoft заблокировала доступ к MSN.com
– спасает опция «представляться как Internet Explorer»
– в конце года полная маскировка под ИЕ
Internet Explorer 6
• Улучшена поддержка CSS1 и DOM уровня 1
• Всё ещё не соответствует стандартам W3C
• Что, в купе с монополией, мешает их внедрению
20
116. Краткая история браузеров. 2002 год
Phoenix 0.1-0.5
• Основан на движке Gecko
– который начинали разрабатывать ещё в Netscape
21
117. Краткая история браузеров. 2002 год
Phoenix 0.1-0.5
• Основан на движке Gecko
– который начинали разрабатывать ещё в Netscape
– теперь разрабатывается Mozilla Foundation
21
118. Краткая история браузеров. 2002 год
Phoenix 0.1-0.5
• Основан на движке Gecko
– который начинали разрабатывать ещё в Netscape
– теперь разрабатывается Mozilla Foundation
– основной принцип — поддержка открытых стандартов
21
119. Краткая история браузеров. 2002 год
Phoenix 0.1-0.5
• Основан на движке Gecko
– который начинали разрабатывать ещё в Netscape
– теперь разрабатывается Mozilla Foundation
– основной принцип — поддержка открытых стандартов
• Много всего хорошего
21
120. Краткая история браузеров. 2002 год
Phoenix 0.1-0.5
• Основан на движке Gecko
– который начинали разрабатывать ещё в Netscape
– теперь разрабатывается Mozilla Foundation
– основной принцип — поддержка открытых стандартов
• Много всего хорошего
– блокировка всплывающих окон
21
121. Краткая история браузеров. 2002 год
Phoenix 0.1-0.5
• Основан на движке Gecko
– который начинали разрабатывать ещё в Netscape
– теперь разрабатывается Mozilla Foundation
– основной принцип — поддержка открытых стандартов
• Много всего хорошего
– блокировка всплывающих окон
– табики
21
122. Краткая история браузеров. 2002 год
Phoenix 0.1-0.5
• Основан на движке Gecko
– который начинали разрабатывать ещё в Netscape
– теперь разрабатывается Mozilla Foundation
– основной принцип — поддержка открытых стандартов
• Много всего хорошего
– блокировка всплывающих окон
– табики
– темы
21
126. Краткая история браузеров. 2003 год
Firebird 1.5
• Переименованный Phoenix
– проблемы с торговой маркой
22
127. Краткая история браузеров. 2003 год
Firebird 1.5
• Переименованный Phoenix
– проблемы с торговой маркой
• Какие-то улучшения
22
128. Краткая история браузеров. 2003 год
Firebird 1.5
• Переименованный Phoenix
– проблемы с торговой маркой
• Какие-то улучшения
Opera 7.0-7.2
22
129. Краткая история браузеров. 2003 год
Firebird 1.5
• Переименованный Phoenix
– проблемы с торговой маркой
• Какие-то улучшения
Opera 7.0-7.2
• Новый движок — Presto. Полностью переписанный
22
130. Краткая история браузеров. 2003 год
Firebird 1.5
• Переименованный Phoenix
– проблемы с торговой маркой
• Какие-то улучшения
Opera 7.0-7.2
• Новый движок — Presto. Полностью переписанный
• Выросла скорость и стабильность работы
22
131. Краткая история браузеров. 2003 год
Firebird 1.5
• Переименованный Phoenix
– проблемы с торговой маркой
• Какие-то улучшения
Opera 7.0-7.2
• Новый движок — Presto. Полностью переписанный
• Выросла скорость и стабильность работы
• Очередной конфликт с MSN
22
132. Краткая история браузеров. 2003 год
Firebird 1.5
• Переименованный Phoenix
– проблемы с торговой маркой
• Какие-то улучшения
Opera 7.0-7.2
• Новый движок — Presto. Полностью переписанный
• Выросла скорость и стабильность работы
• Очередной конфликт с MSN
– люди думали, что виновата Опера
22
133. Краткая история браузеров. 2003 год
Firebird 1.5
• Переименованный Phoenix
– проблемы с торговой маркой
• Какие-то улучшения
Opera 7.0-7.2
• Новый движок — Presto. Полностью переписанный
• Выросла скорость и стабильность работы
• Очередной конфликт с MSN
– люди думали, что виновата Опера
– Microsoft не признался
22
137. Краткая история браузеров. 2003 год
Safari 1.0
• Онован на Webkit — форке KHTML
– небольшой код (140 000 строк кода)
23
138. Краткая история браузеров. 2003 год
Safari 1.0
• Онован на Webkit — форке KHTML
– небольшой код (140 000 строк кода)
– хорошо спроектированный
23
139. Краткая история браузеров. 2003 год
Safari 1.0
• Онован на Webkit — форке KHTML
– небольшой код (140 000 строк кода)
– хорошо спроектированный
– поддержка стандартов
23
140. Краткая история браузеров. 2003 год
Safari 1.0
• Онован на Webkit — форке KHTML
– небольшой код (140 000 строк кода)
– хорошо спроектированный
– поддержка стандартов
• Состоит из WebCore и JavaScriptCore
23
141. Краткая история браузеров. 2003 год
Safari 1.0
• Онован на Webkit — форке KHTML
– небольшой код (140 000 строк кода)
– хорошо спроектированный
– поддержка стандартов
• Состоит из WebCore и JavaScriptCore
• Браузер по умолчанию на Маках
23
146. Краткая история браузеров. 2004 год
Internet Explorer 6 SP2
• Никаких изменений в движке
Opera 7.x
• Проблемы с Hotmail
24
147. Краткая история браузеров. 2004 год
Internet Explorer 6 SP2
• Никаких изменений в движке
Opera 7.x
• Проблемы с Hotmail
• Направлена жалоба в Майкрософт
24
148. Краткая история браузеров. 2004 год
Internet Explorer 6 SP2
• Никаких изменений в движке
Opera 7.x
• Проблемы с Hotmail
• Направлена жалоба в Майкрософт
• Но они не ответили
24
152. Краткая история браузеров. 2004 год
Firefox 0.8-1.0
• Опять переименован из-за аналогичной причины
• Получил множество положительных оценок
25
153. Краткая история браузеров. 2004 год
Firefox 0.8-1.0
• Опять переименован из-за аналогичной причины
• Получил множество положительных оценок
• 25 млн. загрузок за первые 99 дней
25
154. Краткая история браузеров. 2004 год
Firefox 0.8-1.0
• Опять переименован из-за аналогичной причины
• Получил множество положительных оценок
• 25 млн. загрузок за первые 99 дней
• Становится одним из самых популярных свободных
приложений
25
157. Краткая история браузеров. 2005 год
Opera 8.x
• Браузер становится полностью бесплатным и без рекламы
26
158. Краткая история браузеров. 2005 год
Opera 8.x
• Браузер становится полностью бесплатным и без рекламы
Firefox 1.5
26
159. Краткая история браузеров. 2005 год
Opera 8.x
• Браузер становится полностью бесплатным и без рекламы
Firefox 1.5
• Через 344 дня после выпуска первой версии — загружен в
100 миллионный раз
26
160. Краткая история браузеров. 2005 год
Opera 8.x
• Браузер становится полностью бесплатным и без рекламы
Firefox 1.5
• Через 344 дня после выпуска первой версии — загружен в
100 миллионный раз
• Рыночная доля около 10%
26
161. Краткая история браузеров. 2005 год
Opera 8.x
• Браузер становится полностью бесплатным и без рекламы
Firefox 1.5
• Через 344 дня после выпуска первой версии — загружен в
100 миллионный раз
• Рыночная доля около 10%
Safari 2.0
26
162. Краткая история браузеров. 2005 год
Opera 8.x
• Браузер становится полностью бесплатным и без рекламы
Firefox 1.5
• Через 344 дня после выпуска первой версии — загружен в
100 миллионный раз
• Рыночная доля около 10%
Safari 2.0
• Проходит Acid2 тест
26
163. Краткая история браузеров. 2005 год
Opera 8.x
• Браузер становится полностью бесплатным и без рекламы
Firefox 1.5
• Через 344 дня после выпуска первой версии — загружен в
100 миллионный раз
• Рыночная доля около 10%
Safari 2.0
• Проходит Acid2 тест
• Webkit в OpenSource
26
167. Краткая история браузеров. 2006 год
Internet Explorer 7
• PNG с альфа-каналом
• Какие то улучшения поддержки стандартов
27
168. Краткая история браузеров. 2006 год
Internet Explorer 7
• PNG с альфа-каналом
• Какие то улучшения поддержки стандартов
• Первая версия, в которой не содержался код Mosaic
27
169. Краткая история браузеров. 2006 год
Internet Explorer 7
• PNG с альфа-каналом
• Какие то улучшения поддержки стандартов
• Первая версия, в которой не содержался код Mosaic
• Trident 3.1 (раньше без версий)
27
173. Краткая история браузеров. 2007 год
Мобильная версия Safari
• Стив Джобс представляет iPhone
• А вместе с ним и мобильную версию
28
174. Краткая история браузеров. 2007 год
Мобильная версия Safari
• Стив Джобс представляет iPhone
• А вместе с ним и мобильную версию
• Основан на обычном Webkit
28
175. Краткая история браузеров. 2007 год
Мобильная версия Safari
• Стив Джобс представляет iPhone
• А вместе с ним и мобильную версию
• Основан на обычном Webkit
• С изменениями для мобильных устройств
28
179. Краткая история браузеров. 2008 год
Opera 9.x
• Повышение производительности
– вдвое быстрее предыдущей версии
29
180. Краткая история браузеров. 2008 год
Opera 9.x
• Повышение производительности
– вдвое быстрее предыдущей версии
– на 50% быстрее Firefox 2
29
181. Краткая история браузеров. 2008 год
Opera 9.x
• Повышение производительности
– вдвое быстрее предыдущей версии
– на 50% быстрее Firefox 2
– вдвое быстрее Internet Explorer 7
29
182. Краткая история браузеров. 2008 год
Opera 9.x
• Повышение производительности
– вдвое быстрее предыдущей версии
– на 50% быстрее Firefox 2
– вдвое быстрее Internet Explorer 7
Firefox 3.0
29
183. Краткая история браузеров. 2008 год
Opera 9.x
• Повышение производительности
– вдвое быстрее предыдущей версии
– на 50% быстрее Firefox 2
– вдвое быстрее Internet Explorer 7
Firefox 3.0
• 8 миллионов загрузок в день релиза
29
184. Краткая история браузеров. 2008 год
Opera 9.x
• Повышение производительности
– вдвое быстрее предыдущей версии
– на 50% быстрее Firefox 2
– вдвое быстрее Internet Explorer 7
Firefox 3.0
• 8 миллионов загрузок в день релиза
• Глобальная доля рынка — 20%, в Европе — 30%
29
189. Краткая история браузеров. 2008 год
Chrome 1.0
• Простой интерфейс
• Высокая скорость работы
• Основан на Webkit
30
190. Краткая история браузеров. 2008 год
Chrome 1.0
• Простой интерфейс
• Высокая скорость работы
• Основан на Webkit
• V8, вместо JavaScriptCore
30
191. Краткая история браузеров. 2008 год
Chrome 1.0
• Простой интерфейс
• Высокая скорость работы
• Основан на Webkit
• V8, вместо JavaScriptCore
• Наверное, можно считать, что положил начало
30
192. Краткая история браузеров. 2008 год
Chrome 1.0
• Простой интерфейс
• Высокая скорость работы
• Основан на Webkit
• V8, вместо JavaScriptCore
• Наверное, можно считать, что положил начало
– гонке за скорость
30
193. Краткая история браузеров. 2008 год
Chrome 1.0
• Простой интерфейс
• Высокая скорость работы
• Основан на Webkit
• V8, вместо JavaScriptCore
• Наверное, можно считать, что положил начало
– гонке за скорость
– в том числе и для Яваскриптовых движков
30
196. Краткая история браузеров. 2009 год
Internet Explorer 8.0
• Новый режим рендеринга, который называется
«режим стандартов»
31
197. Краткая история браузеров. 2009 год
Internet Explorer 8.0
• Новый режим рендеринга, который называется
«режим стандартов»
• Проходит Acid2
31
198. Краткая история браузеров. 2009 год
Internet Explorer 8.0
• Новый режим рендеринга, который называется
«режим стандартов»
• Проходит Acid2
Chrome 2.0-3.0
31
199. Краткая история браузеров. 2009 год
Internet Explorer 8.0
• Новый режим рендеринга, который называется
«режим стандартов»
• Проходит Acid2
Chrome 2.0-3.0
• Существенно увеличена производительность JavaScript
31
200. Краткая история браузеров. 2009 год
Internet Explorer 8.0
• Новый режим рендеринга, который называется
«режим стандартов»
• Проходит Acid2
Chrome 2.0-3.0
• Существенно увеличена производительность JavaScript
Firefox 3.5
31
201. Краткая история браузеров. 2009 год
Internet Explorer 8.0
• Новый режим рендеринга, который называется
«режим стандартов»
• Проходит Acid2
Chrome 2.0-3.0
• Существенно увеличена производительность JavaScript
Firefox 3.5
• Новая версия SpiderMonkey — TraceMonkey
31
202. Краткая история браузеров. 2009 год
Internet Explorer 8.0
• Новый режим рендеринга, который называется
«режим стандартов»
• Проходит Acid2
Chrome 2.0-3.0
• Существенно увеличена производительность JavaScript
Firefox 3.5
• Новая версия SpiderMonkey — TraceMonkey
• Существенно увеличена производительность JavaScript
31
203. Краткая история браузеров. 2009 год
Internet Explorer 8.0
• Новый режим рендеринга, который называется
«режим стандартов»
• Проходит Acid2
Chrome 2.0-3.0
• Существенно увеличена производительность JavaScript
Firefox 3.5
• Новая версия SpiderMonkey — TraceMonkey
• Существенно увеличена производительность JavaScript
• Первый JIT компилятор для JavaScript
31
207. Краткая история браузеров. 2010 год
Chrome 4.0-8.0
• Полное прохождение тестов ACID3
• Улучшена скорость работы JavaScript
32
208. Краткая история браузеров. 2010 год
Chrome 4.0-8.0
• Полное прохождение тестов ACID3
• Улучшена скорость работы JavaScript
Opera 10.50-11.00
32
209. Краткая история браузеров. 2010 год
Chrome 4.0-8.0
• Полное прохождение тестов ACID3
• Улучшена скорость работы JavaScript
Opera 10.50-11.00
• Новый JavaScript-движок Carakan
32
210. Краткая история браузеров. 2010 год
Chrome 4.0-8.0
• Полное прохождение тестов ACID3
• Улучшена скорость работы JavaScript
Opera 10.50-11.00
• Новый JavaScript-движок Carakan
Firefox 3.6
32
211. Краткая история браузеров. 2010 год
Chrome 4.0-8.0
• Полное прохождение тестов ACID3
• Улучшена скорость работы JavaScript
Opera 10.50-11.00
• Новый JavaScript-движок Carakan
Firefox 3.6
• Улучшена скорость работы JavaScript
32
215. Краткая история браузеров. 2011 год
Firefox 4.0-9.0
• Gecko 2.0 и JägerMonkey
• Переход на быстрый цикл разработки релизов
33
216. Краткая история браузеров. 2011 год
Firefox 4.0-9.0
• Gecko 2.0 и JägerMonkey
• Переход на быстрый цикл разработки релизов
• Acid3 — 97/100
33
217. Краткая история браузеров. 2011 год
Firefox 4.0-9.0
• Gecko 2.0 и JägerMonkey
• Переход на быстрый цикл разработки релизов
• Acid3 — 97/100
Internet Explorer 9.0
33
218. Краткая история браузеров. 2011 год
Firefox 4.0-9.0
• Gecko 2.0 и JägerMonkey
• Переход на быстрый цикл разработки релизов
• Acid3 — 97/100
Internet Explorer 9.0
• Поддержка большей части CSS3
33
219. Краткая история браузеров. 2011 год
Firefox 4.0-9.0
• Gecko 2.0 и JägerMonkey
• Переход на быстрый цикл разработки релизов
• Acid3 — 97/100
Internet Explorer 9.0
• Поддержка большей части CSS3
• Более быстрая обработка JavaScript
33
220. Краткая история браузеров. 2011 год
Firefox 4.0-9.0
• Gecko 2.0 и JägerMonkey
• Переход на быстрый цикл разработки релизов
• Acid3 — 97/100
Internet Explorer 9.0
• Поддержка большей части CSS3
• Более быстрая обработка JavaScript
• Аудио- и видеотеги HTML5
33
224. Краткая история браузеров. 2011 год
Chrome 9.0-16.00
• Ускорено выполнение JavaScript
• Становится вторым по полярности браузером в мире
34
225. Краткая история браузеров. 2011 год
Chrome 9.0-16.00
• Ускорено выполнение JavaScript
• Становится вторым по полярности браузером в мире
– cмещая Firefox на третье место
34
226. Краткая история браузеров. 2011 год
Chrome 9.0-16.00
• Ускорено выполнение JavaScript
• Становится вторым по полярности браузером в мире
– cмещая Firefox на третье место
Safari 5.1
34
227. Краткая история браузеров. 2011 год
Chrome 9.0-16.00
• Ускорено выполнение JavaScript
• Становится вторым по полярности браузером в мире
– cмещая Firefox на третье место
Safari 5.1
• Переход на Webkit2
34
228. Краткая история браузеров. 2011 год
Chrome 9.0-16.00
• Ускорено выполнение JavaScript
• Становится вторым по полярности браузером в мире
– cмещая Firefox на третье место
Safari 5.1
• Переход на Webkit2
– быстрее и надёжнее
34
229. Краткая история браузеров. 2011 год
Chrome 9.0-16.00
• Ускорено выполнение JavaScript
• Становится вторым по полярности браузером в мире
– cмещая Firefox на третье место
Safari 5.1
• Переход на Webkit2
– быстрее и надёжнее
– обработка web контента производится в изолированных
процессах
34
230. Краткая история браузеров. 2011 год
Chrome 9.0-16.00
• Ускорено выполнение JavaScript
• Становится вторым по полярности браузером в мире
– cмещая Firefox на третье место
Safari 5.1
• Переход на Webkit2
– быстрее и надёжнее
– обработка web контента производится в изолированных
процессах
– так же как и в Хроме, но реализовано на уровне движка
34
234. Краткая история браузеров. 2012 год
Chrome 17.00-21.00
• Новый V8 «JavaScript Harmony»
• Поддержка протокола SPDY
35
235. Краткая история браузеров. 2012 год
Chrome 17.00-21.00
• Новый V8 «JavaScript Harmony»
• Поддержка протокола SPDY
Firefox 10.00-15.0.1
35
236. Краткая история браузеров. 2012 год
Chrome 17.00-21.00
• Новый V8 «JavaScript Harmony»
• Поддержка протокола SPDY
Firefox 10.00-15.0.1
• Поддержка протокола SPDY
35
237. Краткая история браузеров. 2012 год
Chrome 17.00-21.00
• Новый V8 «JavaScript Harmony»
• Поддержка протокола SPDY
Firefox 10.00-15.0.1
• Поддержка протокола SPDY
• Борьба с утечками памяти
35
240. Браузерные войны
• Борьба за господство на рынке web-браузеров
37
241. Браузерные войны
• Борьба за господство на рынке web-браузеров
• Вроде бы ничего страшного
37
242. Браузерные войны
• Борьба за господство на рынке web-браузеров
• Вроде бы ничего страшного
• Если бы не используемые методы — добавление
специфических, нестандартных возможностей к браузеру
37
243. Браузерные войны
• Борьба за господство на рынке web-браузеров
• Вроде бы ничего страшного
• Если бы не используемые методы — добавление
специфических, нестандартных возможностей к браузеру
• В результате — многие сайты «оптимизированы» для
конкретного браузера
37
244. Браузерные войны
• Борьба за господство на рынке web-браузеров
• Вроде бы ничего страшного
• Если бы не используемые методы — добавление
специфических, нестандартных возможностей к браузеру
• В результате — многие сайты «оптимизированы» для
конкретного браузера
• Но вообще, проявляется по разному
37
249. Первая браузерная война
Причины
• дерзкий Netscape
• отказ в продаже Microsoft своих технологий
39
250. Первая браузерная война
Причины
• дерзкий Netscape
• отказ в продаже Microsoft своих технологий
• полное отсутствие Microsoft на рынке браузеров
39
251. Первая браузерная война
Причины
• дерзкий Netscape
• отказ в продаже Microsoft своих технологий
• полное отсутствие Microsoft на рынке браузеров
Факторы
39
252. Первая браузерная война
Причины
• дерзкий Netscape
• отказ в продаже Microsoft своих технологий
• полное отсутствие Microsoft на рынке браузеров
Факторы
• Netscape коммерческая компания, которой необходимо
зарабатывать деньги
39
253. Первая браузерная война
Причины
• дерзкий Netscape
• отказ в продаже Microsoft своих технологий
• полное отсутствие Microsoft на рынке браузеров
Факторы
• Netscape коммерческая компания, которой необходимо
зарабатывать деньги
• У Microsoft монополия на рынке операционных систем
39
254. Первая браузерная война
Причины
• дерзкий Netscape
• отказ в продаже Microsoft своих технологий
• полное отсутствие Microsoft на рынке браузеров
Факторы
• Netscape коммерческая компания, которой необходимо
зарабатывать деньги
• У Microsoft монополия на рынке операционных систем
• Могут позволить раздавать браузер бесплатно
39
255. Первая браузерная война
Причины
• дерзкий Netscape
• отказ в продаже Microsoft своих технологий
• полное отсутствие Microsoft на рынке браузеров
Факторы
• Netscape коммерческая компания, которой необходимо
зарабатывать деньги
• У Microsoft монополия на рынке операционных систем
• Могут позволить раздавать браузер бесплатно
• Ну и вообще Internet Explorer лучше
39
259. Первая браузерная война
Итоги
• AOL покупает Netscape
• Internet Explorer становится доминирующим браузером
на рынке
40
260. Первая браузерная война
Итоги
• AOL покупает Netscape
• Internet Explorer становится доминирующим браузером
на рынке
• Суд: Соединённые штаты против Microsoft
40
278. User Agent — это клиентское приложение,
использующее определённый сетевой протокол.
Термин обычно используется для приложений,
осуществляющих доступ к веб-сайтам, таким как
браузеры, поисковые роботы (и другие «пауки»),
мобильные телефоны и другие устройства
Wikipedia
49
279. The User-Agent request-header field contains information
about the user agent originating the request. This is for
statistical purposes, the tracing of protocol violations, and
automated recognition of user agents for the sake of
tailoring responses to avoid particular user agent limitations.
User agents SHOULD include this field with requests.
RFC 2616, 14.43
50
280. UserAgent
Пример HTTP запроса
GET / HTTP/1.1
Host: www.yandex.ru
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
User-Agent: Mozilla/5.0 (Macintosh; ru-ru; Intel Mac OS X
10_8_0) AppleWebKit/535.22 (KHTML, like Gecko) Chrome/
19.0.1048.0 Safari/535.22
Accept: text/html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
51
292. Кроссбра́узерность — свойство сайта отображаться
и работать во всех популярных браузерах идентично.
Под идентичностью понимается отсутствие развалов
верстки и способность отображать материал с
одинаковой степенью читабельности.
Wikipedia
63
296. Кроссбраузерность
• Много браузеров
– их вообще много
– да ещё и разных версий
64
297. Кроссбраузерность
• Много браузеров
– их вообще много
– да ещё и разных версий
– а ещё с разным уровнем поддежки технологий
64
298. Кроссбраузерность
• Много браузеров
– их вообще много
– да ещё и разных версий
– а ещё с разным уровнем поддежки технологий
• Требуется дополнительное время, которое стоит денег
64
299. Кроссбраузерность
• Много браузеров
– их вообще много
– да ещё и разных версий
– а ещё с разным уровнем поддежки технологий
• Требуется дополнительное время, которое стоит денег
• Но иначе — посетитель уйдёт
64
300. Кроссбраузерность
• Много браузеров
– их вообще много
– да ещё и разных версий
– а ещё с разным уровнем поддежки технологий
• Требуется дополнительное время, которое стоит денег
• Но иначе — посетитель уйдёт
• Ну и вообще это плохо
64
303. Limited browser support
• Поддержка ограниченного количества браузеров
• Может проявляться по разному
65
304. Limited browser support
• Поддержка ограниченного количества браузеров
• Может проявляться по разному
– блокировка работы в некоторых браузерах
65
305. Limited browser support
• Поддержка ограниченного количества браузеров
• Может проявляться по разному
– блокировка работы в некоторых браузерах
– предупреждение о возможных проблемах
65
306. Limited browser support
• Поддержка ограниченного количества браузеров
• Может проявляться по разному
– блокировка работы в некоторых браузерах
– предупреждение о возможных проблемах
– просто ограниченная поддержка
65
317. Progressive enhancement
• основной контент доступен во всех браузерах
• основная функциональность доступна во всех браузерах
69
318. Progressive enhancement
• основной контент доступен во всех браузерах
• основная функциональность доступна во всех браузерах
• не используется экстраразметка для эмуляции
неподдерживаемых свойств
69
319. Progressive enhancement
• основной контент доступен во всех браузерах
• основная функциональность доступна во всех браузерах
• не используется экстраразметка для эмуляции
неподдерживаемых свойств
• улучшение внешнего вида достигается за счет
дополнительных браузерозависимых стилей
69
320. Progressive enhancement
• основной контент доступен во всех браузерах
• основная функциональность доступна во всех браузерах
• не используется экстраразметка для эмуляции
неподдерживаемых свойств
• улучшение внешнего вида достигается за счет
дополнительных браузерозависимых стилей
• улучшение функциональности достигается за счет
«ненавязчивых» (unobtrusive) скриптов
69
321. Progressive enhancement
• основной контент доступен во всех браузерах
• основная функциональность доступна во всех браузерах
• не используется экстраразметка для эмуляции
неподдерживаемых свойств
• улучшение внешнего вида достигается за счет
дополнительных браузерозависимых стилей
• улучшение функциональности достигается за счет
«ненавязчивых» (unobtrusive) скриптов
• учитываются возможности браузера пользователя
69
322. Feature detection
Проверка поддержки тэга video:
if(!!document.createElement('video').canPlayType) {
// Insert HTML5 Video
} else {
// Insert Flash Video
}
70
323. Feature detection
<!DOCTYPE html>
<html class="draganddrop rgba ...">
<head>
<title>Bang!</title>
<script src="//yandex.st/modernizr/2.6.2/
modernizr.js"></script>
...
</head>
<body>
..
<script>
if(!Modernizr.inputtypes.date) {
// no native support for <input type="date"> :(
// maybe build one yourself with Dojo or jQueryUI
}
</script>
</body>
</html>
71
326. Здравый смысл
Limited browser support
• Список совместимости
72
327. Здравый смысл
Limited browser support
• Список совместимости
• Основывается на доле браузера среди нашей аудитории
72
328. Здравый смысл
Limited browser support
• Список совместимости
• Основывается на доле браузера среди нашей аудитории
– > 2% — полная совместимость
72
329. Здравый смысл
Limited browser support
• Список совместимости
• Основывается на доле браузера среди нашей аудитории
– > 2% — полная совместимость
– < 2% — слабая совместимость
72
330. Здравый смысл
Limited browser support
• Список совместимости
• Основывается на доле браузера среди нашей аудитории
– > 2% — полная совместимость
– < 2% — слабая совместимость
– < 0.5% — не поддерживаем
72
331. Здравый смысл
Limited browser support
• Список совместимости
• Основывается на доле браузера среди нашей аудитории
– > 2% — полная совместимость
– < 2% — слабая совместимость
– < 0.5% — не поддерживаем
• Но контент должен быть доступен везде
72
337. Списки совместимости в IE
• Internet Explorer старше седьмой версии
• Приезжают вместе с обновлениями
76
338. Списки совместимости в IE
• Internet Explorer старше седьмой версии
• Приезжают вместе с обновлениями
• Основываются на поведении пользователей
76
339. Списки совместимости в IE
• Internet Explorer старше седьмой версии
• Приезжают вместе с обновлениями
• Основываются на поведении пользователей
• support.microsoft.com/kb/960321
76
343. Browser JavaScript в Opera
• Не путать с UserJS
• Автоматически исправляет
– веб страницы
77
344. Browser JavaScript в Opera
• Не путать с UserJS
• Автоматически исправляет
– веб страницы
– устаревшие скрипты
77
345. Browser JavaScript в Opera
• Не путать с UserJS
• Автоматически исправляет
– веб страницы
– устаревшие скрипты
– страницы которые по неосторожности блокируют Оперу
77
346. Browser JavaScript в Opera
• Не путать с UserJS
• Автоматически исправляет
– веб страницы
– устаревшие скрипты
– страницы которые по неосторожности блокируют Оперу
• Лежит на ГитХабе
77
347. Browser JavaScript в Opera
• Не путать с UserJS
• Автоматически исправляет
– веб страницы
– устаревшие скрипты
– страницы которые по неосторожности блокируют Оперу
• Лежит на ГитХабе
– operasoftware/browserjs
77
348. Browser JavaScript в Opera
• Не путать с UserJS
• Автоматически исправляет
– веб страницы
– устаревшие скрипты
– страницы которые по неосторожности блокируют Оперу
• Лежит на ГитХабе
– operasoftware/browserjs
• www.opera.com/docs/browserjs/
77
349. Browser JavaScript в Opera
Кусок скрипта который чинит Facebook:
if(hostname.endsWith('www.facebook.com')){
opera.addEventListener('BeforeCSS', function(e) {
e.cssText = e.cssText.replace(/border-(top|bottom)-
(right|left)-radius:3px/g, '');
}, false);
}
78
353. Заключение
• Движков много, а браузеров ещё больше
81
354. Заключение
• Движков много, а браузеров ещё больше
• Браузеры сложные
81
355. Заключение
• Движков много, а браузеров ещё больше
• Браузеры сложные
• Следует следить за их развитием, чтобы быть в курсе
81
356. Заключение
• Движков много, а браузеров ещё больше
• Браузеры сложные
• Следует следить за их развитием, чтобы быть в курсе
• Всё будет хорошо
81
357. Заключение
• Движков много, а браузеров ещё больше
• Браузеры сложные
• Следует следить за их развитием, чтобы быть в курсе
• Всё будет хорошо
• А может быть и плохо
81