Hogy Működnek a Böngészők?

Hogy Működnek a Böngészők?

Webböngészők Történet (2) ● Böngészőháborúk – Lásd: https://en.wikipedia.org/wiki/Browser_wars Jeszenszky Péter Debreceni Egyetem, Informatikai Kar [email protected] Utolsó módosítás: 2021. szeptember 24. 3 Történet (1) Hogy működnek a böngészők? ● Az első böngésző: ● Ajánlott olvasnivaló: – WorldWideWeb (Tim Berners-Lee, 1990. – Tali Garsiel and Paul Irish. How Browsers Work: december 25.) Behind the scenes of modern web browsers. – Lásd: August 5, 2011. https://www.html5rocks.com/en/tutorials/internals/h ● Tim Berners-Lee. The WorldWideWeb browser. owbrowserswork/ https://www.w3.org/People/Berners-Lee/WorldWideWeb .html – Anton Paras. Notes on “How Browsers Work”. ● Jay Hoffmann. The Web’s First (And Second) Browser. December 11, 2017. September 25, 2017. https://codeburst.io/how-browsers-work-6350a423 https://thehistoryoftheweb.com/web-first-and-second-br 4634 owser/ 2 4 A böngészők komponensei: A böngészők felépítése felhasználó felület User Interface ● A felhasználói felülethez tartozik a címsor, a gombok (például, vissza, előre, frissítés), menük, stb. Browser Engine ● Beletartozik a böngésző minden látható része, Data annak a területnek a kivételével, ahol a Storage weboldal megjelenítésre kerül. Rendering Engine Networking JS Engine UI Backend 5 7 A böngészők komponensei: Böngészőmotor és renderelő motor böngészőmotor ● A böngészőmotor (browser engine), renderelő ● Egy magas szintű interfészt biztosít a motor (rendering engine) és layout engine renderelő motor manipulálásához. kifejezéseket gyakran egymás megfelelőiként ● Közvetítő szerepet tölt be a felhasználói felület használják, bár ez technikailag pontatlan. és a renderelő motor között. – A Gecko egy speciális eset, mivel egy ● böngészőmotorból és egy renderelő motorból áll. Kezeli az adattároló komponenst. 6 8 A böngészők komponensei: A böngészők komponensei: renderelő motor hálózati komponens (2) ● A böngészők egy kulcskomponense. ● További információk: ● Feladata webes tartalom (például egy HTML – WebSocket API: vagy XML dokumentum) vizuális ● HTML Living Standard – Web sockets https://html.spec.whatwg.org/multipage/web-sockets.ht reprezentációjának létrehozása egy kimeneti ml eszközön való megjelenítés céljából. – WebRTC: – A tartalom renderelése a meghatározott formázási ● https://webrtc.org/ szabályoknak megfelelően történik. ● WebRTC 1.0: Real-time Communication Between Browsers (W3C ajánlás, 2021. január 26.) https://www.w3.org/TR/webrtc/ 9 11 A böngészők komponensei: A böngészők komponensei: hálózati komponens (1) JavaScript-motor (1) ● A hálózati komponens felelős a hálózati ● Feladata JavaScript kód végrehajtása. kommunikáció kezeléséért, beleértve: – HTTP kérések és válaszok – WebSocket API – WebRTC ● Egy platformfüggetlen interfészt biztosít, mely mögött platform specifikus API-k kerülnek felhasználásra. 10 12 A böngészők komponensei: A böngészők komponensei: JavaScript-motor (2) adattároló (1) ● A fő JavaScript-motorok: ● Az adattároló felelős az adatok perzisztens – SpiderMonkey (programozási nyelv: C/C++; licenc: Mozilla tárolásáért, a következőkhöz használják: Public License 2.0) https://spidermonkey.dev/ – HTTP sütik ● A Mozilla projekt JavaScript motorja. – V8 (programozási nyelv: C++; licenc: New BSD License) – HTTP gyorsítótárazás https://v8.dev/ https://github.com/v8/v8/ – Indexed Database API (IndexedDB) ● A Chromium JavaScript motorja. – Web Storage API – JavaScriptCore (programozási nyelv: C++; licenc: LGPLv2) https://developer.apple.com/documentation/javascriptcore https://trac.webkit.org/wiki/JavaScriptCore ● Az Apple JavaScript motorja. 13 15 A böngészők komponensei: A böngészők komponensei: UI back-end adattároló (2) ● Az UI back-end felelős a böngészőben a ● További információk: rajzolásért. – HTTP sütik: ● Adam Barth, HTTP State Management Mechanism, RFC 6265, April 2011. ● Egyaránt használják a felhasználói felület https://www.rfc-editor.org/rfc/rfc6265 – HTTP gyorsítótárazás: elemek és a weboldal megjelenítéséhez. ● Roy T. Fielding (ed.), Mark Nottingham (ed.), Julian F. Reschke (ed.), Hypertext Transfer Protocol (HTTP/1.1): Caching, RFC 7234, June 2014. ● Egy platformfüggetlen interfészt biztosít, mely https://www.rfc-editor.org/rfc/rfc7234 mögött platform specifikus API-k kerülnek – Indexed Database API (IndexedDB): ● Indexed Database API 3.0 (W3C munkaterv, 2021. június 18.) felhasználásra. https://www.w3.org/TR/IndexedDB/ – Web Storage API: ● HTML Living Standard – Web storage https://html.spec.whatwg.org/#webstorage 14 16 A főbb renderelő motorok Renderelő motorok: Blink ● WebKit ● Webhely: https://www.chromium.org/blink ● Fejlesztő: Chromium Project (Google) ● Blink ● Licenc: Simplified BSD License/New BSD License/LGPLv2.1 ● Programozási nyelv: C++ ● Gecko ● A Blink eredetileg a WebKit WebCore komponensének forkjaként született. ● A Blink-en alapuló szoftverek: – Chromium https://www.chromium.org/Home – Google Chrome, Google Chrome for Android https://www.google.com/chrome/ – Chromium-alapú Microsoft Edge https://www.microsoftedgeinsider.com/ – Opera https://www.opera.com/ – Vivaldi https://vivaldi.com/ – … 17 19 Renderelő motorok: WebKit Renderelő motorok: Gecko ● Webhely: https://webkit.org/ ● Webhely: ? ● Fejlesztő: Apple ● Fejlesztő: Mozilla Project ● Licenc: LGPLv2/Simplified BSD License ● Licenc: Mozilla Public License 2.0 ● Programozási nyelv: C++ ● Programozási nyelvek: C, C++, JavaScript, Rust ● A WebKit-en alapuló szoftverek: ● A Gecko-n alapuló szoftverek: – Safari https://www.apple.com/safari/ – Firefox https://www.mozilla.org/firefox/ – Google Chrome for iOS https://www.google.com/chrome/ – Firefox for Android https://www.mozilla.org/firefox/browsers/mobile/ – Firefox for iOS https://www.mozilla.org/firefox/browsers/mobile/ – SeaMonkey https://www.seamonkey-project.org/ – GNOME Web https://wiki.gnome.org/Apps/Web – … – … 18 20 Böngészők piaci részesedése Böngészők összehasonlítása ● Minden platform: ● Can I use… – Compare browsers https://gs.statcounter.com/browser-market-sha https://caniuse.com/ciu/comparison re https://github.com/Fyrd/caniuse ● Asztali: ● https://en.wikipedia.org/wiki/Comparison_of_w https://gs.statcounter.com/browser-market-sha eb_browsers re/desktop ● Mobil: https://gs.statcounter.com/browser-market-sha re/mobile 21 23 Műszaki dokumentáció fejlesztők A főbb asztali böngészők számára ● Chromium, Google Chrome ● Chromium, Google Chrome: ● Firefox – For Developers https://www.chromium.org/developers ● Opera ● Firefox: ● Safari – https://developer.mozilla.org/en-US/docs/Mozilla/Fi ● Microsoft Edge refox – https://firefox-source-docs.mozilla.org/ ● Microsoft Edge: – https://docs.microsoft.com/en-us/microsoft-edge/# microsoft-edge-for-developers 22 24 A főbb asztali böngészők: A főbb asztali böngészők: Chromium Chromium és Google Chrome (1) ● Webhely: https://www.chromium.org/Home ● A Google Chrome a Chromiumon alapul. ● Fejlesztő: Chromium Project (Google) ● Licenc: New BSD License – Lásd: https://chromium.googlesource.com/chromium/src/+/master/LICENSE ● Programozási nyelvek: C, C++, JavaScript ● Platform: Linux, macOS, Windows ● Renderelő motor: Blink ● JavaScript motor: V8 ● Technikai információk: chrome://system 25 27 A főbb asztali böngészők: Google A főbb asztali böngészők: Chrome Chromium és Google Chrome (2) ● Webhely: https://www.google.com/chrome/ ● A két böngésző közötti különbségek: ● Fejlesztő: Google – Eltérő logók. – Eltérő audio és videó kódekekkel vannak felszerelve. ● Licenc: nem szabad (lásd: chrome://terms) – A felhasználói adatok tárolása különböző könyvtárakban. ● Programozási nyelvek: C, C++, JavaScript ● Chromium: ~/.cache/chromium, ~/.config/chromium ● Platform: Linux, macOS, Windows ● Google Chrome: ~/.cache/google-chrome, ~/.config/google- chrome ● Renderelő motor: Blink – A Chromium forráskódját módosíthatják az operációs rendszer ● JavaScript motor: V8 disztribúciók, a csomagolás is disztribúciófüggő. ● ● Technikai információk: chrome://system Lásd: The Difference between Google Chrome and Chromium on Linux ● Fejlesztői kiadás: https://www.google.com/intl/hu/chrome/dev/ https://chromium.googlesource.com/chromium/src/+/master/doc s/chromium_browser_vs_google_chrome.md 26 28 A főbb asztali böngészők: Firefox A főbb asztali böngészők: Safari ● Webhely: https://www.mozilla.org/firefox/ ● Webhely: https://www.apple.com/safari/ ● Fejlesztő: Mozilla Project ● Fejlesztő: Apple ● Licenc: Mozilla Public License 2.0 (lásd: about:license) ● Licenc: nem szabad ● Programozási nyelvek: C, C++, JavaScript, Rust ● Programozási nyelvek: C++, Objective-C ● Platform: Linux, macOS, Windows ● Platform: macOS ● Renderelő motor: Gecko ● Renderelő motor: WebKit ● JavaScript motor: SpiderMonkey ● ● Technikai információk: about:support JavaScript motor: JavaScriptCore ● Fejlesztői kiadás: Firefox Developer Edition ● Fejlesztői kiadás: Safari Technology Preview https://www.mozilla.org/firefox/developer/ https://developer.apple.com/safari/technology-preview/ 29 31 A főbb asztali böngészők: A főbb asztali böngészők: Opera Microsoft Edge (1) ● Webhely: https://www.opera.com/ ● Webhely: https://www.microsoft.com/edge ● Fejlesztő: Opera Software ● ● Licenc: nem szabad Fejlesztő: Microsoft – Lásd: https://www.opera.com/eula/computers ● Licenc: nem szabad (lásd: edge://terms) ● Programozási nyelv: C++ ● ● Platform: Linux, macOS, Windows Platform: Linux (2020–), macOS (2019–), ● Renderelő motor: Blink Windows ● JavaScript motor: V8 ● Renderelő motor: EdgeHTML (–2019), Blink ● Technikai információk: opera://system (2019–) ● Fejlesztői kiadás: Opera developer https://www.opera.com/computer/beta

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    16 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us