<<

Corso Joomla 1 Introduzione al Web

PDF generato attraverso tag">il toolkit opensource ''mwlib''. Per maggiori informazioni, vedi [[http://code.pediapress.com/ http://code.pediapress.com/]]. PDF generated at: Wed, 02 May 2012 10:00:25 UTC Indice

Voci

Introduzione 1 1 Suite di protocolli 7 9 Transfer Protocol 14 Simple Transfer Protocol 18 Multipiattaforma 21

Browser 23 Browser 23 29 (browser) 46 Chrome 56 (browser) 63

Server Web 70 web 70 Apache HTTP Server 71 XAMPP 74

Linguaggi Usati 76 HTML 76 CSS 82 PHP 92

Database 101 Database 101 Database management system 106 MySQL 114 phpMyAdmin 122 Note Fonti e autori delle voci 125 Fonti, licenze e autori delle immagini 127 Licenze della voce Licenza 128 1

Introduzione

World Wide Web

« Il World Wide Web ha le potenzialità per svilupparsi in un'enciclopedia universale che copra tutti i campi della conoscenza [1] e in una biblioteca completa di corsi per la formazione. » ()

Il World Wide Web (nome di origine inglese), in sigla WWW, più spesso abbreviato in Web,[3] anche conosciuto come Grande Rete Mondiale,[4] è un servizio di Internet[5] che permette di navigare ed usufruire di un insieme vastissimo di contenuti (multimediali e non) e di ulteriori servizi accessibili a tutti o ad una parte selezionata degli utenti di Internet.

Caratteristiche generali [2] Immagine dell'home page del primo sito web Caratteristica principale della rete Web è che i nodi che la compongono sono tra loro collegati tramite i cosiddetti link (collegamenti), formando un enorme ipertesto. E i suoi servizi possono essere resi disponibili dagli stessi utenti di Internet.[6] Per quanto riguarda i contenuti, quindi, il Web possiede la straordinaria peculiarità di offrire a chiunque la possibilità di diventare editore e, con una spesa estremamente esigua, di raggiungere un pubblico potenzialmente vastissimo distribuito in tutto il mondo.[7]

Il Web è stato inizialmente implementato da Tim Berners-Lee mentre era ricercatore al CERN, sulla base di idee dello stesso Berners-Lee e di un suo collega, Robert Cailliau, e oggi gli standard su cui è basato, in continua evoluzione, sono mantenuti dal World Wide Web Consortium (W3C). La nascita del Web risale al 6 agosto 1991, giorno in cui Berners-Lee mise on-line su Internet il primo sito Web. Inizialmente utilizzato solo dalla comunità scientifica, il 30 aprile 1993 il CERN decide di rendere pubblica la tecnologia alla base del Web. A tale decisione fa seguito un immediato e ampio successo del Web in virtù della possibilità offerta a chiunque di diventare editore, della sua efficienza e, non ultima, della sua semplicità. Con il successo del Web ha inizio la crescita esponenziale e inarrestabile di Internet ancora oggi in atto, nonché la cosiddetta "era del Web". World Wide Web 2

Descrizione Il Web è uno spazio elettronico e digitale di Internet destinato alla pubblicazione di contenuti multimediali (testi, immagini, audio, video, ipertesti, ipermedia, ecc.) nonché uno strumento per implementare particolari servizi come ad esempio il download di software (programmi, dati, applicazioni, videogiochi, ecc.). Tale spazio elettronico e tali servizi sono resi disponibili attraverso particolari computer di Internet chiamati server web. Chiunque disponga di un computer, di un accesso ad Internet, degli opportuni programmi e del cosiddetto spazio web, porzione di memoria di un server web destinata alla memorizzazione di contenuti web e all'implementazione di servizi web, può, nel rispetto delle leggi vigenti nel Paese in cui risiede il server web, pubblicare contenuti multimediali sul Web e fornire particolari servizi attraverso il Web. I contenuti del Web sono infatti costantemente on-line quindi costantemente fruibili da chiunque disponga di un computer, di un accesso a Internet, e degli opportuni programmi (in particolare del cosiddetto browser web, il programma che permette, come si dice in gergo, di "navigare" nel Web, cioè di fruire dei contenuti e dei servizi del Web.) Non tutti i contenuti e i servizi del Web sono però disponibili a chiunque in quanto il proprietario dello spazio web, o chi ne ha delega di utilizzo, può renderli disponibili solo a determinati utenti, gratuitamente o a pagamento, utilizzando il sistema degli account.

I contenuti I contenuti principali del Web sono costituiti da testo e grafica rappresentati in un insieme ristretto di standard definito dal W3C. Tali contenuti sono quelli che tutti i browser web devono essere in grado di fruire autonomamente, cioè senza software aggiuntivo. I contenuti pubblicati sul Web possono essere però di qualunque tipo e in qualunque standard. Alcuni di questi contenuti sono pubblicati per essere fruiti attraverso il browser web e, non essendo in uno degli standard appartenenti all'insieme definito dal W3C, per poterli fruire attraverso il browser web questo deve essere integrato con i cosiddetti plug-in, software che integrano le funzionalità di un programma i quali, per quanto riguarda il browser web, normalmente sono scaricabili dal Web. Il resto dei contenuti del Web è utilizzabile con programmi autonomi. Ad esempio si può trattare di un file eseguibile sul sistema operativo che si sta utilizzando o di un documento di testo in formato Word.

L'organizzazione dei contenuti

I contenuti del Web sono organizzati nei cosiddetti siti web a loro volta strutturati nelle cosiddette pagine web le quali si presentano come composizioni di testo e/o grafica visualizzate sullo schermo del computer dal browser web. Le pagine web, anche appartenenti a siti diversi, sono collegate fra loro in modo non sequenziale attraverso i cosiddetti link (anche chiamati collegamenti), parti di testo e/o grafica di una pagina web che permettono di accedere ad un'altra pagina web, di scaricare particolari contenuti, o di accedere a particolari funzionalità, cliccandoci sopra Rappresentazione grafica di una piccola sezione di World Wide Web con il mouse, creando così un ipertesto. World Wide Web 3

Tutti i siti web, sono identificati dal cosiddetto indirizzo web, una sequenza di caratteri univoca chiamata in termini tecnici URL che ne permette la rintracciabilità nel Web. Non è previsto un indice aggiornato in tempo reale dei contenuti del Web, quindi nel corso degli anni sono nati ed hanno riscosso notevole successo i cosiddetti motori di ricerca, siti web da cui è possibile ricercare contenuti nel Web in modo automatico sulla base di parole chiave inserite dall'utente, e i cosiddetti portali web, siti web da cui è possibile accedere ad ampie quantità di contenuti del Web selezionati dai redattori del portale web attraverso l'utilizzo di motori di ricerca o su segnalazione dei redattori dei siti web.

I servizi Oltre alla pubblicazione di contenuti multimediali il Web permette di offrire servizi particolari implementabili dagli stessi utenti del Web. I servizi implementabili sono innumerevoli, in pratica limitati solo dalla velocità della linea di telecomunicazioni con cui l'utente e chi fornisce il servizio sono collegati e dalla potenza di calcolo dei loro computer. Di seguito quindi sono elencati solo quelli contraddistinti da una denominazione generica: • download: la distribuzione di software; • web mail: la gestione della casella di posta elettronica attraverso il Web; • streaming: la distribuzione di audio/video in tempo reale; • web TV: la televisione fruita attraverso il Web; • web radio: la radio fruita attraverso il Web; • web chat: la comunicazione testuale in tempo reale tra più utenti di Internet, tramite pagine web;

Implementazione Il Web è implementato attraverso un insieme di standard, i principali dei quali sono i seguenti: • HTML (e suoi derivati): il linguaggio di markup con cui sono scritte e descritte le pagine web; • HTTP: il protocollo di rete appartenente al livello di applicazione del modello ISO/OSI su cui è basato il Web; • URL: lo schema di identificazione, e quindi di rintracciabilità, dei contenuti e dei servizi del Web. La peculiarità dei contenuti del Web è quella di non essere memorizzati su un unico computer ma di essere distribuiti su più computer, caratteristica da cui discende efficienza in quanto non vincolati ad una particolare localizzazione fisica. Tale peculiarità è realizzata dal protocollo di rete HTTP il quale permette di vedere i contenuti del Web come un unico insieme di contenuti anche se fisicamente risiedono su una moltitudine di computer di Internet sparsi per il pianeta.

Funzionamento La visione di una pagina web inizia digitandone l'URL nell'apposito campo del browser web oppure cliccando su un collegamento ipertestuale presente in una pagina web precedentemente visualizzata o in altra risorsa come ad esempio un'e-mail. Il browser web a quel punto dietro le quinte inizia una serie di messaggi di comunicazione con il che ospita quella pagina con lo scopo di visualizzarla sul terminale utente. Per prima cosa la porzione di server-name dell'URL è risolta in un indirizzo IP usando il database globale e distribuito conosciuto come System (in sigla DNS). Questo indirizzo IP è necessario per inviare e ricevere pacchetti dal server web. A questo punto il browser richiede le informazioni inviando una richiesta a quell'indirizzo. In caso di una tipica pagina web, il testo HTML di una pagina è richiesto per primo ed immediatamente interpretato dal browser web che, successivamente, richiede eventuali immagini o file che serviranno per formare la pagina definitiva. Una volta ricevuti i file richiesti dal web server, il browser formatta la pagina sullo schermo seguendo le specifiche HTML, CSS, o di altri linguaggi web. Ogni immagine e le altre risorse sono incorporate per produrre la pagina web che l'utente vedrà. World Wide Web 4

Storia

La nascita

La prima proposta di un sistema ipertestuale si può far risalire agli studi di Vannevar Bush, poi pubblicati nell'articolo As We May Think (in italiano "Come potremmo pensare") del 1945. La data di nascita del World Wide Web viene comunemente indicata nel 6 agosto 1991, giorno in cui l'informatico inglese Tim Berners-Lee pubblicò il primo sito web dando così vita al fenomeno "WWW" (detto anche "della tripla W"). L'idea del World Wide Web era nata due anni prima, nel 1989, presso il CERN (Conseil Européen pour la Recherche Nucléaire) di Ginevra, Il computer utilizzato da Tim Berners-Lee per il più importante laboratorio di fisica europeo.Il ricercatore inglese fu realizzare il primo server web colpito da come alcuni colleghi italiani usavano trasmettere informazioni tramite linea telefonica da un piano all'altro dell'istituto visualizzando informazioni tramite video. Il 13 marzo 1989 Tim Berners-Lee presentò infatti al proprio supervisore il documento Information Management: a Proposal che fu valutato «vago ma interessante». Alla sua base vi era il progetto dello stesso Berners-Lee e di un suo collega, Robert Cailliau, di elaborare un software per la condivisione di documentazione scientifica in formato elettronico indipendentemente dalla piattaforma informatica utilizzata, con il fine di migliorare la comunicazione, e quindi la cooperarazione, tra i ricercatori dell'istituto. A lato della creazione del software, iniziò anche la definizione di standard e protocolli per scambiare documenti su reti di calcolatori: il linguaggio HTML e il protocollo di rete HTTP.

Questi standard e protocolli supportavano inizialmente la sola gestione di pagine HTML statiche, vale a dire file ipertestuali -preparati precedentemente- visualizzabili e, soprattutto, navigabili utilizzando opportune applicazioni (browser web). Dopo i primi anni in cui era stato usato solo dalla comunità scientifica, il 30 aprile 1993 il CERN decise di mettere il WWW a disposizione del pubblico rinunciando ad ogni diritto d'autore. La semplicità della tecnologia decretò un immediato successo: in pochi anni il WWW divenne la modalità più diffusa al mondo per inviare e ricevere dati su Internet, facendo nascere quella che oggi è nota come "era del web".

Dal web statico ai web service Per superare le limitazioni del progetto iniziale, furono subito definiti strumenti capaci di generare pagine HTML dinamiche (ad es. utilizzando dati estratti da un database). La prima soluzione di questo tipo furono le CGI (). Attraverso una CGI è possibile richiedere ad un Web server di invocare un'applicazione esterna e presentare il risultato come una qualsiasi pagina HTML. Questa soluzione, sebbene molto semplice da realizzare, presenta numerose limitazioni di progetto (l'applicativo esterno viene eseguito ad ogni richiesta utente e non è prevista alcuna ottimizzazione, non vi è alcuna gestione dello stato della sessione, etc.). Per dare al web una maggiore interattività e dinamicità sono state perseguite due strade. Da un lato sono state aumentate le funzionalità dei browser attraverso un'evoluzione del linguaggio HTML e la possibilità d'interpretazione di linguaggi di scripting (come il JavaScript). Dall'altro, si è migliorata la qualità di elaborazione dei server attraverso una nuova generazione di linguaggi integrati con il Web Server (come JSP, PHP, ASP, etc.), trasformando i Web Server in quelli che sono oggi più propriamente noti come Application Server. La diffusione di queste soluzioni ha consentito di avviare l'utilizzo del web come piattaforma applicativa che oggi trova la sua massima espressione nei Web Service, alla cui realizzazione e diffusione sta lavorando l'intera industria mondiale del software per la gestione d'azienda, dai grandi nomi commerciali (come SAP e Oracle) fino alle World Wide Web 5

comunità Open Source. L'utilizzo dei web-service all'interno dell'architettura di integrazione SOA permetterà anche alle piccole imprese di gestire senza grandi sforzi i propri processi aziendali. Scopo dei Web Service è di limitare il più possibile le attività di implementazione, consentendo di accedere a servizi software resi disponibili in rete, assemblarli secondo le proprie necessità e pagarli soltanto per il loro utilizzo effettivo, metodologia individuata nella terminologia anglosassone come pay per use, on demand software, just in time software, on tap software, etc. È chiaro, quindi, che i web-service e il loro successo hanno ed avranno un legame strutturale ed intrinseco con i processi aziendali che dovranno supportare nell'ambito di una nuova organizzazione basata sui processi.

Dal web statico al web semantico Nonostante tutte queste evoluzioni, il web rimane, ancora e soprattutto, una gigantesca biblioteca di pagine HTML statiche on-line. Però, se da un lato lo standard HTML con la sua semplicità ha contribuito all'affermazione del web, dall'altro ha la grossa limitazione di occuparsi solo ed esclusivamente della formattazione dei documenti, tralasciando del tutto la struttura e il significato del contenuto. Questo pone notevoli difficoltà nel reperimento e riutilizzo delle informazioni. Per rendersi conto di questo è sufficiente eseguire una ricerca utilizzando uno dei molti motori disponibili in rete e ci si accorgerà che, delle migliaia di documenti risultanti dalla query, spesso solo una piccola percentuale è d'interesse per la ricerca che s'intendeva fare. Ad esempio, per un qualsiasi motore di ricerca, non esiste alcuna differenza fra il termine Rossi nel contesto Il Sig. Rossi ed il termine rossi nel contesto capelli rossi, rendendo la ricerca molto difficile. La risposta a questo problema è venuta, ancora una volta, dal fisico inglese Tim Berners-Lee, che, abbandonato il CERN, ha fondato il consorzio W3C che ha assunto il ruolo di governo nello sviluppo di standard e protocolli legati al web. Egli nel 1998 ha definito lo standard XML (eXtensible Markup Language), un metalinguaggio derivante dall'SGML, che consente la creazione di nuovi linguaggi di marcatura (ad es. lo stesso HTML è stato ridefinito in XML come XHTML). Sua caratteristica innovativa è la possibilità di aggiungere informazioni semantiche sui contenuti attraverso la definizione di opportuni tag. I principali obiettivi di XML, dichiarati nella prima specifica ufficiale [8] (ottobre 1998), sono pochi ed espliciti: utilizzo del linguaggio su Internet, facilità di creazione dei documenti, supporto di più applicazioni, chiarezza e comprensibilità. Con queste semplici caratteristiche l'XML fornisce un modo comune di rappresentare i dati, cosicché i programmi software siano in grado di eseguire meglio ricerche, visualizzare e manipolare informazioni nascoste nell'oscurità contestuale. È per questo che, nonostante la sua giovane età, l'XML è alla base di tutte le nuove specifiche tecnologiche rilasciate dal W3C ed è stato adottato come standard di rappresentazione dati da tutta l'industria informatica (dai file di configurazione delle applicazioni alla definizione di formati di interscambio dei dati). Le specifiche XML hanno però una lacuna molto importante: non definiscono alcun meccanismo univoco e condiviso per specificare relazioni tra informazioni espresse sul web per una loro elaborazione automatica (ad es. più documenti che parlano dello stesso argomento, persona, organizzazione, oggetto), rendendo molto difficile la condivisione delle informazioni. Anche in questo caso la soluzione al problema è venuta dal W3C di Berners-Lee, attraverso la formalizzazione del web semantico. Il W3C considera l'ideale evoluzione del web dal machine-representable al machine-understandable. L'idea è di generare documenti che possano non solo essere letti e apprezzati da esseri umani, ma anche accessibili e interpretabili da agenti automatici per la ricerca di contenuti. A tale scopo sono stati definiti alcuni linguaggi, quali Resource Description Framework (RDF) e Web Ontology Language (OWL), entrambi basati su XML, che consentono di esprimere le relazioni tra le informazioni rifacendosi alla logica dei predicati mutuata dall'intelligenza artificiale.[9] Questi standard sono già disponibili, ma continuano ad essere ulteriormente sviluppati insieme a formalismi e strumenti per dotare il web di capacità di inferenza. World Wide Web 6

Quello appena esposto è un processo solo apparentemente tecnico, ma ben visibile nella sua portata, che ha come obiettivo l'approdo all'intelligenza condivisa del web che promette, a breve, l'uso più efficiente dei siti internet e, a più lungo termine, una autentica trasformazione nella natura del software e dei servizi. Tanto interesse per queste tecnologie è da ravvisare nel fatto che tutti (utenti, produttori di software e di servizi piccoli e grandi) hanno da avvantaggiarsi dalla diffusione piena di questi standard. La formazione nel corpo del web di una vasta rete "semantica" è, infatti, la condizione chiave per il decollo di un nuovo modo di intendere ed usare il web.

Note

[1] L'enciclopedia universale libera e le risorse per l'apprendimento (http:/ / www. . org/ encyclopedia/ free-encyclopedia. it. )

[2] Primo (in ordine cronologico) sito web (http:/ / www. w3. org/ History/ 19921103-hypertext/ hypertext/ WWW/ TheProject. html) (al tempo l'indirizzo web era diverso). È stato messo online il 6 agosto 1991 da Tim Berners-Lee. [3] "Web" essendo l'abbreviazione di un nome proprio andrebbe scritto con l'iniziale maiuscola, vista però la sua ormai ampissima diffusione nel linguaggio comune è accettata anche la grafia con l'iniziale minuscola. [4] "Grande Rete Mondiale" è un appellativo italiano che nasce come traduzione letterale italiana di "World Wide Web", anche se la traduzione letterale italiana più accurata sarebbe "ragnatela grande quanto il mondo". L'appellativo si è diffuso nei primi anni di affermazione del World Wide Web e oggi è in forte disuso. [5] In particolare il World Wide Web è uno dei principali servizi di Internet: assieme alla posta elettronica certamente il servizio di Internet più utilizzato e conosciuto. [6] Ovviamente sono necessarie opportune risorse (un computer, opportuni software, un accesso a Internet, ecc.) e conoscenze. Se i contenuti da pubblicare sul Web non sono troppo complessi le risorse e conoscenze necessarie sono comunque di esigua entità. Ad esempio, già dotandosi di un comune personal computer attualmente disponibile in commercio e sottoscrivendo un servizio di accesso a Internet con uno dei più popolari Internet service provider, si ha a disposizione tutto il necessario per poter pubblicare sul Web contenuti non troppo complessi. I più popolari Internet service provider offrono infatti la possibilità di pubblicare sul Web contenuti non troppo complessi attraverso il Web stesso senza la necessità di conoscere il linguaggio di markup del Web. Lo stesso vale anche per i , molti sono infatti i siti web che offrono gratuitamente la possibilità di creare un blog in modo semplice e immediato attraverso il Web stesso. In caso invece di contenuti più complessi è necessario dotarsi anche di un editor web 'WYSIWYG se si vuole evitare, o almeno semplificare, l'apprendimento del linguaggio di markup del Web. [7] Gli utenti di Internet nel 2008 hanno superato il miliardo e cinquecento milioni, quasi un quarto della popolazione mondiale (fonte: Internet:

2,2 miliardi di utenti nel 2013. Asia e Cina guideranno la crescita mentre l’Italia risulta ancora tra i Paesi poco connessi (http:/ / www.

key4biz. it/ News/ 2009/ 07/ 21/ e-Society/ forrester_internet_Zia_Daniell_Wigder. html)).

[8] (http:/ / www. w3. org/ TR/ html4/ ).

[9] (http:/ / www. w3. org/ 2001/ sw/ ).

Bibliografia

• Vannevar Bush, As We May Think (http:/ / www. theatlantic. com/ doc/ 194507/ bush), The Atlantic Monthly July 1945. • James Gillies, Com'è nato il web, Milano, Baldini & Castoldi, 2002. • Tim Berners-Lee, Mark Fischetti, L'architettura del nuovo Web, Milano, Feltrinelli, 1999.

Voci correlate • Web mobile • Rete a invarianza di scala • W3C • Web semantico • Web Service • Social media • WWW2 World Wide Web 7

Altri progetti • Articolo su Wikinotizie: Ecco i quindici siti web che hanno cambiato il mondo

• Wikiquote contiene citazioni: http:/ / it. wikiquote. org/ wiki/ Internet

• Wikinotizie contiene notizie di attualità: http:/ / it. wikinews. org/ wiki/ Internet

• Wikimedia Commons contiene file multimediali: http:/ / commons. wikimedia. org/ wiki/ Category:World Wide Web

Collegamenti esterni

• Sito ufficiale del W3C (http:/ / www. w3. org/ )

• Sito ufficiale del CERN (http:/ / public. web. . ch/ Public/ Welcome. html)

Suite di protocolli Internet

In informatica e telecomunicazioni la suite di protocolli Internet è un insieme di protocolli di rete su cui si basa il funzionamento della rete Internet. A volte, per sineddoche, è chiamata suite di protocolli TCP/IP, in funzione dei due più importanti protocolli in essa definiti: il Transmission Control Protocol (TCP) e l' (IP).

Storia del TCP/IP Nei primi anni settanta, la Defence Advanced Research Project Agency (DARPA) finanziò l'Università di Stanford e la BBN (, Beranek and Newman) per lo sviluppo di un insieme di protocolli di comunicazione da utilizzarsi per lo sviluppo di reti a commutazione di pacchetto, per l'interconnessione di calcolatori eterogenei. Fu così che nacque lInternet Protocol Suite i cui due protocolli più noti sono il TCP (Transmission Control Protocol) e l'IP (Internet P'rotocol). Si fa riferimento a questa architettura di rete con la sigla TCP/IP o IP/TCP (quest'ultima non è quasi mai usata). I creatori di tali protocolli di trasmissione, tuttora utilizzati nel web, sono nello specifico Robert Kahn e Vinton Cerf, a cui l'ex Presidente degli Stati Uniti George W. Bush ha consegnato la Presidential Medal of Freedom, ovvero la più alta tra le onorificenze civili a stelle e strisce, il 9 novembre 2005. I due studiosi non sono nuovi a questo genere di premiazioni: all'inizio del 2005 è stato assegnato loro il prestigioso 2004 A.M. Turing Award, equivalente del Premio Nobel nel settore dell'Information Technology. Cerf e Kahn hanno sviluppato lo standard per la trasmissione di pacchetti via rete nel lontano 1973, mentre lavoravano a un progetto di sviluppo dei sistemi di comunicazione voluto dalla DARPA (Defense Advanced Research Projects Agency). Attualmente , collabora con Google alla creazione degli standard per le future applicazioni e nel frattempo si dedica allo sviluppo di nuovi protocolli di comunicazione interplanetaria per il Jet Propulsion Lab della Nasa. Robert Kahn, invece, dopo 13 anni di servizio presso la DARPA è diventato presidente della Corporation for National Research Initiatives (CNRI). Questi protocolli, utilizzabili gratuitamente da tutti perché di pubblico dominio fin dall'inizio, ottennero un elevato successo (utilizzati da un gruppo di ricercatori per ARPAnet). Questo genera alcune ambiguità dovute al fatto che il nome più corretto sarebbe . Per esempio succede di sentir parlare di servizi basati su TCP/IP anche quando in realtà, invece di TCP, viene usato un protocollo alternativo, UDP, anch'esso appartenente all'Internet Protocol Suite. In genere il TCP viene utilizzato per quelle applicazioni che richiedono un servizio orientato alla connessione, come ad esempio la posta elettronica e il file sharing, mentre l'UDP prende sempre più piede per le applicazioni in tempo reale come l'on-line gaming o lo streaming audio e video; la differenza fra i due protocolli risiede nella maggiore affidabilità nel trasporto dei dati di TCP, che offre una serie di servizi appositamente pensati (gestione del flusso, della congestione...), mentre UDP punta molto sulla velocità di trasmissione a scapito della affidabilità. Si tenga quindi sempre presente che la sigla Suite di protocolli Internet 8

TCP/IP è di utilizzo talmente comune da essere utilizzata, talvolta, anche quando esistono termini alternativi più corretti. TCP/IP è l'architettura adottata dalla rete internet. Negli anni novanta, nonostante la sua età, è stata (più o meno paradossalmente) l'unica architettura che ha interessato il mercato, al punto che gli enti di standardizzazione, di fronte al fatto compiuto della sua massiccia diffusione hanno dovuto darle la stessa dignità di ISO/OSI.

Caratteristiche Tale suite può essere descritta per analogia con il modello OSI, che descrive i livelli della pila di protocolli. In una pila di protocolli ogni livello risolve una serie di problemi che riguardano la trasmissione di dati e fornisce un ben definito servizio ai livelli più alti. I livelli più alti sono logicamente più vicini all'utente e funzionano con dati più astratti lasciando ai livelli più bassi il compito di tradurre i dati in forme mediante le quali possono essere fisicamente manipolati e trasmessi infine sul canale di comunicazione. Il modello Internet è stato prodotto come una soluzione ad un problema ingegneristico pratico in quanto si è trattato di aggiungere via via strati protocollari all'architettura di rete delle reti locali per ottenere un'interconnessione efficiente ed affidabile. Il modello OSI, in un altro senso, invece è stato l'approccio più teorico-deduttivo ed è stato anche prodotto nel più vecchio modello di rete.

Un esempio di funzionamento della suite TCP/IP Per comprendere la struttura della suite TCP/IP, si utilizza una schematizzazione a livelli. Ogni livello esegue una specifica serie di operazioni; ad ogni livello, ci si avvicina sempre più dall'interfaccia utente (quella con cui interagiamo) all'interfaccia di rete. Il messaggio trasmesso è modificato di conseguenza. Il primo livello è quello dell'applicazione: esso rappresenta l'interfaccia con l'utente ed abilita, ad esempio, la consultazione di pagine web, stabilendo e gestendo le sessioni di lavoro dei processi del nostro browser ed un server web. Il protocollo di trasporto TCP mette in coda i messaggi generati da client e server e li trasmette sotto forma di pacchetti su di una connessione full-duplex; il buon fine della spedizione è attestato da una ricevuta di ritorno. Anche questo è un collegamento virtuale tra le due applicazioni, i cui dettagli sono demandati al successivo livello, detto di rete. Quindi, il livello di trasporto offre un servizio al livello delle applicazioni avvalendosi dei servizi del sottostante livello di rete (ed in particolare del protocollo IP). Per gestire molteplici processi attivi nel trasferimento dati sul medesimo nodo (o computer) il livello di trasporto (TCP o UDP) utilizza più numeri di porta. TCP nell'invio dei pacchetti usa il meccanismo dello Sliding Window (o finestra scorrevole). Una serie di pacchetti viene inviata da TCP seguendo delle regole ben precise: • Ad ogni finestra di pacchetti spedita il trasmettitore fa partire un timeOut. • Il Ricevitore invia per ogni pacchetto ricevuto un ACK indicando il successivo pacchetto atteso. • Il trasmettitore considera quindi spediti tutti i pacchetti precedenti. • Se il timeout scade oppure sono ricevuti 3 ACK duplicati, TCP assume si sia verificata la perdita di uno o più pacchetti e provvede ad implementare opportune strategie di ritrasmissione dei dati e di controllo della congestione. Questa è una tecnica molto importante perché fornisce un canale di comunicazione affidabile. Inoltre TCP contiene meccanismi per gestire la congestione ed il controllo di flusso. Internet Protocol (IP) è il protocollo di InternetWorking del modello DOD/DARPA (secondo il modello OSI è classificato nel livello rete). Esso si occupa di gestire l'indirizzamento dei nodi e l'instradamento. A ciscun nodo viene infatti assegnato un indirizzo IP che lo identificherà in modo non ambiguo in rete. Le funzionalità di instradamento, invece, consentono di selezionare il percorso migliore per veicolare un messaggio verso un dato nodo destinatario, noto che sia il suo indirizzo IP. Suite di protocolli Internet 9

Al livello di collegamento si decide come fare il trasferimento del messaggio per ogni singolo tratto del percorso: dal computer del browser al primo router, dal primo router al secondo, dal secondo al terzo e dal terzo al computer del server. Questo è un collegamento virtuale tra due computer (o router) adiacenti. Anche in questo caso le interfacce di comunicazione dei nodi adiacenti saranno individuate per mezzo di un indirizzo univoco, usualmente denominato indirizzo MAC. Il livello fisico, che è l'ultimo, trasmette il messaggio sul canale di comunicazione usualmente sotto forma di onde elettromagnetiche, sebbene sia anche possibile utilizzare onde acustiche (come ad esempio nelle reti di sensori sottomarine).

Collegamenti esterni • Introduzione al TCP/IP [1]

Note

[1] http:/ / www. oscene. net/ it/ sysadmin/ networking/ lo-stack-tcpip-introduzione

File Transfer Protocol

Il File Transfer Protocol (FTP) (protocollo di trasferimento file), è un protocollo per la trasmissione di dati tra host basato su TCP. FTP è uno dei primi protocolli definiti ed ha subito una lunga evoluzione negli anni. La prima specifica, sviluppata presso il MIT, risale al 1971 (RFC-114 [1]). L'attuale specifica fa riferimento all'RFC-959 [2]. Gli obiettivi principali di FTP descritti nella sua RFC ufficiale sono: • Promuovere la condivisione di file (programmi o dati) • Incoraggiare l'uso indiretto o implicito di computer remoti. • Risolvere in maniera trasparente incompatibilità tra differenti sistemi di stoccaggio file tra host. • Trasferire dati in maniera affidabile ed efficiente. Altro protocollo usato per il trasporto dati in Internet è il protocollo HTTP. File Transfer Protocol 10

Il modello

Dove: • PI (protocol interpreter) è l'interprete del protocollo, utilizzato da client (User-PI) e server (Server-PI) per lo scambio di comandi e risposte. In gergo comune ci si riferisce ad esso come "canale comandi". • DTP (data transfer process) è il processo di trasferimento dati, utilizzato da client (User-DTP) e server (Server-DTP) per lo scambio di dati. In gergo comune ci si riferisce ad esso come "canale dati".

Funzionamento generale FTP, a differenza di altri protocolli come ad esempio HTTP, utilizza due connessioni separate per gestire comandi e dati. Un server FTP rimane tipicamente in ascolto sulla porta 21 TCP a cui si connette il client. La connessione da parte del client determinerà l'inizializzazione del canale comandi attraverso il quale client e server si scambieranno comandi e risposte. Lo scambio effettivo di dati (come ad esempio file) richiederà l'apertura del canale dati il quale può essere di due tipi. In un canale dati di tipo attivo il client apre una porta tipicamente random, tramite il canale comandi rende noto il numero di tale porta al server e attende che esso si connetta. Una volta che il server ha attivato la connessione dati al client FTP, quest'ultimo effettua il binding della porta sorgente alla porta 20 del server FTP. A tale scopo possono venire impiegati i comandi PORT o EPRT, a seconda del protocollo di rete utilizzato (tipicamente IPv4 o IPv6). In un canale dati di tipo passivo il server apre una porta tipicamente random (> 1023), tramite il canale comandi rende noto il numero di tale porta al client e attende che esso si connetta. A tale scopo possono venire impiegati i comandi PASV o EPSV, a seconda del protocollo di rete utilizzato (tipicamente IPv4 o IPv6). Sia il canale comandi sia il canale dati sono delle connessioni TCP; FTP crea un nuovo canale dati per ogni file trasferito all'interno della sessione utente, mentre il canale comandi rimane aperto per l'intera durata della sessione utente, in altre parole il canale comandi è persistente mentre il canale dati è non persistente. File Transfer Protocol 11

Un server FTP offre svariate funzioni che permettono al client di interagire con il suo filesystem e i file che lo popolano, tra cui: • Download/upload di file. • Resume di trasferimenti interrotti. • Rimozione e rinomina di file. • Creazione di directory. • Navigazione tra directory. FTP fornisce inoltre un sistema di autenticazione (N.B. in chiaro) degli accessi. Il client che si connette potrebbe dover fornire delle credenziali a seconda delle quali gli saranno assegnati determinati privilegi per poter operare sul filesystem. L'autenticazione cosiddetta "anonima" prevede che il client non specifichi nessuna di accesso e che lo stesso abbia privilegi che sono tipicamente di "sola lettura".

Comandi Lista dei comandi definiti nella RFC-959 [2].

Comandi

Nome Comando Parametri Descrizione

Abort ABOR Interrompe trasferimento dati.

Account ACCT Informazioni account (raramente usato).

Allocate ALLO Alloca spazio sufficiente per ricevere un file (raramente usato).

Append (with APPE Appende dati ad un file esistente. create)

Change to parent CDUP Va alla parent directory. directory

Change working CWD Cambia directory corrente. directory

Delete DELE Cancella file.

Help HELP Ritorna la lista dei comandi accettati dal server. Con argomento fornisce spiegazioni riguardo al comando specificato.

List LIST Lista il contenuto di una directory o le proprietà di un singolo file.

Trasfer mode MODE Imposta la modalità di trasferimento (S=stream, B=block, =compressed).

Make directory MKD Crea directory.

Name list NLST Ritorna il nome dei file della directory specificata.

Noop NOOP Non fa nulla (usato prevalentemente per prevenire disconnessioni per inattività prolungata).

Password PASS Specifica la password dell'utente.

Passive PASV Inizializza connessione dati passiva.

Data port PORT Inizializza connessione dati attiva.

Print working Ritorna nome della directory corrente. directory

Logout QUIT Disconnette. Se un trasferimento è ancora in corso attende che termini prima di chiudere la sessione.

Reinitialize REIN Effettua il log-off dell'utente loggato. File Transfer Protocol 12

Restart REST Riprende il trasferimento dall'offset indicato.

Retrieve RETR Preleva file (da server a client).

Remove directory RMD Rimuove directory.

Rename from RNFR Rinomina (sorgente).

Rename to RNTO Rinomina (destinazione).

Site parameters SITE Manda comando specifico per il server (non standardizzato; varia tra implementazioni).

Structure mount SMNT Monta struttura (raramente usato).

Status STAT Ritorna statistiche riguardo al server. Con argomento lista il contenuto di una directory utilizzando il canale comandi.

Store STOR Spedisce un file (da client a server).

Store unique STOU Spedisce un file (da client a server) utilizzando un nome univoco.

File structure STRU Imposta la struttura dati (F=file, =record, P=page). Praticamente inutilizzato. Il valore di default è F.

System SYST Ritorna tipo di sistema operativo.

Representation TYPE Imposta la modalità di trasferimento (A=ASCII, E=EBCDIC, I=Binary, type L=Local). Il valore di default è A. EBCDIC e Local sono raramente usati (esempio: unicamente su sistemi mainframe).

User Name USER Specifica nome utente.

Codici di risposta • 1xx: Risposta positiva preliminare. L'azione richiesta è iniziata ma ci sarà un'altra risposta ad indicare che essa è effettivamente completata. • 2xx: Risposta positiva definitiva. L'azione richiesta è completata. Il client può ora mandare altri comandi. • 3xx: Risposta positiva intermedia. Il comando è stato accettato ma è necessario mandarne un secondo affinché la richiesta sia completata definitivamente. • 4xx: Risposta negativa temporanea. Il comando non è andato a buon fine ma potrebbe funzionare in un secondo momento. • 5xx: Risposta negativa definitiva. Il comando non è andato a buon fine e il client non dovrebbe più ripeterlo. • x0x: Errore di sintassi. • x1x: Risposta ad una richiesta informativa. • x2x: Risposta relativa alla connessione. • x3x: Risposta relativa all'account e/o ai permessi. • x4x: Non meglio specificato. • x5x: Risposta relativa al file-system. File Transfer Protocol 13

Problemi relativi alla sicurezza La specifica originale di FTP non prevede alcuna cifratura per i dati scambiati tra client e server. Questo comprende nomi utenti, password, comandi, codici di risposta e file trasferiti i quali possono essere "sniffati" o visionati da malintenzionati in determinate situazioni (esempio: ambienti intranet). Il problema è comune a diversi altri protocolli utilizzati prima della diffusione di SSL quali HTTP, e SMTP. Per ovviare al problema è stata definita una nuova specifica che aggiunge al protocollo FTP originale un layer di cifratura SSL/TLS più una nuova serie di comandi e codici di risposta. Il protocollo prende il nome di FTPS ed è definito nella RFC-4217 [3]. Da non confondersi con SFTP che è comunque una valida alternativa per ovviare al problema descritto.

Applicazioni che svolgono il ruolo di trasferimento dati per il tramite di FTP FileZilla, Fire Downloader, JDownloader sono alcuni dei tanti gestori di download che permettono di trasferire i dati mediante connessione FTP. Tuttavia nei sistemi operativi, in genere, si può effettuare l'accesso anche tramite riga di comando.

Collegamenti esterni [4] • (EN) RFC 959 FTP (traduzione in italiano ) • (EN) RFC 2228 FTP Security Extensions • (EN) RFC 2640 Internationalization of FTP • (EN) RFC 4217 Securing FTP with TLS

Note

[1] http:/ / www. networksorcery. com/ enp/ protocol/ ftp. htm

[2] http:/ / www. faqs. org/ rfcs/ rfc959. html

[3] http:/ / www. faqs. org/ rfcs/ rfc4217. html

[4] http:/ / www. rfc. altervista. org/ rfctradotte/ rfc959_tradotta. txt Hypertext Transfer Protocol 14 Hypertext Transfer Protocol

L'HyperText Transfer Protocol (HTTP) (protocollo di trasferimento di un ipertesto) è usato come principale sistema per la trasmissione d'informazioni sul web. Le specifiche del protocollo sono gestite dal World Wide Web Consortium (W3C). Un Server HTTP generalmente resta in ascolto sulla porta 80 usando il protocollo TCP.

Storia La prima versione dell'HTTP, la 0.9, risale alla fine degli anni ottanta e costituiva, insieme con il linguaggio HTML e gli URL, il nucleo base della World Wide Web (WWW) global information initiative portata avanti da Tim Berners-Lee al CERN di Ginevra per la condivisione delle informazioni tra la comunità dei fisici delle alte energie. La prima versione effettivamente disponibile del protocollo, la HTTP/1.0, venne implementata dallo stesso Berners-Lee nel 1991 e proposta come RFC 1945 [1] all'ente normatore IETF nel 1996. Con la diffusione di NCSA , un browser grafico di facile uso, il WWW conobbe un successo crescente e divennero evidenti alcuni limiti della versione 1.0 del protocollo, in particolare: • l'impossibilità di ospitare più siti www sullo stesso server (virtual host) • il mancato riuso delle connessioni disponibili • l'insufficienza dei meccanismi di sicurezza Il protocollo venne quindi esteso nella versione HTTP/1.1, presentato come RFC 2068 nel 1997 e successivamente aggiornato nel 1999 come descritto dal RFC 2616 [2]

Funzionamento L'HTTP funziona su un meccanismo richiesta/risposta (client/server): il client esegue una richiesta e il server restituisce la risposta. Nell'uso comune il client corrisponde al browser ed il server al sito web. Vi sono quindi due tipi di messaggi HTTP: messaggi richiesta e messaggi risposta. HTTP differisce da altri protocolli di livello 7 come FTP, per il fatto che le connessioni vengono generalmente chiuse una volta che una particolare richiesta (o una serie di richieste correlate) è stata soddisfatta. Questo comportamento rende il protocollo HTTP ideale per il World Wide Web, in cui le pagine molto spesso contengono dei collegamenti (link) a pagine ospitate da altri server diminuendo così il numero di connessioni attive limitandole a quelle effettivamente necessarie con aumento quindi di efficienza (minor carico e occupazione) sia sul client che sul server. Talvolta però pone problemi agli sviluppatori di contenuti web, perché la natura senza stato (stateless) della sessione di navigazione costringe ad utilizzare dei metodi alternativi per conservare lo stato dell'utente, tipicamente basati sui cookie.

Messaggio di richiesta Il messaggio di richiesta è composto di tre parti: • Riga di richiesta (request line) • Sezione header (informazioni aggiuntive) • Body (corpo del messaggio)

Riga di richiesta La riga di richiesta è composta da metodo, URI e versione del protocollo. Il metodo di richiesta, per la versione 1.1, può essere uno dei seguenti: • GET • POST Hypertext Transfer Protocol 15

• HEAD • PUT • DELETE • TRACE • OPTIONS • CONNECT l'URI sta per Uniform Resource Identifier ed indica l'oggetto della richiesta (ad esempio la pagina web che si intende ottenere). I metodi HTTP più comuni sono GET, HEAD e POST. Il metodo GET è usato per ottenere il contenuto della risorsa indicata come URI (come può essere il contenuto di una pagina HTML). HEAD è analogo a GET, ma restituisce solo i campi dell'header, ad esempio per verificare la data di modifica del file. Una richiesta con metodo HEAD non prevede l'uso del body. Il metodo POST è usato di norma per inviare informazioni al server (ad esempio i dati di un form). In questo caso l'URI indica che cosa si sta inviando e il body ne indica il contenuto.

Gli header della richiesta Gli header di richiesta più comuni sono: Host: Nome del server a cui si riferisce l'URI. È obbligatorio nelle richieste conformi HTTP/1.1 perché permette l'uso dei virtual host basati sui nomi. User-Agent: Identificazione del tipo di client: tipo browser, produttore, versione...

Messaggio di risposta Il messaggio di risposta è composto dalle seguenti tre parti: • Riga di stato (status-line) • Sezione header • Body (contenuto della risposta)

Riga di stato La riga di stato riporta un codice a tre cifre catalogato nel seguente modo: • 1xx: Informational (messaggi informativi) • 2xx: Success (la richiesta è stata soddisfatta) • 3xx: Redirection (non c'è risposta immediata, ma la richiesta è sensata e viene detto come ottenere la risposta) • 4xx: Client error (la richiesta non può essere soddisfatta perché sbagliata) • 5xx: Server error (la richiesta non può essere soddisfatta per un problema interno del server) I codici di risposta più comuni sono: • 200 OK. Il server ha fornito correttamente il contenuto nella sezione body. • 301 Moved Permanently. La risorsa che abbiamo richiesto non è raggiungibile perché è stata spostata in modo permanente. • 302 Found. La risorsa è raggiungibile con un altro URI indicato nel header Location. Di norma i browser eseguono la richiesta all'URI indicato in modo automatico senza interazione dell'utente. • 400 Bad Request. La risorsa richiesta non è comprensibile al server. • 404 Not Found. La risorsa richiesta non è stata trovata e non se ne conosce l'ubicazione. Di solito avviene quando l'URI è stato indicato in modo incorretto, oppure è stato rimosso il contenuto dal server. • 500 Internal Server Error. Il server non è in grado di rispondere alla richiesta per un suo problema interno. • 505 HTTP Version Not Supported. La versione di http non è supportata. Hypertext Transfer Protocol 16

Gli header della risposta Gli header della risposta più comuni sono: • Server. Indica il tipo e la versione del server. Può essere visto come l'equivalente dell'header di richiesta User-Agent • Content-Type. Indica il tipo di contenuto restituito. La codifica di tali tipi (detti Media type) è registrata presso lo IANA (Internet Assigned Number Authority ); essi sono detti tipi MIME (Multimedia Internet Message Extensions), la cui codifica è descritta nel documento RFC 1521. Alcuni tipi usuali di tipi MIME incontrati in una risposta HTML sono: • text/html Documento HTML • text/plain Documento di testo non formattato • text/ Documento XML • image/ Immagine di formato JPEG

Esempi di messaggi HTTP Richiesta:

GET /wiki/Pagina_principale HTTP/1.1 Connection: Keep-Alive User-Agent: /5.0 (compatible; /3.2; ) (KHTML, like ) Accept: text/html, image/jpeg, image/png, text/*, image/*, */* Accept-Encoding: x-, x-deflate, gzip, deflate, identity Accept-Charset: iso-8859-1, utf-8;q=0.5, *;q=0.5 Accept-Language: en Host: it..org

(la richiesta deve terminare con una riga vuota, cioè con due "a capo" consecutivi) Risposta:

HTTP/1.0 200 OK Date: Mon, 28 Jun 2004 10:47:31 GMT Server: Apache/1.3.29 () PHP/4.3.4 X-Powered-By: PHP/4.3.4 Vary: Accept-Encoding,Cookie Cache-Control: private, s-maxage=0, max-age=0, must-revalidate Content-Language: it Content-Type: text/html; charset=utf-8 Age: 7673 X-Cache: HIT from wikipedia.org Connection: close

seguita dai dati richiesti. Hypertext Transfer Protocol 17

Versioni sicure Dal momento che tutto il traffico HTTP è anonimo e in chiaro, sono state sviluppate diverse alternative per garantire differenti livelli di sicurezza, in termini di • cifratura del traffico; • verifica di integrità del traffico; • autenticazione del server; • autenticazione dell'utente. La prima proposta venne direttamente da NCSA, con le versioni server 1.1 e client 2.2 che supportavano un meccanismo di autenticazione utente e cifratura dati basati su messaggi formato PEM e chiavi PGP. In seguito, sono state standardizzate due versioni sicure del protocollo HTTP chiamate SHTTP e HTTPS. La prima, modellata sulla posta cifrata S/MIME, è ormai caduta in disuso e prevede meccanismi crittografici a livello di payload: le richieste e gli header vengono scambiati in chiaro mentre il contenuto della pagina viene cifrato come una struttura MIME multipart. Il meccanismo HTTPS, inventato da , usa invece il sottostante canale cifrato a livello di trasporto mediante SSL o TLS per impedire l'intercettazione di qualsiasi parte della transazione. Entrambi i protocolli possono garantire l'identità del mittente, ma solo SHTTP è in grado di garantire anche l'integrità del contenuto dopo averlo, ad esempio, memorizzato su un disco.

Streaming HTTP La fruizione nelle pagine WEB di materiale multimediale, quale audio o video viene gestito in modo del tutto analogo al download dei file, tramite un caricamento progressivo o distribuzione progressiva, dove il file viene scaricato in modo progressivo dall'inizio alla fine (tramite i protocolli Real Time Streaming Protocol e Real-time Transport Protocol) e nel caso il bit-rate sia eccessivo per la rete che lo trasporta può verificarsi un continuo ricaricamento del buffer Per evitare questi inconvenienti esistono altri sistemi alternativi, che permettono l'adattamento del file alla rete dell'utente finale, questi sistemi sono caratterizzati dai protocolli: • Smooth Streaming, ideato da Microsoft[3][4] • HTTP Dynamic Streaming soluzione ideata da Adobe • HTTP Live Streaming soluzione ideata da Apple • Octoshape è una piattaforma proprietaria di streaming multimediale, che utilizza la tecnologia per offrire un throughput migliore e rompere la congestione nell'ultimo miglio. Ha la possibilità di utilizzare una suite di tecnologie multicast per ridurre al la larghezza di banda per qualsiasi CDN, ISP, emittente o del fornitore dell'ultimo miglio. Per contro queste soluzioni sono notevolmente più complesse rispetto alle tradizionali tecnologie di streaming. Alcune delle considerazioni documentate riguardano lo stoccaggio, i costi aggiuntivi per la codifica e la difficoltà nel mantenimento della qualità globale. Ci sono state anche alcune dinamiche interessanti trovate intorno alle interazioni complesse fra logica adattiva bit rate in competizione con complessa logica di controllo del flusso TCP.[5][6] Hypertext Transfer Protocol 18

Bibliografia • RFC 1945 (Specifiche HTTP 1.0) • RFC 2616 (Specifiche HTTP 1.1)

Voci correlate • HTTP tunneling • SPDY • HTTP Live Streaming • Do not track header

Note

[1] http:/ / tools. ietf. org/ html/ rfc1945

[2] http:/ / tools. ietf. org/ html/ rfc2616

[3] IIS Smooth Streaming Technical (http:/ / download. microsoft. com/ download/ 4/ 2/ 4/ 4247C3AA-7105-4764-A8F9-321CB6C765EB/

IIS_Smooth_Streaming_Technical_Overview. )

[4] Smooth Streaming (http:/ / www. iis. net/ download/ smoothstreaming)

[5] An Experimental Evaluation of Rate-Adaptation Algorithms in Adaptive Streaming over HTTP (http:/ / www. cc. gatech. edu/ ~sakhshab/

Saamer_MMSys11. pdf)

[6] Is adaptive bit rate the yellow brick road, or fool's for HD streaming? (http:/ / www. fierceonlinevideo. com/ story/

adaptive-bit-rate-yellow-brick-road-or-fools-gold-hd-streaming/ 2011-01-28)

Altri progetti

• Wikimedia Commons contiene file multimediali: http:/ / commons. wikimedia. org/ wiki/ Category:HTTP Simple Mail Transfer Protocol

Simple Mail Transfer Protocol (SMTP) è il protocollo standard per la trasmissione via internet di e-mail. In italiano si potrebbe tradurre come "Protocollo elementare di trasferimento postale". I protocolli utilizzati per ricevere posta sono invece il protocollo POP e l'IMAP.

Descrizione È un protocollo relativamente semplice, testuale, nel quale vengono specificati uno o più destinatari di un messaggio, verificata la loro esistenza e il messaggio viene trasferito. È abbastanza facile verificare come funziona un server SMTP mediante un client telnet. Il protocollo SMTP utilizza come protocollo di livello transport TCP. Il client apre una sessione TCP verso il server sulla porta 25 (recentemente modificata in 587 da molti Provider per limitare lo spam). Per associare il server SMTP a un dato nome di dominio (DNS) si usa un Resource Record di tipo MX (Mail eXchange) (Tipi di record DNS). Poiché SMTP è un protocollo testuale basato sulla codifica ASCII ( in particolare ASCII NVT), non è permesso trasmettere direttamente testo composto con un diverso set di caratteri e tantomeno file binari. Lo standard MIME permette di estendere il formato dei messaggi mantenendo la compatibilità col software esistente. Per esempio, al giorno d'oggi molti server SMTP supportano l'estensione 8BITMIME, la quale permette un trasferimento di un testo che contiene caratteri accentati (non-ASCII) senza bisogno di trascodificarlo. Altri limiti di SMTP, quale la lunghezza massima di una riga, impediscono la spedizione di file binari senza trascodifica. (Nota che per i file binari inviati con HTTP si utilizza il formato MIME senza bisogno di una trascodifica.) Simple Mail Transfer Protocol 19

SMTP è un protocollo che permette soltanto di inviare messaggi di posta, ma non di richiederli ad un server: per fare questo il client di posta deve usare altri protocolli, quali il POP3 () e l'IMAP (Internet Message Access Protocol).

Storia SMTP iniziò a diffondersi nei primi anni '80. A quel tempo era un'alternativa a UUCP, che era più adatto a gestire il trasferimento di e-mail fra computer la cui connessione era intermittente. L'SMTP, d'altra parte, funziona meglio se i computer sono sempre collegati alla rete. fu uno dei primi (se non proprio il primo) mail transfer agent ad implementare il protocollo SMTP. Fino al 2001 sono stati scritti almeno 50 programmi che implementano il protocollo SMTP come client (mittente dei messaggi) o server (destinatario del messaggio). Server molto diffusi sono di Philip Hazel, di Wietse Venema, di D. J. Bernstein, di Sam Varshavchik e Microsoft Exchange Server.

Esempio di comunicazione SMTP Quella che segue è una transazione SMTP valida. Le righe inviate dal client sono precedute da "C:", mentre quelle inviate dal server da "S:". Su molti computer si può stabilire una connessione mediante il comando telnet:

telnet www.example.com 25

Questo comando apre una connessione a www.example.com sulla porta 25 di TCP.

S: 220 www.example.com ESMTP Postfix C: HELO mydomain.com S: 250 Hello mydomain.com, pleased to meet you C: MAIL FROM: S: 250 [email protected] ... Sender ok C: RCPT TO: S: 250 [email protected] ... Recipient Ok C: DATA S: 354 End data with "." on a line by itself C: Subject: messaggio di prova C: From: [email protected] C: To: [email protected] C: C: Ciao, C: questa è una prova. C: . S: 250 Ok: queued as 12345 C: QUIT S: 221 Bye

Sebbene non sia obbligatorio, quasi tutti i client richiedono al server quali estensioni del protocollo SMTP il server supporta usando il saluto EHLO. Questi client usano HELO soltanto nel caso in cui il server non risponda ad EHLO. Simple Mail Transfer Protocol 20

La sicurezza del protocollo SMTP Una delle limitazioni del protocollo SMTP originario è che non gestisce l'autenticazione dei mittenti. Oltre al rischio di spam, esiste la possibilità di inviare e-mail facendo apparire come mittente l'indirizzo corrispondente ad un altro account. Senza accedere all'account di terzi, è possibile stabilire una connessione al mail-server e scrivere un messaggio in codice SMTP contenente i comandi relativi a mittente e destinatario, dare i relativi parametri e il corpo della e-mail. Per ovviare a questi problemi è stata sviluppata un'estensione chiamata SMTP-AUTH. Nonostante questo, lo spam rimane ancor oggi un grave problema dello posta eletronica. Tuttavia, non si ritiene praticabile una revisione radicale del protocollo SMTP, per via del gran numero di implementazioni del protocollo attuale (ad esempio, è stato proposto Internet Mail 2000 come protocollo alternativo). Per questo motivo sono stati proposti diversi protocolli ausiliari per assistere le transazioni SMTP. L'Anti-Spam Research Group dell'IRTF sta lavorando su varie proposte di autenticazione e-mail centrate sulla flessibilità, leggerezza e scalabilità.

Gli standard RFC (in lingua originale) • RFC 821, pubblicato nel 1982 • RFC 1123 pubblicato nel 1989. Correzioni all'RFC 821 • RFC 1425 pubblicato nel 1993. Introduce il comando EHLO • RFC 1651 pubblicato nel 1994. Rimpiazza l'RFC 1425 • RFC 1869 pubblicato nel 1995. Rimpiazza l'RFC 1651 • RFC 1891 pubblicato nel 1996. Corregge l'RFC 1869 • RFC 2821 pubblicato nel 2001. Rimpiazza gli RFC 821, RFC 1123, RFC 1869 • RFC 2822 pubblicato nel 2001. (tradotti in italiano) • RFC 1869 - Estensioni del servizio SMTP (tradotta) [1]

Voci correlate • On-Demand Mail Relay • Multipurpose Internet Mail Extensions (MIME) • Mail server

Note

[1] http:/ / www. rfc. altervista. org/ rfctradotte. html Multipiattaforma 21 Multipiattaforma

Multipiattaforma può essere detto di un linguaggio di programmazione, di un'applicazione software o di un dispositivo hardware che funziona su più di un sistema o appunto, piattaforma (es. Unix/Linux, Windows e ). Esempi di linguaggi multipiattaforma sono: C, C++, , JavaScript, , PHP, Python, Tcl, Erlang e REALbasic.

Linguaggi di programmazione e applicazioni Molti linguaggi informatici ad alto livello sono per loro stessa natura multipiattaforma, poiché sono definiti per una macchina astratta (cfr. la macchina astratta C, la macchina virtuale del Java e di altri linguaggi). Tuttavia, per numerosi compiti, è necessario che il programma faccia riferimento a delle API che sono diverse sui diversi sistemi operativi (gestione delle finestre, accesso allo hardware, funzioni per il multithreading, e così via). Ad esempio, sebbene il C++ di per sé sia multipiattaforma, un programma scritto per Windows che usa le API di Win32, solitamente non riuscirà ad essere compilato anche su un sistema Unix, in quanto le API che rendono disponibili quelle stesse funzionalità su Unix sono scritte diversamente. Una soluzione comune è quella di realizzare una API intermedia, implementata in una libreria che sia a sua volta portabile, e quindi implementata in modo diverso per le diverse piattaforme (mantenendo invariata l'interfaccia). Il codice del programma viene linkato a questa libreria. Un esempio tipico è quello delle interfacce grafiche (GUI). Molti linguaggi offrono una piattaforma costituita da librerie comuni (librerie standard), che permettono una copertura maggiore o minore delle esigenze tipiche di un programma. Un altro problema è dato dal fatto che un linguaggio può non specificare il comportamento di una certa sintassi; in questo caso, il comportamento effettivo dipende dalla implementazione specifica in uso a tempo di esecuzione, e ciò rende possibile scrivere un programma il cui corretto funzionamento si fondi su uno di questi comportamenti specifici (con la conseguenza che il programma non risulta portabile). Inoltre, per alcuni linguaggi, compilatori diversi rispettano in modo diverso o incompleto le specifiche del linguaggio stesso; in questi casi potrebbe essere necessario fare maggiore attenzione nella scrittura del codice sorgente di un programma, prima di compilarlo su più sistemi.

Limiti e soluzioni Poiché fornire e collaudare versioni compilate di un programma per ogni OS ed ogni CPU è praticamente impossibile, i progetti di software libero (open source), o che altrimenti permettono all'utente di compilare il proprio object code, possono essere considerati più multipiattaforma. Allo stesso modo, i linguaggi interpretati o che richiedono una virtual machine sono più multipiattaforma quando ognuno può compilarsela. Hotspot, la virtual machine di Java della Oracle Corporation, è fornita solo sotto forma di binari precompilati, con supporto per parecchie piattaforme (ma non tutte, nemmeno potenzialmente). Per esempio, Sun supporta GNU/Linux solo sull'architettura i386 (e parzialmente AMD64) così che chiunque ha Linux su un PowerPC o su computer SPARC non può utilizzare Java, se non compilando nel linguaggio macchina nativo oppure utilizzando strumenti di terzi. Molte API sono specifiche per una singola piattaforma. Si può dire che le OpenGL siano invece multipiattaforma perché non sono legate a un particolare sistema operativo, architettura CPU o marca di hardware grafico. API legate a una sola piattaforma possono essere ricreate sugli altri sistemi creando un livello di compatibilità, come ad esempio le librerie WINE, che consentono ai programmi che richiedono le librerie di Windows di poter funzionare su UNIX. Ci sono anche estensioni multipiattaforma e middleware per molti linguaggi di programmazione che permettono ai programmatori di compilare e fari girare lo stesso codice sorgente con minimi ritocchi su piattaforme differenti. Alcuni esempi sono le e le wxWidgets. Multipiattaforma 22

Multipiattaforma e Web Le applicazioni Web sono normalmente utilizzabili da ogni piattaforma con qualsiasi , senza preoccuparsi del linguaggio col quale sono state scritte. Ciò è vero perché il codice gira su un server e la comunicazione con l'utente avviene soltanto attraverso l'HTTP e l'(X)HTML. Le pagine web si dicono talvolta multipiattaforma o cross-browser se possono essere utilizzate da qualunque browser, o da tutti i browser recenti. Per produrre codice valido all'autore spesso occorre un'esperienza tale da "domare" le bizzarrie di alcuni browser poco conformi agli standard, come Internet Explorer. Una pagina web contenente qualcosa non interpretabile da tutti i browser come i filmati Macromedia Flash è ancora multipiattaforma se è navigabile anche da chi non possiede lo speciale plugin. Per esempio, con l'aggiunta di immagini a sostituire un contenuto multimediale. L'accessibilità web multipiattaforma richiede la conoscenza di standard tecnici, se una pagina è accessibile da vari sistemi come screen reader, browser basati sul Braille e piccoli dispositivi come telefoni cellulari e PDA.

Voci correlate • Interoperabilità 23

Browser

Browser

In informatica un browser (/ˈbraʊzə(r)/) o navigatore è un programma che consente di usufruire dei servizi di connettività in Rete e di navigare sul World Wide Web, appoggiandosi sui protocolli di rete forniti dal sistema operativo (a partire da quelli di livello applicativo come HTTP, FTP ecc.) attraverso opportune API, permettendo di visualizzare i contenuti delle pagine dei siti web e di interagire con essi. Quest'ultima funzionalità è supportata dalla capacità del browser di interpretare l'HTML — il codice con il quale sono scritte la maggior parte delle pagine web — e di visualizzarlo in forma di ipertesto.

Descrizione Esso rappresenta dunque il sistema software di interfacciamento dell'utente con la rete che rende la navigazione dell'utente tipicamente user-friendly, sebbene ai primordi della rete siano esistiti anche browser testuali da riga di comando su . I browser vengono principalmente utilizzati su personal computer, ma anche su altri dispositivi che consentono la navigazione in internet, come i palmari e gli smartphone. Quelli più noti e diffusi sono Internet Explorer, Mozilla , , Safari e Opera.

Storia

Anno Browser Utenti Internet (in [1] milioni)

1991 WorldWideWeb (Nexus)

1992 ViolaWWW, , MidasWWW, MacWWW (Samba)

[2] 1993 Mosaic, , 2.0, , AMosaic 1.0

1994 IBM WebExplorer, , SlipKnot 1.0, MacWeb, IBrowse, (), Minuet, Opera 1.0

[3] [4] 1995 Internet Explorer 1, .0, OmniWeb, UdiWWW , WebRouser , , 16

[5] 1996 1.0, .0, Netscape Navigator 3.0, Opera 2.0, PowerBrowser 1.5 , , 36 [6] 0.9 , AWeb,

[7] [6] 1997 .0, Netscape Navigator 4.0, 4.0, Opera 3.0 , Amaya 1.0 70

1998 .0 Beta 1, iCab, Mozilla 147

[6] 1999 Amaya 2.0 , Mozilla M3, Internet Explorer 5.0 248

[8] [9] [6] [6] 2000 Konqueror, , Opera 4 , Opera 5 , K-Meleon 0.2, Amaya 3.0 , Amaya 4.0 361

[10] [6] 2001 , 1.0, Opera 6 , Amaya 5.0 513

[6] [6] 2002 , Mozilla 1.0, Phoenix 0.1, 2.0, Amaya 6.0 , Amaya 7.0 587

[11] [6] 2003 Opera 7 , Safari 1.0, Epiphany 1.0, Amaya 8.0 719 Browser 24

2004 Firefox 1.0, , OmniWeb 5.0 817

[12] [6] 2005 Safari 2.0, Netscape Browser 8.0, Opera 8. , Epiphany 1.8, Amaya 9.0 , AOL Explorer 1.0, 1.0, 1018 1.0

[13] 2006 SeaMonkey 1.0, K-Meleon 1.0, Galeon 2.0, 1.0, .0, Avant 11, iCab 3, Opera 9 , Internet 1093 Explorer 7,

2007 Maxthon 2.0, Netscape Navigator 9, NetSurf 1.0, 1.0, Safari 3.0, 1262

[14] [6] [6] 2008 Konqueror 4, Safari 3.1, Opera 9.5 , Firefox 3, Amaya 10.0 , Flock 2, Chrome 0,2/0,3/0,4/1, Amaya 11.0 1565

[15] 2009 , Chrome 2/3, Safari 4, Opera 10 , SeaMonkey 2, Camino 2, Firefox 3.5 1734

[16] 2010 Firefox 3.6, Chrome 4/5/6/7/8, Opera 10.50 / 11, Safari 5, 1971

2011 /5/6/7/8, Chrome 9/10/11/12/13/14/15/16, Opera 11.10/11.50 2110

Il primo browser fu sviluppato da Tim Berners-Lee (tra i primi precursori del concetto di WWW e fondatore del W3C), e venne chiamato WorldWideWeb. Serviva a scopi dimostrativi, era disponibile solo per sistema operativo NeXT e perciò in seguito fu chiamato Nexus. Il primo browser a raggiungere un'apprezzabile popolarità internazionale fu Mosaic, sviluppato da NCSA, seguito poi da Netscape Navigator, che crebbe in fretta e fu la piattaforma su cui vennero messe a punto alcune innovazioni diffusesi a larga scala col passare del tempo (come ad esempio JavaScript). La netta prevalenza di Netscape presso l'utenza, a metà degli anni novanta, fu incrinata dalla cosiddetta guerra dei browser, una competizione inizialmente commerciale e poi di immagine cominciata da Microsoft quando le innovazioni introdotte da Netscape divennero così sofisticate da costituire una minaccia potenziale per i propri interessi. Per vincere la concorrenza, Microsoft incluse Internet Explorer nel proprio sistema operativo Windows (il più diffuso al mondo), stroncando sul nascere i possibili concorrenti. Questa mossa fu motivo di numerose cause legali per la difesa della libera concorrenza e contro la nascita di monopoli informatici. Netscape reagì rilasciando nel 1998 il proprio codice con una licenza open source. Il progetto Mozilla che ne derivò fornisce il codice che è alla base di diversi browser, fra i quali Netscape, Mozilla Suite, Galeon, Firefox e uno dei programmi di accesso della AOL. La presenza di browser diversi con funzioni differenti, ha portato alcuni webmaster a realizzare siti web destinati a essere visitati con un browser preferenziale, talvolta impedendo l'accesso a utenti che utilizzassero un browser differente da quello scelto. Questa consuetudine, oltre a essere contro la filosofia portante del World Wide Web, che vede l'accessibilità come uno dei pilastri portanti e aver quindi suscitato forti critiche e campagne di protesta e sensibilizzazione (come Campaign for a Non-Browser Specific WWW), ha costretto browser molto comuni (tra i quali Opera) a "fingersi" un altro browser (modificando il proprio ), per poter aver accesso a un maggior numero di documenti. Il browser più diffuso a livello mondiale è Internet Explorer, prodotto da Microsoft, che viene fornito gratuitamente e "di serie" con ogni sistema operativo Windows (dati al 2006). Il secondo browser in ordine di utilizzo è Mozilla nelle sue varianti (e in particolare Firefox), prodotto e distribuito gratuitamente dalla ; il terzo è Safari di Apple[17], distribuito assieme al sistema operativo Mac OS X (di cui più recentemente è stata messa a disposizione una versione gratuita anche per Windows). Altri browser molto diffusi sono Opera (terzo in Italia nel 2006) e il già citato Netscape Navigator, il cui sviluppo è ormai sospeso. Fra le principali funzionalità dei browser disponibili, si possono ricordare: navigazione a schede (Tabbed browsing), supporto alla navigazione off-line tramite la memoria cache e plugin dedicati per mantenere i link tra le pagine salvate, funzione di con arresto/ripresa sempre tramite la memoria cache, anteprima delle pagine da scaricare, sintesi vocale, integrazione dei feed RSS e di client di posta elettronica. Browser 25

La diversa diffusione dei vari browser, con tecnologie compatibili tra loro, ma con alcune peculiarità uniche, ha portato in passato con Internet Explorer 6 e attualmente con i sistemi basati sul WebKit a progettare le pagine web tenendo conto di un solo browser causando in alcuni casi il funzionamento solo su specifici browser, il che può portare a creare uno standard ancora prima che venga approvato dagli organi competenti[18].

Diffusione dei diversi browser Non esiste un unico metodo per verificare l'uso di un determinato tipo di browser rispetto agli altri, per questo i risultati dei diversi contatori possono differire anche di diversi punti percentuali.[19]

Porzioni di mercato dei principali browser nel mondo secondo W3Counter

[20] [21] [22] [23] [24] Browser Maggio 2007 Maggio 2008 Maggio 2009 Maggio 2010 Maggio 2011

Internet Explorer 66,7% 61,6% 57,4% 45,7% 37,7%

Mozilla Firefox 24,5% 28,9% 31,0% 32,2% 28,3%

Google Chrome — — 0,6% 8,4% 16,8%

Safari 1,8% 2,2% 2,2% 5,3% 6,4%

Opera 1,2% 1,1% 0,5% 2,0% 2,2%

Porzioni di mercato dei principali browser nel mondo (Europa) secondo StatCounter

[25] [26] [27] [28] Browser Settembre 2008 Settembre 2009 Settembre 2010 Settembre 2011

Internet Explorer 67,16% (56,35%) 58,37% (46,44%) 49,87% (40,26%) 41,66% (34,87%)

Mozilla Firefox 25,77% (33,77%) 31,34% (39,26%) 31,5% (38,97%) 26,79% (33,04%)

Google Chrome 1,03% (1,04%) 3,69% (3,59%) 11,54% (11,32%) 23,61% (22,1%)

Safari 3% (2,45%) 3,28% (3,14%) 4,42% (4,32%) 5,6% (5,56%)

Opera 2,86% (6,20%) 2,62% (6,64%) 2,03% (4,48%) 1,72% (3,78%)

Porzioni di mercato dei principali browser nel mondo secondo NetApplications

[29] [30] Browser Gennaio 2011 Gennaio 2012

Internet Explorer 58,35% 52,93%

Mozilla Firefox 23,72% 20,88%

Google Chrome 11,15% 18,94%

Safari 4,15% 4,90%

Opera 2,33% 1,67% Browser 26

Elenco di navigatori (browser) • 11NET • Amaya • Arachne • • AWeb • Bird • Camino • • Cyberdog • • Dragon • Enigma Browser • ELinks • • Flock • Galeon • Gnu IceCat • Google Chrome • GreenBrowser • IceWeasel • Internet Explorer • K-Meleon • • Kirix Strata • Konqueror • Kiwe (per bambini[31]) • Links (testuale) • • Lynx (testuale) • Maxthon (prima noto come Myie2) • • Minimo • Mosaic • Mozilla • Mozilla Firefox • Netscape • Netsurf • Omniweb • • Opera • RealPlayer • [32] • Safari • SeaMonkey Browser 27

• Slim Browser[33] • SRWare Iron • (testuale) • Web • WebPositive

[34] Evoluzione temporale dei web browser (clic per ingrandire)

Note

[1] (EN) History and Growth of the Internet (http:/ / www. internetworldstats. com/ emarketing. htm). Internet World Stats, 9 maggio 2009. URL consultato il 17 maggio 2009.

[2] Elaine Brennan. World Wibe Web Browser: Ms-Windows (Beta) (1/149) (http:/ / www. digitalhumanities. org/ humanist/ Archives/ Virginia/

v07/ 0048. html). Humanist Archives Vol. 7, Sun, 13 Jun 1993. URL consultato il 27 marzo 2010.

[3] Prof. Dr. Hans Peter Großmann. Department of Information Resource Management (http:/ / www. uni-ulm. de/ uni/ veroeff/ fb/ 93-95/ 126.

html. en). University of Ulm. URL consultato il 22 marzo 2010.

[4] Eolas releases WebRouser via the Internet (http:/ / 1997. webhistory. org/ www. lists/ www-talk. 1995q3/ 0566. html). Eolas Information, 18 settembre 1995. URL consultato il 18 ottobre 2007.

[5] Oracle Introduces PowerBrowser (http:/ / www. ncns. com/ browser. html). Oracle Corporation, 18 giugno 1996. URL consultato il 31 ottobre 2007.

[6] Release history (http:/ / www. w3. org/ Amaya/ User/ New. html). W3C. URL consultato il 2 maggio 2009.

[7] Opera Software Releases 3.60 (http:/ / www. opera. com/ pressreleases/ en/ 1999/ 05/ 19990512. dml). Opera Software, 12 maggio 1998. URL consultato il 19 febbraio 2008.

[8] Opera 4.0 for Windows Released (http:/ / www. opera. com/ press/ releases/ 2000/ 06/ 27/ ). Opera Software, 27 giugno 2000. URL consultato il 10 dicembre 2008.

[9] The Browser War Lights Up in Europe (http:/ / www. opera. com/ press/ releases/ 2000/ 12/ 06_2/ ). 6 dicembre 2000. URL consultato il 10 dicembre 2008. Browser 28

[10] Opera 6.0 for Windows launched after record-breaking beta (http:/ / www. opera. com/ pressreleases/ en/ 2001/ 11/ 20011129. dml). Opera Software, 29 novembre 2001. URL consultato il 19 febbraio 2008.

[11] Opera 7 Ready to Rock the Web (http:/ / www. opera. com/ pressreleases/ en/ 2003/ 01/ 28/ ). Opera Software, 28 gennaio 2003. URL consultato il 19 febbraio 2008.

[12] Speed, Security and Simplicity: Opera 8 Web Browser Released Today (http:/ / www. opera. com/ pressreleases/ en/ 2005/ 04/ 19/ ). Opera Software, 19 aprile 2005. URL consultato il 19 febbraio 2008.

[13] Your Web, Your Choice: Opera 9 Gives You the Control (http:/ / www. opera. com/ press/ releases/ 2006/ 06/ 20/ ). Opera Software, 20 giugno 2006. URL consultato il 10 dicembre 2008.

[14] Opera redefines Web browsing yet again (http:/ / www. opera. com/ pressreleases/ en/ 2008/ 06/ 12/ ). Opera Software, 12 giugno 2008. URL consultato il 12 giugno 2008.

[15] Turbocharge your Web experience with Opera 10 (http:/ / www. opera. com/ press/ releases/ 2009/ 09/ 01/ ). Opera Software, 1 settembre 2009. URL consultato il 2 gennaio 2010.

[16] The world's fastest browser for Windows (http:/ / www. opera. com/ press/ releases/ 2010/ 03/ 02/ ). Opera Software, 2 marzo 2010. URL consultato il 28 marzo 2010.

[17] Safari terzo nella classifica dei browser | Macitynet (http:/ / www. macitynet. it/ macity/ aA24315/ index. shtml)

[18] del W3C: Google e Apple peggio di Internet Explorer 6 coi loro browser mobile (http:/ / www. downloadblog. it/ post/

16381/ daniel-glazman-del-w3c-google-e-apple-peggio-di-internet-explorer-6-coi-loro-browser-mobile)

[19] Microsoft: Chrome non ha mai superato Internet Explorer (http:/ / windows. digital. it/

microsoft-chrome-non-ha-mai-superato-internet-explorer-5950. html)

[20] W3Counter - Global Web Stats, May 2007 (http:/ / www. w3counter. com/ globalstats. ?date=2007-05-31)

[21] W3Counter - Global Web Stats, May 2008 (http:/ / www. w3counter. com/ globalstats. php?date=2008-05-31)

[22] W3Counter - Global Web Stats, May 2009 (http:/ / www. w3counter. com/ globalstats. php?date=2009-05-31)

[23] W3Counter - Global Web Stats, May 2010 (http:/ / www. w3counter. com/ globalstats. php?year=2010& month=5)

[24] W3Counter - Global Web Stats, May 2011 (http:/ / www. w3counter. com/ globalstats. php?year=2011& month=5)

[25] StatCounter - Global Web Stats, Settembre 2008 (http:/ / gs. statcounter. com/ #browser-eu-monthly-200809-200809-bar)

[26] StatCounter - Global Web Stats, Settembre 2009 (http:/ / gs. statcounter. com/ #browser-eu-monthly-200909-200909-bar)

[27] StatCounter - Global Web Stats, Settembre 2010 (http:/ / gs. statcounter. com/ #browser-eu-monthly-201009-201009-bar)

[28] StatCounter - Global Web Stats, Settembre 2011 (http:/ / gs. statcounter. com/ #browser-eu-monthly-201109-201109-bar)

[29] NetApplications - Global Web Stats, Gennaio 2011 (http:/ / netmarketshare. com/ browser-market-share. aspx?qprid=0& qpcustomd=0&

qptimeframe=M& qpsp=144& qpnp=1)

[30] NetApplications - Global Web Stats, Gennaio 2012 (http:/ / netmarketshare. com/ browser-market-share. aspx?qprid=0& qpcustomd=0&

qptimeframe=M& qpsp=156& qpnp=1)

[31] Kiwe (http:/ / www. kiwe. it)

[32] RocketMelt (http:/ / www. rockmelt. com/ )

[33] Slim Browser (http:/ / www. flashpeak. com/ )

[34] http:/ / upload. wikimedia. org/ wikipedia/ commons/ 7/ 74/ Timeline_of_web_browsers. svg

Voci correlate • Connessione • Navigazione off-line • Guerra dei browser • Usabilità del web • Browser 29

Altri progetti

• Wikimedia Commons contiene file multimediali: http:/ / commons. wikimedia. org/ wiki/ Category:Web browsers

Collegamenti esterni

• Elenco di browser su useragents.org (http:/ / www. useragents. org/ database-list. asp?id=5)

• Ballot Screen per scelta browser (http:/ / www. browserchoice. eu/ BrowserChoice/ browserchoice_it. htm)

Internet Explorer

Internet Explorer

Windows Internet Explorer 9 su Windows 7, mentre visualizza la pagina iniziale di Wikipedia Sviluppatore Microsoft Corporation

Ultima versione [1] Windows: 9.0.6 (10 aprile 2012 ) Mac OS Classic: 5.1.7 (11 luglio 2003) Mac OS X: 5.2.3 (16 giugno 2003) [2] UNIX: 5.0 Service Pack 1 (1º novembre 2001 ) [3] : 9 (26 luglio 2011 ) [4] Platform Preview: 10 PP4 (29 febbraio 2012 )

[4] Ultima beta Windows: 10 Consumer Preview (29 febbraio 2012 )

S.O. , Windows 7

Genere Browser Web

Licenza MS-EULA (Licenza chiusa)

[5] Sito web www.microsoft.com

Internet Explorer (IE o MSIE), oggi noto anche con il nome Windows Internet Explorer (WIE), è un browser Web grafico proprietario sviluppato da Microsoft e incluso in Windows a partire dal 1995. Windows Internet Explorer 9 è attualmente l'ultima versione stabile ed è disponibile solo per i sistemi operativi successivi a Windows XP (quindi Windows Vista e Windows 7). Attualmente, Internet Explorer è impegnato in quella che è stata denominata seconda guerra dei browser, nella quale è in competizione soprattutto con Mozilla Firefox, Google Chrome, Apple Safari e Opera: infatti, la sua attuale quota Internet Explorer 30

di mercato (49,58% a ottobre 2011)[6] è in netto calo rispetto ad aprile 2005 (85%) e rispetto al 2004 (oltre il 90%), e nel dicembre del 2010, in Europa, la quota di mercato di Mozilla Firefox, un prodotto multipiattaforma, ha superato per la prima volta quella di Internet Explorer.[7]

Panoramica

Windows Internet Explorer Internet Explorer (rinominato Windows Internet Explorer a partire dalla versione 7) è principalmente sviluppato per la piattaforma Windows. Internet Explorer 1 venne rilasciato il 17 agosto 1995, a pagamento con Microsoft Plus! per : era basato su Spyglass Enhanced Mosaic. Internet Explorer 3, pur essendo ancora basato largamente sul codice acquisito da Spyglass, diede un duro colpo a Netscape Navigator, il browser concorrente nella prima guerra dei browser, sia per quota di mercato sia per funzionalità. Questa versione iniziò tuttavia ad essere oggetto di numerose critiche riguardo ai suoi problemi di sicurezza. Internet Explorer 4 adottò il motore di rendering , sviluppato da Microsoft. Questa versione introdusse una stretta integrazione con Windows, che però non fece che aumentare le critiche. Internet Explorer 6, introdotto nel 2001 con Windows XP, fu il browser più longevo e utilizzato, fino al rilascio nel 2006 di Windows , che risultò profondamente cambiato rispetto alla versione precedente. La rincorsa, sia in termini di velocità sia di conformità agli standard Web, ai browser concorrenti nella seconda guerra dei browser è iniziata nel 2011 con il rilascio di Windows Internet Explorer 9. Ha abbandonato tuttavia il supporto a Windows XP, che è attualmente il sistema operativo più utilizzato.[8]

Internet Explorer Macintosh Edition

Con Internet Explorer Macintosh Edition (denominato "Internet Explorer per Macintosh" fino alla versione 4.0) si intende la serie di Internet Explorer sviluppata per la piattaforma Macintosh. La prima versione di Internet Explorer per Macintosh fu la versione 2.0, rilasciata il 23 aprile 1996. L'ultima fu la versione 5.1.7 Macintosh Edition, rilasciata il 11 luglio 2003. Le prime versioni vennero sviluppate sulla stessa base di codice di Internet Explorer per Windows. La versione 5 includeva il motore di rendering .

Internet Explorer per Macintosh 5.2.2 su Mac OS Per un accordo quinquennale tra Apple e Microsoft stipulato nel 1997, X 10.5.8 dal 1998 al 2003 Internet Explorer fu il browser predefinito in Mac OS e Mac OS X.

Internet Explorer Macintosh Edition disponeva di funzioni particolari che non si trovano spesso nei browser odierni, come la funzione Raccoglitore, la funzione Gestione aste e la barra laterale Contenitore pagine. Internet Explorer 31

Il 13 giugno 2003, Microsoft annunciò di voler cessare lo sviluppo di Internet Explorer Macintosh Edition. Il supporto a Internet Explorer Macintosh Edition terminò definitivamente il 31 dicembre 2005.

Internet Explorer per UNIX

Con Internet Explorer per UNIX si intende la serie di Internet Explorer sviluppata per le piattaforme di tipo UNIX, quali Solaris e HP-UX. Internet Explorer per UNIX offriva alcune funzionalità assenti nella versione per Windows, come i tasti di scelta rapida in stile e le associazioni ai programmi esterni. La prima versione di Internet Explorer per UNIX fu la versione 4.0 per Solaris, pubblicata il 24 febbraio 1998.[9] Lo sviluppo terminò con Internet Explorer 5.0 Service Pack 1 il 1º novembre 2001,[2] e il Internet Explorer 5 per UNIX su Solaris supporto ad Internet Explorer per UNIX cessò completamente nel 2002.

Internet Explorer Mobile

Internet Explorer Mobile è un browser Web mobile per e Windows CE sviluppato da Microsoft, basato sul motore di rendering Trident (anche se le prime versioni, denominate " Internet Explorer",[10] utilizzavano un altro motore di rendering). Pocket Internet Explorer 1 fu messo in commercio il 18 novembre 1996.[11] Internet Explorer Mobile 9, messo in commercio il 27 settembre 2011,[12] è attualmente l'ultima versione di Internet Explorer Internet Explorer Mobile 9 su Windows Phone 7 Mobile.

Windows Internet Explorer Platform Preview

Con Windows Internet Explorer Platform Preview si intende la serie delle versioni di test del motore di rendering Trident in sviluppo per una versione successiva di Internet Explorer, destinate agli sviluppatori Web che intendono vedere in anteprima la successiva tecnologia di piattaforma Web. La prima versione è stata la 9 Platform Preview 1, pubblicata il 16 marzo 2010, e l'ultima è stata la 10 Platform Preview 5, inclusa in Windows Consumer Preview, pubblicato il 29 febbraio 2012. A partire da Windows Internet Explorer 9, la prima occasione in cui è possibile provare una nuova versione di Internet Explorer non è più la pubblicazione delle versioni beta, ma delle "Platform Preview": esse non sono delle versioni complete di Internet Explorer, poiché sono progettate per effettuare il testing dell'ultima versione del motore di rendering Trident, e mettono subito a disposizione di sviluppatori, professionisti IT e appassionati di tecnologia le build di anteprima della nuova versione del browser, in modo da dare la possibilità agli sviluppatori Web di partecipare con il proprio feedback[13] al processo di sviluppo e di miglioramento del browser. Windows Internet Explorer Platform Preview può essere eseguito in parallelo con qualsiasi altro browser installato,[14] e presenta un'interfaccia utente minimalista e priva degli elementi standard di un browser Web, come la barra degli indirizzi o i pulsanti di navigazione. Windows Internet Explorer 9 Platform Preview è stato aggiornato da Microsoft approssimativamente ogni 8 settimane. Windows Internet Explorer 10 Platform Preview viene aggiornato da Microsoft approssimativamente ogni 11 settimane. Internet Explorer 32

Storia

1992-1994: I primi passi si accorse piuttosto tardi delle potenzialità del Web. Prima di aprile 1994, infatti, i dirigenti Microsoft, allora impegnati nel codice del futuro Windows 95, consideravano Internet poco più di una curiosità. Nelle file più basse dell'azienda, però, iniziava a nascere l'interesse verso questa nuova tecnologia. Già nel dicembre del 1992, per esempio, Russell Siegelman avviò il progetto Marvel, il nome in codice del futuro servizio "The Microsoft Network".[15]

James Allard: "Windows: The Next Killer Application on the Internet" Il primo all'interno di Microsoft a proporre una strategia per Internet fu James Allard. Entrato nell'azienda nel 1991, nel 1992 Allard era l'unico programmatore Microsoft operativo nella sezione "Internet Technologies": contribuì alla prima edizione delle specifiche per la Windows Sockets API (Winsock),[16] creò il server www.microsoft.com per sperimentare lo stack TCP/IP all'interno di Microsoft,[17] e nel 1993 lavorò a un progetto non autorizzato per creare il primo server Internet di Microsoft. Frustrato dalla mancanza di considerazione da parte dei dirigenti Microsoft, e alla vista del crescente successo di Mosaic, il 25 gennaio 1994 Allard scrisse un memorandum di 16 pagine intitolato " Windows: The Next Killer Application on the Internet [18]", in cui considerava una priorità l'introduzione delle funzionalità per l'accesso ad Internet in Windows 95, a cui egli assegnò il ruolo di unico esploratore del Web.

David Pollon: "Microsoft and the Internet: Strategic Direction" Il giorno dopo, il 26 gennaio 1994, David Pollon, un giovane product manager, distribuì un memorandum di 11 pagine intitolato " Microsoft and the Internet: Strategic Direction [19]", in cui invitò l'azienda a integrare nel sistema operativo un'interfaccia per il Web semplice da utilizzare.[20]

Steven Sinofsky: "Cornell is WIRED!" Il memorandum di Allard convinse un gruppo di giovani, pressoché ventenni. Tra questi vi era Steven Sinofsky, l'allora assistente tecnico di Bill Gates: nel febbraio 1994, bloccato all'aeroporto di Ithaca per un ritardo del suo volo, egli decise di far visita al campus della Cornell University, scoprendo che gli studenti inviavano messaggi di posta elettronica e controllavano online gli orari dei corsi. Entusiasta della scoperta, Sinofsky inviò immediatamente un messaggio di posta elettronica (dal titolo "Cornell is WIRED!", letteralmente "Cornell è COLLEGATA!") a Bill Gates e allo staff tecnico Microsoft. Ben , Allard e Sinofsky fecero amicizia ed iniziarono a collaborare insieme. Sinofsky riuscì ad installare nel suo ufficio una connessione alla rete e, eccitato, spiegò ad alcuni impiegati Microsoft, tra cui lo stesso Bill Gates, le potenzialità di questa nuova tecnologia.

Il ritiro a Kirkland: la svolta strategica Il 6 aprile 1994, un piccolo gruppo di dipendenti Microsoft, che comprendeva dirigenti, giovani impiegati e anche lo stesso Bill Gates, si recò a Kirkland per partecipare a un ritiro di riflessione, organizzato da Sinofsky e Allard in un residence privato convertito in centro conferenze. Il tema centrale della discussione fu introdotto dalla consegna di un fascicolo di 30 pagine, in cui Sinofsky evidenziava l'importanza di investire nel campo di Internet. La maggior parte della discussione si concentrò su possibili progetti di investimento futuri della società nel mercato di Internet. Anche se non si stabilirono importanti piani concreti per il futuro, diversi partecipanti alla conferenza iniziarono a sostenere l'idea che le successive versioni di Windows, poi denominate Windows 95 e Windows NT 3.5, avrebbero dovuto disporre dell'accesso integrato a Internet tramite il supporto al protocollo TCP/IP.[15] Non è chiaro invece se l'idea di sviluppare un vero e proprio browser Web fu avanzata già in quella occasione, come dichiarò Bill Internet Explorer 33

Gates,[21][22][20][23] o solo quando Benjamin W. Slivka assunse nell'ottobre 1994 la guida del team del progetto O'Hare,[24] come testimoniò Philip Barrett.[25][26] Questo evento diede definitivamente all'azienda la spinta decisiva verso una nuova strategia. L'appoggio di Bill Gates al progetto venne riconfermato il giorno successivo, quando egli riferì personalmente a un gruppo di dirigenti aziendali di voler includere l'accesso ad Internet nella successiva generazione di Windows, e venne infine reso definitivo dal suo memorandum di 16 pagine intitolato "Internet Strategy and Technical Goals", nel quale auspicava una posizione di leadership nel mercato del software per Internet.

1994-1997: Le origini

Il progetto di sviluppo di Internet Explorer 1, dal nome in codice "O'Hare",[27] fu intrapreso nell'agosto del 1994[15] da un team composto da cinque o sei persone,[28] guidato inizialmente da [29][30] e, a partire da ottobre 1994, da Benjamin W. Slivka,[24] con Hadi Partovi come program manager del gruppo.[31]

Internet Explorer 1

Internet Explorer 1 fu rilasciato da Microsoft il 17 agosto 1995.[32] Derivava da Spyglass Enhanced Mosaic,[33] un browser Web concettualmente modellato sul browser NCSA Mosaic che Microsoft aveva ottenuto in licenza da Spyglass Inc.[34][35] La versione 1.0 era disponibile in Microsoft Plus! per Windows 95[33] e di solito anche nelle versioni OEM di Windows 95.[36] La sua quota di mercato era molto più bassa rispetto a quella di Netscape Navigator.[28][37][38]

La versione 1.5 beta fu rilasciata diversi mesi dopo per Windows 3.1 e Internet Explorer 1.0 Windows NT, con il supporto al rendering di base per le tabelle, uno dei primi standard Web.[39]

Internet Explorer 2

Internet Explorer 2 fu rilasciato da Microsoft il 27 novembre 1995[40] per Windows 95, il 23 aprile 1996[9] per Apple Macintosh, e il 30 aprile 1996[41] per Windows 3.1 e Windows NT. Era incluso in Windows 95 OSR1 e NT 4.0, e veniva anche venduto nell'Internet Starter Kit.[41] Mancavano ancora molte funzionalità che sarebbero divenute comuni nelle versioni successive di Internet Explorer, tra cui la "e" blu nel logo, l'integrazione in Esplora risorse, e i programmi integrati. La sua quota di mercato era molto più bassa rispetto a quella di Netscape Internet Explorer 2.0 Navigator.[37][38] Internet Explorer 34

Internet Explorer 3

Internet Explorer 3 fu rilasciato da Microsoft il 13 agosto 1996[42] per Windows e l'8 gennaio 1997[43] per Apple Macintosh. Venne incluso in Windows 95 OSR2 e in Apple Mac OS 8.1. Fu il primo browser commerciale a supportare i CSS.[36][44][45] Fu introdotto anche il supporto ai controlli ActiveX, alle applet Java e ai contenuti multimediali in linea. Nella versione 3 vennero integrati Internet Mail e News, NetMeeting e una prima versione di Rubrica di Windows.[36][43][46][47][48]

Il team di Internet Explorer consisteva di circa 100 persone durante il Internet Explorer 3.0 suo sviluppo di tre mesi.[28] Fu la prima versione sviluppata senza il codice sorgente di Spyglass Mosaic, ma ne utilizzava ancora la tecnologia, così nella documentazione del programma rimasero le informazioni relative alla concessione in licenza da parte di Spyglass. Entrò in seria concorrenza con Netscape Navigator, seppure rimanendo ancora distante dal superarne la quota di mercato. Nei mesi successivi al suo rilascio, ricercatori e hacker iniziarono a scoprire vulnerabilità di sicurezza e di privacy.[49][50]

1997-2001: La guerra dei browser e l'integrazione con Windows

Internet Explorer 4

Internet Explorer 4 fu rilasciato da Microsoft il 1º ottobre 1997[51] per Windows, il 6 gennaio 1998[9] per Apple Mac OS, e il 24 febbraio 1998[9] per Solaris e HP-UX. La versione 4.0 venne inclusa in Windows 95 OSR 2.5, e la 4.01 in . Introdotto sul mercato con lo slogan "Il Web come lo vuoi tu",[48] Internet Explorer 4 introdusse il motore di rendering Trident e il supporto alla navigazione non in linea.[52] Internet Mail e News venne sostituito con , e vennero inoltre inclusi Microsoft Internet Explorer 4.0 Chat[53] e una versione migliorata di NetMeeting.

Era uno dei principali partecipanti alla prima guerra dei browser. Superò di poco il 60% della quota di mercato entro marzo 1999 al rilascio di Internet Explorer 5.[54] Nell'agosto 2001, al rilascio di Internet Explorer 6, le versioni di Internet Explorer 4.x erano scese al 7% di quota di mercato e Internet Explorer 5 era salito al 80%.[55] La quota di mercato di Internet Explorer 4 scese sotto l'1% nel 2004.[56] I suoi metodi di distribuzione e l'integrazione con Windows vennero coinvolti nel processo of America vs. Microsoft. Internet Explorer 35

Internet Explorer 5

Internet Explorer 5 è un browser Web grafico pubblicato da Microsoft il 18 marzo 1999[57] per Windows, Solaris e HP-UX, il 27 marzo 2000[58] per Apple Mac OS Classic, e il 25 settembre 2001[59] per Apple Mac OS X. La versione 5.0 (con il motore di rendering Trident II) venne inclusa in Windows 98 SE, la versione 5.01 in , e la versione 5.5 (Trident III) in Windows Me. La versione 5.1.2 per Macintosh (con il motore di rendering Tasman) venne inclusa in Mac OS X 10.1.

Il rilascio di questa versione provocò un consistente aumento della Internet Explorer 5.5 quota di mercato del browser Microsoft su Netscape Navigator tra il 1999 e il 2001. È inoltre compatibile con la più grande gamma di sistemi operativi rispetto a tutte le versioni di IE. Tuttavia, il supporto per molti sistemi si ridusse rapidamente con le patch, e tutte le versioni successive di Windows non lo supportano. Internet Explorer 5 ha raggiunto oltre il 50% della quota di mercato entro i primi mesi del 2000, assumendo un netto vantaggio rispetto ad altre versioni dei browser (compresi Internet Explorer 4 e Netscape). Le versioni 5.x avevano raggiunto oltre l'80% di quota di mercato alla data del rilascio di Internet Explorer 6 nell'agosto 2001. Le versioni 5.0x e 5.5 sono state superate da Internet Explorer 6, scendendo al secondo posto tra i browser più popolari, con un calo della quota di mercato al 34% entro la metà del 2003. Inoltre, entro l'inizio del 2005 Firefox 1 ha superato la sua quota di mercato. La quota di mercato della versione 5.x è scesa al di sotto dell'1% alla fine del 2006.

Microsoft spese oltre 100 milioni di dollari alla fine del 1990, con oltre un migliaio di persone che lavoravano su IE durante lo sviluppo di Internet Explorer 5. È stato sostituito da Internet Explorer 6 nel mese di agosto 2001, anche se Internet Explorer 5 resta l'ultima versione per Windows 3.1x, Windows NT 3.x e Windows 95.

2001-2006: La longevità e i problemi di sicurezza

La versione con la quale Internet Explorer ha raggiunto una quota di mercato che nel 2004 superava abbondantemente il 90% è la 6.0. Microsoft aveva annunciato che questa sarebbe stata l'ultima versione distribuita separatamente da Windows, e che le versioni successive sarebbero state legate alle nuove versioni del sistema operativo. Tuttavia le innovazioni in Internet Explorer si erano quasi fermate dalla versione 4.0, e sul mercato erano ormai disponibili prodotti concorrenti di qualità superiore. Il rilascio della versione 1.0 di Mozilla Firefox, un browser open source molto semplice e leggero, ma dotato Internet Explorer 6 di nuove funzionalità, ha portato nel giro di sei mesi la quota di Internet Explorer all'85%.

La risposta di Microsoft è stato un aggiornamento della versione 6.0 in occasione del rilascio del SP2 di Windows XP che migliora alcuni aspetti della sicurezza (leggi, tra le varie cose, il flag HttpOnly per i cookie, utile a mitigare attacchi XSS) ed integra un meccanismo di blocco dei popup. Data l'ormai obsoleta capacità di protezione durante la navigazione, Microsoft ha deciso di sensibilizzare gli utenti che utilizzano ancora questa versione di passare a quelle più recenti, evolute e sicure di Internet Explorer 7 o Internet Explorer 8. Sotto questo aspetto il general manager di Youtube, E. Digg, ha comunicato la volontà di non voler più supportare questa versione, incentivando l'uso di browser più efficienti e moderni.[60] Internet Explorer 36

2006-oggi: La nuova concorrenza

Windows Internet Explorer 7

La versione 7.0 di Internet Explorer (ribattezzato per l'occasione "Windows Internet Explorer", in quanto le versioni precedenti erano disponibili anche su altri sistemi operativi, come Mac OS X) è stata pubblicata, in lingua italiana, il 14 novembre 2006 per Windows XP SP2. Windows Internet Explorer 7 è già presente in Windows Vista; la versione per Windows Vista è detta IE7+ per distinguerla da quella per Windows XP. Per Windows XP SP2 e SP3 e per , si può scaricare dal sito di Microsoft.[61]

Fino al 25 ottobre 2007, Windows Internet Explorer 7.0 era disponibile Windows Internet Explorer 7 solo per le licenze originali di Windows. Come altri aggiornamenti Microsoft, infatti, Windows Internet Explorer 7.0 era protetto dal sistema Windows Genuine Advantage, anche se è confermata la presenza di una procedura di installazione per sistemi Unix tramite l'uso dei tool Wine e ies4linux che scavalcava questo sistema di protezione. A partire da quella data, però, è possibile scaricarlo senza controlli. Le principali novità della nuova versione: • Il browser non è più integrato nella shell del sistema operativo, ma è un'applicazione a sé stante, per una maggiore sicurezza. IE7 non è più in grado di fare da file browser e viceversa Esplora Risorse non è in grado di fare da web browser: se in IE7 si digita il percorso di un file locale del proprio hard disk, esso non sarà più aperto da IE7 ma verrà aperto da Esplora Risorse e viceversa un sito web digitato in esplora risorse verrà aperto utilizzando IE7 (o il browser predefinito del sistema). • Navigazione a schede (tabbed browsing), funzionalità presente da tempo su altri browser e che era stata fino a poco tempo prima considerata inutile dalla stessa Microsoft (che però aveva reso disponibile su IE6 tramite plug-in MSN). I si possono anche riordinare mediante trascinamento. Si può decidere di ripristinare all'apertura del browser, i tab lasciati aperti. Inoltre si possono impostare quante schede aprire con i relativi indirizzi quando si avvia Internet Explorer. • Maggiore sicurezza grazie a: nuovo motore di gestione degli URL che assicura un parsing più sicuro e affidabile, filtro Anti- integrato ed esecuzione del browser in modalità protetta (quest'ultima feature è presente solo in Windows Vista). • Sono stati corretti i bug noti relativi agli standard Web e migliorato il supporto di HTML 4.01, DOM level 2 e CSS 2.1 (:hover sui vari elementi, !important, ecc.). • Supporto al canale alfa delle immagini PNG, che ne consente la trasparenza nelle pagine web con una tecnica più sofisticata rispetto a quella utilizzata dalle immagini GIF. • Internationalized Domain Names (IDN) per gli URL con caratteri internazionali multilingua. C'è anche un controllo avanzato dei caratteri Anti-Spoofing che serve a mitigare gli attacchi omografi che sfruttano cioè la somiglianza grafica di caratteri appartenenti ad alfabeti diversi per trarre in inganno l'utente (quando un URL con caratteri mischiati è individuato, viene mostrato il corrispondente Punycode URL). • Quick Tabs (anteprima dei tab) permettono di vedere e gestire le pagine aperte nei tab, con una vista a miniatura (thumbnails) in un'unica finestra. • Tab Groups permette di raggruppare le schede e salvarle in categorie in modo da poter aprire in un colpo solo più pagine contemporaneamente. • Page Zoom (o ingrandimento della pagina) che permette agli utenti di zoommare il testo e la grafica delle pagine web mantenendo un'elevata qualità di visualizzazione. Internet Explorer 37

• ActiveX opzionali per dare agli utenti più sicurezza la maggior parte dei controlli ActiveX (anche quelli che sono già installati sulla macchina) saranno disabilitati di default nell'area Internet. Gli utenti potranno comunque riabilitarli su necessità. Solo gli ActiveX firmati digitalmente possono essere installati ed eseguiti. • Modalità protetta (presente solo in Windows Vista) blocca l'accesso in scrittura al di fuori della cartella dei file temporanei e fa operare IE7 in una specie di sandbox. In questo modo un eventuale non potrà installarsi e nemmeno una falla di sicurezza nel browser potrà intaccare il sistema scrivendo o modificando file al di fuori della cartella dei file temporanei. Solo le operazioni che richiedono interazioni con l'utente, come il salvataggio di un file tramite la finestra di dialogo, potranno essere autorizzate a scrivere al di fuori della cartella dei file temporanei. • SSLv3 e TSLv1 sono i protocolli sicuri adottati di default da IE7 per stabilire connessioni protette. • Miglioramenti nella gestione della cache e nella decompressione dei contenuti che consentono una maggiore velocità nel caricamento delle pagine web. La nuova cache ha anche delle euristiche migliori per essere più robusta contro le corruzioni dell'indice. • Supporto degli RSS feeds con lettore integrato. Per ciascun feed è possibile specificare quando deve essere aggiornato automaticamente (minuti, ore, giorni e settimane). Viene supportata anche la funzione di autodiscovery degli RSS nelle pagine web. • Nelle opzioni è presente un nuovo pulsante che permette di cancellare con un unico comando i file temporanei internet, i cookies, la cronologia, il completamento automatico e le password. • La nuova barra degli indirizzi ha nuove icone che indicano il tipo di connessione protetta SSL e ci sono colori di sfondo diversi a seconda del tipo di protezione SSL e dell'affidabilità decisa dal filtro antiphishing. • Unico pulsante Refresh/Go: quando l'URL cambia il pulsante si trasforma da Refresh a Go e quando si preme Go (o Invio) si trasforma da Go a Refresh. Lo spazio occupato dalle barre degli strumenti in IE7 è ottimizzato, lasciando quindi più spazio per le pagine web. I pulsanti Avanti/Indietro hanno accanto una piccola freccia verso il basso che apre un menu a discesa per accedere velocemente alle pagine visitate precedentemente. • Sono state migliorate le possibilità per gli sviluppatori di software di estendere le funzionalità del browser con estensioni usando anche linguaggi come , C++, Borland , C# o un qualsiasi linguaggio .NET Framework. • Protezione barra indirizzi e barra di stato evita che un sito web la possa nascondere celando la propria identità. Inoltre le finestre di dialogo modali (che richiedono interazione con l'utente) vengono mostrate in primo piano solo quando è selezionato il tab che ha effettivamente generato quella finestra di dialogo (il tab nel frattempo viene colorato di arancione, per attirare l'attenzione dell'utente). • IE7 si avvale della tecnologia Cleartype per una migliore leggibilità delle pagine HTML. È quindi possibile abilitare il ClearType su IE7, indipendentemente dalle impostazioni del sistema operativo. • Migliorata la funzione di stampa e anteprima delle pagine. • Possibilità di amministrare tutte le impostazioni del browser attraverso i Criteri di Gruppo () di Windows • Fix My Settings controlla ad ogni avvio e ad ogni modifica delle impostazioni del browser, che sia sempre garantito un livello di sicurezza accettabile e avverte in caso di problemi. È possibile anche far correggere automaticamente le impostazioni. • Sono stati rimossi alcune caratteristiche obsolete: il protocollo , Telnet, Channel Definition Format (CDF) o canali, gli Scriptlets, DirectAnimation, XBM, DHTML Editing Control, ecc. • No Add-ons consente di caricare IE7 senza le estensioni installate. • Selezione del testo intelligente. • livello di cifratura in IE7 di Windows Vista: 256-bit. • Cross-Domain Barriers evita che gli script presenti su una pagina web possano interagire con il contenuto presente su altri siti o finestre. Internet Explorer 38

• Parental Controls (presente solo in Windows Vista) permette all'amministratore di controllare quali siti si possono visitare (utile per le famiglie). • Lettore di documenti XPS integrato (richiede il Microsoft .NET Framework 3.0).

Windows Internet Explorer 8

Il 5 gennaio 2009, è resa disponibile la versione Beta 1. Il 30 gennaio 2009, è resa disponibile la versione Release Candidate 1. Il 19 marzo 2009, è resa disponibile la versione finale. È disponibile come aggiornamento gratuito per Windows XP con Service Pack 2 o successivo, Windows Server 2003 con Service Pack 1 o successivo, Windows Vista e , ed è incluso in Windows 7 e in Windows Server 2008 R2. Come Mozilla Firefox, presenta 2 modalità di visualizzazione: quirks

Windows Internet Explorer 8 mode (detta "Emula IE 7") e standard mode. La prima permette di visualizzare le pagine web scritte non seguendo gli standard HTML e ottimizzate per le versioni precedenti (dalla 5 alla 7), la seconda è la modalità nativa di IE8 e più aderente agli standard (anche se attualmente presenta ancora notevoli problemi). Una delle tecnologie introdotte sono le "WebSlices". In questo modo il browser è in grado di ricaricare (anche automaticamente) solamente una porzione della pagina web visualizzata. Nella nuova versione sono stati riordinati i menù e introdotte funzioni di sviluppo tra cui un visualizzatore html interno, in grado di visualizzare il codice sorgente delle pagine con l'evidenziazione della sintassi. Un'altra nuova caratteristica introdotta in Internet Explorer 8 sono le tab (schede) colorate con colori diversi a seconda dell'origine. La 8 è la prima versione di Internet Explorer in grado di superare il test , ma ottiene un punteggio basso (20/100) nel test .

Windows Internet Explorer 9

Windows Internet Explorer 9 è la nona versione del browser sviluppato da Microsoft per sistemi operativi Windows, da Windows Vista in avanti. È stato annunciato alla Professional Developer Conference 2009 (dal 17 al 19 novembre 2009) e ne è stata rilasciata una prima versione pubblica, denominata Platform Preview, il 16 marzo 2010 in occasione di MIX 2010, la conferenza annuale Microsoft dedicata al mondo del web, dello sviluppo per Windows Phone e all'Interaction Design. All'inizio del ciclo di sviluppo Microsoft ha affermato che le aree di Windows Internet Explorer 9 focalizzazione di questa release di Internet Explorer avrebbero riguardato il miglioramento delle performance del browser, un supporto stabile per i moderni standard come HTML 5 e CSS3, strumenti evoluti per garantire la privacy e la sicurezza degli utenti durante la navigazione, la semplificazione dell'interfaccia del browser e delle modalità di interazione con l'utente. A partire da MIX 10 Microsoft sono state rese disponibili per il download una serie di Platform Preview destinate al testing e alla validazione da parte della community degli sviluppatori web e degli esperti del settore. Parallelamente è iniziata una forte collaborazione con il W3C per: favorire la creazione di una piattaforma di test comune che consenta a produttori di browser web ed utenti di validare il funzionamento dei propri browser in base agli standard Internet Explorer 39

da tutti accettati; per collaborare insieme agli altri team di lavoro e agli altri esperti di mercato nella definizione e nella stabilizzazione degli standard web. Per quanto riguarda le versioni dedicate non solo agli sviluppatori ma a tutti gli utenti, il 15 settembre 2010 Microsoft ha reso disponibile la Beta di Internet Explorer 9 per il download pubblico. Il percorso verso il rilascio finale del prodotto è proseguito poi il 10 febbraio 2011 con il rilascio della Relase Candidate. Complessivamente la Beta e la Release Candidate di Internet Explorer 9 da sole sono state scaricate oltre 33 milioni di volte. La versione finale di Internet Explorer 9 è stata rilasciata il 14 marzo 2011 con un annuncio fatto dal team di prodotto che ha sottolineanto l'importanza dei feedback ricevuti durante lo sviluppo del browser appena rilasciato.

Windows Internet Explorer 10 Windows Internet Explorer 10 è la prossima versione di Internet Explorer attualmente in fase di sviluppo da Microsoft, che sostituirà Windows Internet Explorer 9. È stato annunciato per la prima volta il 12 aprile 2011 alla conferenza MIX 11 di Las Vegas,[62] dopo sole quattro settimane dalla pubblicazione di Windows Internet Explorer 9. L'ultima versione è Windows Internet Explorer 10 Consumer Preview, pubblicato il 29 febbraio 2012 insieme a Consumer Preview.[4] Windows Internet Explorer 10 introdurrà una nuova interfaccia grafica in stile Metro, appositamente progettata per l'utilizzo sui touch screen dei tablet. La nuova interfaccia è disponibile come applicazione Metro nella nuova schermata Start di tipo "immersive" di Windows 8, e si affianca a quella tradizionale desktop.[63] L'obiettivo del team di sviluppo di Windows Internet Explorer 10 è raggiungere la piena conformità agli standard HTML5, mediante il supporto completo ai CSS 3 e all'accelerazione hardware per la grafica,[62] ridurre il più possibile il ricorso ai plug-in esterni al browser, e distribuire il lavoro grafico alla GPU e la compilazione in background di JavaScript sui vari core del processore.[64] Windows Internet Explorer 10 abbandonerà il supporto a Windows Vista[65][66] e a Windows Server 2008,[67] così come la precedente versione di Internet Explorer ha abbandonato il supporto per Windows XP.[68]

Critiche e problemi

Integrazione in Windows, cause legali ed antitrust Fino alla versione 3.0 Internet Explorer era un programma applicativo installabile su piattaforma Windows, dove funzionava in maniera autonoma. Dalla versione 4.0 divenne invece installabile in Windows 95 e in Windows NT 4 in modo che si integrasse con la shell Esplora Risorse, rendendo di fatto Internet Explorer ed Esplora Risorse un unico software, sia a livello funzionale che a livello di codice eseguibile. I.E. 4 venne poi preinstallata in Windows 98 con l'integrazione della shell attivata di default e non disattivabile. Questa fu una delle cause che lo portarono a divenire in breve tempo il browser più diffuso: l'utente medio non aveva più la necessità di installare un browser di terze parti, in quanto Internet Explorer era già preinstallato. L'integrazione in ha sollevato numerose critiche ed ha di fatto tagliato fuori le alternative commerciali. Ne sono scaturite diverse cause legali, in seguito alle quali le autorità antitrust hanno imposto a Microsoft di permettere all'utente la disabilitazione di Internet Explorer. Pertanto a partire da Windows 2000 (con Service Pack 4) e Windows XP (con Service Pack 1), Internet Explorer può essere disabilitato selezionando le apposite opzioni nella finestra Impostazioni accesso ai programmi. Da notare l'uso del termine disabilitato: esso infatti non può, a detta di Microsoft, essere disinstallato dal sistema, in quanto ormai inscindibile dal sistema operativo. In realtà è stato dimostrato che sarebbe possibile rimuoverlo Internet Explorer 40

completamente, tuttavia molte applicazioni (anche di terze parti) che si appoggiano al suo motore di rendering (MSHTML) Trident non potrebbero più funzionare. Perciò viene solo inibita parzialmente la possibilità di accedere al programma, ma i suoi componenti restano installati. Parzialmente perché, andando su Start-Esegui ed inserendo iexplore, il programma viene normalmente eseguito. Chi volesse rimuovere completamente Internet Explorer e le librerie MSHTML può utilizzare software di terze parti (come IERadicator [69] e 98lite per , o xplite per Windows XP); in questo modo però alcune parti del sistema non saranno più utilizzabili (tra cui la guida in linea HTML, alcune parti del Pannello di controllo di Windows XP e alcune applicazioni non Microsoft). Nel gennaio del 2009 l'Unione Europea ha aperto una nuova causa antitrust contro il programma.[70] Per evitare altre cause, nell'estate dello stesso anno Microsoft propone alla UE l'idea di vendere una versione del futuro OS Windows 7 senza browser, il 31 luglio invece viene annunciato dalla stessa Microsoft che la versione destinata all'Europa di Windows 7 non sarà differente da quella venduta nel resto del mondo e in più verrà data la possibilità agli utenti se tenere Internet Explorer o scaricare un browser concorrente.[71]

Conformità agli standard Uno dei problemi più noti ai progettisti di siti Internet è la scarsa conformità di Internet Explorer agli standard web definiti dal World Wide Web Consortium (W3C). Questo rende molto difficoltoso agli sviluppatori web la creazione di siti che funzionino correttamente su tutti i browser. Per quanto riguarda gli standard ecco cosa ha detto in merito Paul Thurrott:[72]

(EN) (IT) « On August 7, 2006, Jeff Reifman blogged about a « Il 7 agosto 2006, Jeff Reifman scrisse sul suo blog circa una supposed statistical analysis of Internet Explorer (IE) 6, IE presunta analisi statistica su Internet Explorer (IE) 6, IE 7, 7, Firefox, and Opera in which each browser was scored Firefox e Opera in cui ogni browser era valutato per la sua for its standards compliance. According to this data set, conformità agli standard. Secondo questi dati, Firefox 1.5 è Firefox 1.5 complies with 93 percent of the Cascading conforme al 93 percento delle specifiche del Cascading Style Style Sheet (CSS) 2.1 specification, compared to 93 Sheet (CSS) 2.1, contro il 93 percento di Opera 8.5, il 96 percent for Opera 8.5, 96 percent for Opera 9, a woeful 52 percento di Opera 9, un penoso 52 percento di IE 6, e un percent for IE 6, and an equally problematic 54 percent for ugualmente problematico 54 percento di IE 7. Il punto è chiaro, IE 7. The issue here was clear, assuming the data was assumendo che i dati siano esatti: nonostante il suo pluriennale correct: Despite its multi-year development, IE 7 would sviluppo, IE 7 presenterebbe solo un vantaggio irrilevante offer only a negligible advantage over IE 6 in a key Web rispetto a IE 6 nell'ambito di una tecnologia web technology. » fondamentale. »

La versione 7 di Internet Explorer non è in grado di superare né il test Acid2 né l'Acid3, mettendo in evidenza la poca aderenza di IE agli standard web e più in generale ai nuovi linguaggi di sviluppo web come CSS3 e DOM 2. Il motore trident 5 di Internet Explorer 8, anche se presenta ancora problemi di compatibilità con diversi standard web, è in grado di renderizzare il test Acid2 ma, per il momento, non il test Acid3. Notevoli passi avanti sono stati fatti con Windows Internet Explorer 9.

Sicurezza Le principali critiche rivolte ad Internet Explorer riguardano la sicurezza. Sono state accertate e segnalate un gran numero di falle che consentivano a un sito malevolo di eseguire codice arbitrario sulla macchina dell'utente. Spesso questi problemi sono legati all'uso della tecnologia ActiveX, che permette ad un sito di caricare sul computer dell'utente un software eseguibile. Sebbene l'installazione di un ActiveX richieda l'esplicita autorizzazione dell'utente, alcune falle di sicurezza ne permettevano l'installazione automatica. Per questi motivi, gli hacker spesso si riferiscono a IE con il nomignolo Internet Exploder. Esistono in rete numerosi siti dedicati a dimostrare i bug di Explorer e ad assistere gli utenti che vogliano prendere contromisure adeguate o, nel caso limite, cambiare browser. In effetti, il senso di insicurezza diffusosi nel pubblico rispetto a Explorer (e di Internet Explorer 41

riflesso ai prodotti Microsoft in generale) è stato certamente uno dei motivi che hanno portato, negli ultimi anni, all'affermarsi di browser "alternativi" come Mozilla Suite, Firefox o Opera. Nel gennaio 2010 l'Autorità federale per la sicurezza nella tecnologia dell'informazione della Germania ha sconsigliato l'uso di Internet Explorer nelle versioni 6, 7 e 8 sui sistemi operativi Windows XP, Windows Vista e Windows 7 per motivi di sicurezza informatica[73][74]. Rimane però importante ricordare che, su questo versante, vi sono due importanti argomentazioni a favore di Internet Explorer: la prima è che rimane sempre il browser più usato in rete, e di conseguenza il più bersagliato dagli attacchi informatici, visto che la scoperta di un bug in questo browser permette di colpire una fetta maggiore di utenza; la seconda è che, poiché si tratta del browser predefinito di Microsoft Windows, spesso è utilizzato dagli utenti meno esperti (e quindi più vulnerabili) che non si prodigano certo ad informarsi e cambiare browser nel proprio computer.

Privacy Il filtro anti-phishing di Internet Explorer 7, se attivato con l'opzione "real time Phishing notification", invia tutti gli URL ai server centrali di Microsoft per la verifica degli stessi. Questo può essere considerato come una minaccia per la privacy degli utenti, specialmente quando gli URL contengono informazioni riservate come nomi utente e password, anche se c'è da ricordare che le policy Microsoft assicurano il totale rispetto della privacy.

Caratteristiche proprietarie Microsoft ha aggiunto a Internet Explorer il supporto per alcune caratteristiche proprietarie, dando la possibilità a chi sviluppa un sito web di rendere disponibili contenuti aggiuntivi rispetto a quanto previsto dagli standard W3C. Tra le aggiunte sono presenti sia alcuni tag HTML, sia alcune funzioni JavaScript. Caratteristiche peculiari sono poi Visual Basic Script e i controlli ActiveX. Come conseguenza, la maggior parte dei siti sviluppati con queste tecnologie aggiuntive non possono essere visionati correttamente dagli utenti che utilizzano browser diversi o piattaforme diverse dal sistema operativo Windows; l'uso di queste caratteristiche proprietarie, ha portato molti sviluppatori di siti web a costruire due versioni del sito: una specifica per Internet Explorer e l'altra per conservare la compatibilità con gli standard. È stata introdotta anche una blacklist dei siti internet che consente l'accesso alle pagine una sola volta e poi si rifiuta di visualizzarle.

Altri problemi legali

Spyglass Inc. Il 16 dicembre 1994,[15] Microsoft ottenne da Spyglass per 2 milioni di dollari[75] la licenza per Spyglass Enhanced Mosaic,[34][35] da cui sarebbe derivato Internet Explorer 1, con un contratto che prevedeva il pagamento a Spyglass di una tassa di base trimestrale a cui si sarebbe aggiunta di volta in volta una quota derivante dai ricavi di vendita del browser. L'accordo stabilito originariamente con Spyglass prevedeva però la compatibilità di Internet Explorer unicamente per Windows 95. Microsoft decise quindi di rinegoziare l'accordo, per estendere la compatibilità ad altri sistemi operativi, tra cui Apple Macintosh e Windows 3.1, facendo salire il totale che Microsoft pagò a Spyglass a 13,1 milioni di dollari.[75] Il 7 dicembre 1995, Microsoft dichiarò che avrebbe incluso Internet Explorer 2 nel successivo Windows 95 OSR1,[15][75] oltre a venderlo con Microsoft Plus!.[41] Così, Microsoft si limitò a pagare solo la tassa trimestrale minima a Spyglass, che le intentò causa. Il 22 gennaio 1997, Microsoft concordò con Spyglass un risarcimento di 8 milioni di dollari.[76][77] Internet Explorer 42

SyNet Inc. Nell'ottobre 1995[78] Synet Inc., una piccola società, intentò causa a Microsoft per aver utilizzato illegalmente il marchio "Internet Explorer", di cui essa aveva richiesto la registrazione allo Stato dell'Illinois e agli Stati Uniti d'America[79] un mese prima della pubblicazione di Microsoft Internet Explorer[80] per un prodotto che aveva introdotto sul mercato alla fine del 1994[81] e che includeva Netscape Navigator.[82] Dopo un primo rifiuto, nel 1995, da parte di un giudice federale[83] di un risarcimento da 75.000 $, il 1º luglio 1998 Microsoft concordò con SyNet un risarcimento di 5,4 milioni di dollari,[84] ottenendo i diritti sul marchio registrato.[81]

Note

[1] Tyson Storey. (EN) IE 9.0.6 Available via (http:/ / . msdn. com/ b/ ie/ archive/ 2012/ 02/ 10/

ie-9-0-6-available-via-windows-update. aspx). IEBlog, 10 aprile 2012. URL consultato il 11 aprile 2012.

[2] Brion Stone. (EN) Unix Internet Explorer IE5.0 Service Pack 1 for Solaris and HP-UX is released! (http:/ / groups. google. com/ group/

microsoft. public. inetexplorer. unix/ browse_thread/ thread/ 4630527ebe106a0d/ 76699907ef895afd). Newsgroup "microsoft.public.inetexplorer.unix", 1º novembre 2001. URL consultato il 27 maggio 2011.

[3] Terry Myerson. (EN) Windows Phone “Mango” – Released to Manufacturing (http:/ / windowsteamblog. com/ windows_phone/ b/

windowsphone/ archive/ 2011/ 07/ 26/ windows-phone-mango-released-to-manufacturing. aspx). Windows Phone Blog, 26 luglio 2011. URL consultato il 7 agosto 2011.

[4] . (EN) Windows Consumer Preview: The Fifth IE10 Platform Preview (http:/ / blogs. msdn. com/ b/ ie/ archive/ 2012/ 02/

29/ windows-consumer-preview-the-fifth-ie10-platform-preview. aspx). IEBlog, 29 febbraio 2012. URL consultato il 29 febbraio 2012. (

archiviato (http:/ / www. webcitation. org/ 65oj4CWsn) il 29 febbraio 2012)

[5] http:/ / www. microsoft. com/ italy/ windows/ internet-explorer/

[6] (EN) Browser Market Share (http:/ / www. netmarketshare. com/ browser-market-share. aspx?spider=1& qprid=1). NetMarketShare. URL consultato il 2 ottobre 2011.

[7] Nel 2010 Firefox supera Internet Explorer nel mercato europeo (http:/ / www. spazioimpresa. biz/ web/

Nel-2010-Firefox-supera-Internet-Explorer-nel-mercato-europeo-835. php). Spazio Impresa. URL consultato il 22 febbraio 2011.

[8] (EN) Market Share (http:/ / marketshare. hitslink. com/ operating-system-market-share. aspx?qprid=10). NetMarketShare. URL consultato il 4 giugno 2011.

[9] Kenneth R. Saborio. (EN) WWW Facts - Browsers (http:/ / www. intercom. co. cr/ www/ index. htm). Internet Communications Costa Rica. URL consultato il 8 maggio 2011.

[10] Randy Ramig. Welcome to the IE Mobile Blog! (http:/ / web. archive. org/ web/ 20090611095607/ http:/ / blogs. msdn. com/ iemobile/

archive/ 2005/ 10/ 04/ Randal. aspx). IEMobile Team Weblog, 4 ottobre 2005. URL consultato il 25 giugno 2011. (archiviato dall' originale il 11 giugno 2009)

[11] (EN) Microsoft Announces Broad Availability of Handheld PCs With Windows CE (http:/ / www. microsoft. com/ presspass/ press/ 1996/

Nov96/ wincepr. mspx). News Press Release, 18 novembre 1996. URL consultato il 20 giugno 2011.

[12] Hautala. (EN) Windows Phone 7.5 “Mango” update begins (http:/ / windowsteamblog. com/ windows_phone/ b/ windowsphone/

archive/ 2011/ 09/ 27/ windows-phone-7-5-mango-update-begins. aspx). Windows Phone Blog, 27 settembre 2011. URL consultato il 21 ottobre 2011.

[13] Justin Saint Clair. (EN) IE9 Feedback: Platform Previews through Beta (http:/ / blogs. msdn. com/ b/ ie/ archive/ 2011/ 02/ 23/

ie9-feedback-platform-previews-through-beta. aspx). IEBlog, 23 febbraio 2011. URL consultato il 16 giugno 2011.

[14] (EN) Frequently Asked Questions (http:/ / ie. microsoft. com/ testdrive/ info/ FrequentlyAskedQuestions/ Default. html). Internet Explorer Test Drive. URL consultato il 17 giugno 2011. [15] Kathy Rebello; Amy Cortese; Rob Hof. (EN) Inside Microsoft - The untold story of how the Internet forced Bill Gates to reverse course

(http:/ / www. businessweek. com/ 1998/ 35/ z3484001. htm). Businessweek, 15 luglio 1996. URL consultato il 21 febbraio 2011.

[16] (EN) Famous Names In Gaming (http:/ / www. cbsnews. com/ 2316-100_162-1673418-8. html). CBS News.com. URL consultato il 15 agosto 2011.

[17] Dave Kramer. (EN) A Brief on the Web - Reflections on microsoft.com from Birth to 'Middle Age' (http:/ / www.

microsoft. com/ misc/ features/ features_flshbk. htm). Microsoft, 24 dicembre 1999. URL consultato il 22 febbraio 2011.

[18] http:/ / www. microsoft. com/ about/ companyinformation/ timeline/ timeline/ docs/ di_killerapp_InternetMemo. rtf

[19] http:/ / web. archive. org/ web/ 20010413214808/ www. microsoft. com/ presspass/ trial/ exhibits/ feb99/ 302/ sld001. asp

[20] Steve Lohr. (EN) Microsoft Says Internet Browser Idea Arose Long Before Netscape (http:/ / www. nytimes. com/ 1998/ 08/ 06/ business/

microsoft-says-internet-browser-idea-arose-long-before-netscape. html?pagewanted=all& src=pm). The New York Times, 6 agosto 1998. URL consultato il 17 febbraio 2011.

[21] Paul Andrews. (EN) Gates: Browser Conceived Before Netscape Was Born (http:/ / community. seattletimes. nwsource. com/ archive/

?date=19980816& slug=2766841). The Seattle Times, 16 agosto 1998. URL consultato il 13 luglio 2011. Internet Explorer 43

[22] (EN) Microsoft began work on browser before Netscape incorporated (http:/ / news. google. com/ newspapers?id=wEFUAAAAIBAJ&

sjid=XI4DAAAAIBAJ& pg=5472,836145). Boca Raton News, 17 agosto 1998. URL consultato il 13 luglio 2011.

[23] Steve Hamm; Mike France. (EN) Microsoft takes the stand (http:/ / www. businessweek. com/ 1998/ 33/ b3591104. htm). Businessweek, 17 agosto 1998. URL consultato il 13 luglio 2011.

[24] Richard J. Urowsky. (EN) Microsoft's Brief on Appeal (http:/ / cyber. law. harvard. edu/ msdoj/ ms-appeal. html). 27 novembre 2000. URL consultato il 20 febbraio 2011.

[25] (EN) Highly confidential deposition upon oral examination of Philip Barrett (http:/ / www. justice. gov/ atr/ cases/ f2000/ barrett1. pdf) (PDF). U.S. Department of Justice, 7 ottobre 1998. URL consultato il 13 luglio 2011.

[26] James V. Grimaldi. (EN) Microsoft Trial -- Former Executive's Testimony Contradicts Gates (http:/ / community. seattletimes. nwsource.

com/ archive/ ?date=19981217& slug=2789533). The Seattle Times, 17 dicembre 1998. URL consultato il 13 luglio 2011.

[27] . (EN) Internet Standards and Operating Systems - Why Integration Makes Sense (http:/ / technet. microsoft. com/ en-us/

/ dd316500. aspx). Microsoft, 3 marzo 1998. URL consultato il 21 febbraio 2011.

[28] John Borland. (EN) : High price, huge rewards (http:/ / www. . com/ news/ browser-wars-high-price-huge-rewards/ 128738). 15 aprile 2003. URL consultato il 17 febbraio 2011.

[29] (EN) 2003 Young Innovator - Thomas Reardon, 34 - Openwave - Tailors Internet application to cell phones (http:/ / www.

technologyreview. com/ tr35/ Profile. aspx?TRID=301). Technology Review. URL consultato il 21 febbraio 2011.

[30] (EN) What is Internet Explorer? (http:/ / pagerankstudio. com/ Blog/ 2010/ 09/ what-is-internet-explorer/ ). URL consultato il 21 febbraio 2011.

[31] Keenan Mayo; Peter Newcomb. (EN) How The Web Was Won - An Oral (http:/ / www. vanityfair. com/ culture/

features/ 2008/ 07/ internet200807?printable=true& currentPage=all). Vanity Fair, 9 giugno 2008. URL consultato il 19 febbraio 2011.

[32] (EN) Microsoft Introduces Internet Explorer (http:/ / www. intercom. co. cr/ www/ research/ 1995/ 0817. htm). Microsoft, 17 agosto 1995. URL consultato il 8 maggio 2011.

[33] Wingfield, Nick (21 agosto 1995). Spyglass to challenge Netscape browser domination (http:/ / books. google. com/

books?id=0joEAAAAMBAJ& pg=PA31). InfoWorld 17 (34): 31 (in inglese). URL consultato il 14 maggio 2011.

[34] (EN) Microsoft embraces Internet standard and licenses Mosaic technology (http:/ / www. justice. gov/ atr/ cases/ exhibits/ 138. pdf). Microsoft, 13 gennaio 1995. URL consultato il 14 maggio 2011.

[35] (EN) Microsoft signs licensing agreement with Spyglass (http:/ / www. thefreelibrary. com/ MICROSOFT+ SIGNS+ LICENSING+

AGREEMENT+ WITH+ SPYGLASS-a016039985). PR Newswire, 13 gennaio 1995. URL consultato il 18 agosto 2011.

[36] (EN) A history of Internet Explorer - Highlights from the first 15 years (http:/ / windows. microsoft. com/ en-US/ internet-explorer/

products/ history). Microsoft. URL consultato il 12 aprile 2011.

[37] Ed Kubaitis. (EN) Browser Statistics for April 1996 (http:/ / www. ews. uiuc. edu/ bstats/ months/ 9604-month. html). University of Illinois at Urbana-Champaign. URL consultato il 1º marzo 2011.

[38] Maryann Jones Thompson. (EN) Behind the numbers: Browser market share (http:/ / edition. cnn. com/ TECH/ computing/ 9810/ 08/

browser. idg/ ). CNN, 8 ottobre 1998. URL consultato il 1º marzo 2011.

[39] Brian Wilson. (EN) Browser History: Windows Internet Explorer (http:/ / www. blooberry. com/ indexdot/ history/ ie. htm) in Index DOT Html/Css. URL consultato il 12 aprile 2011.

[40] (EN) Microsoft Ships Internet Explorer 2.0, Fastest-Growing Web Browser for Windows 95-Based PCs (http:/ / www. intercom. co. cr/

www/ research/ 1995/ 1127. htm). Microsoft, 27 novembre 1995. URL consultato il 8 maggio 2011.

[41] (EN) Microsoft Internet Explorer Web Browser Available on All Major Platforms, Offers Broadest International Support (http:/ / www.

microsoft. com/ presspass/ press/ 1996/ apr96/ iemompr. mspx). Microsoft News Center, 30 aprile 1996. URL consultato il 1º marzo 2011.

[42] (EN) Microsoft Launches Microsoft Internet Explorer 3.0 With Exclusive, Free Content Offers From Top Web Sites (http:/ / www.

microsoft. com/ presspass/ press/ 1996/ aug96/ ie30launchpr. mspx). Microsoft News Center, 13 agosto 1996. URL consultato il 8 maggio 2011. [43] (EN) Microsoft Ships Final Release of Internet Explorer 3.0 for Macintosh With Just-in-Time Java Compiler and Native ActiveX Support

(http:/ / www. microsoft. com/ presspass/ press/ 1997/ jan97/ ie3macpr. mspx). PR Newswire, 8 gennaio 1997. URL consultato il 11 marzo 2011.

[44] Håkon Wium Lie; , 20. The CSS saga (http:/ / www. w3. org/ Style/ LieBos2e/ history/ ) in Cascading Style Sheets, designing for the Web, 2a ed. (in inglese), Addison Wesley, 1999. ISBN 0-201-59625-3 URL consultato il 8 marzo 2011.

[45] (EN) Migrating from Internet Explorer 3.0 to Internet Explorer 4.0 and Later (http:/ / msdn2. microsoft. com/ en-us/ library/ ms531570. aspx). MSDN. URL consultato il 10 marzo 2011.

[46] (EN) Microsoft Internet Explorer 3.0 Beta Now Available (http:/ / www. microsoft. com/ presspass/ press/ 1996/ may96/ ie3btapr. mspx). Microsoft, 29 maggio 1996. URL consultato il 16 marzo 2011.

[47] (EN) Martin Veitch. «Microsoft releases Internet Explorer 3.0 second beta» (http:/ / www. zdnet. co. uk/ news/ networking/ 1996/ 07/ 17/

microsoft-releases-internet-explorer-30-second-beta-2063942/ ). ZDNet.co.uk, 17 luglio 1996. URL consultato in data 10 marzo 2011.

[48] Sandi Hardmeier. (EN) The History of Internet Explorer (http:/ / replay. waybackmachine. org/ 20090418194454/ http:/ / www. microsoft.

com/ windows/ IE/ community/ columns/ historyofie. mspx). Microsoft, 25 agosto 2005. URL consultato il 26 marzo 2011. (archiviato dall'url originale il 18 aprile 2009)

[49] Scott Schnoll. (EN) Internet Explorer Security Issues (1996-2002) (http:/ / www. nwnetworks. com/ 96-02iesecurity. htm). Internet Explorer Security Center (IESC). URL consultato il 13 marzo 2011. Internet Explorer 44

[50] Scott Schnoll. (EN) The History of Internet Explorer (http:/ / www. nwnetworks. com/ iehistory. htm). URL consultato il 10 marzo 2011.

[51] (EN) Microsoft Internet Explorer 4.0 Now Available; Delivers "The Web the Way You Want It" to Users Worldwide (http:/ / www.

microsoft. com/ presspass/ press/ 1997/ oct97/ ie4availpr. mspx). Microsoft News Center, 1º ottobre 1997. URL consultato il 8 maggio 2011.

[52] (EN) Supporting Offline Browsing in Applications and Components (http:/ / msdn. microsoft. com/ en-us/ library/ aa768170(VS. 85). aspx). Microsoft. URL consultato il 26 marzo 2011.

[53] (EN) Comic Chat - Resources (http:/ / kurlander. net/ DJ/ Projects/ ComicChat/ resources. html). WebRing. URL consultato il 19 aprile 2011.

[54] (EN) Browser Stats (http:/ / www. thecounter. com/ stats/ 1999/ March/ browser. php). The Counter, marzo 1999. URL consultato il 26 marzo 2011.

[55] (EN) Browser Stats (http:/ / www. thecounter. com/ stats/ 2001/ August/ browser. php). The Counter, agosto 2001. URL consultato il 26 marzo 2011.

[56] (EN) Browser Stats (http:/ / www. thecounter. com/ stats/ 2004/ August/ browser. php). The Counter, agosto 2004. URL consultato il 26 marzo 2011.

[57] (EN) Microsoft Delivers World's Fastest Modern Browser Available Today (http:/ / www. microsoft. com/ presspass/ press/ 1999/ mar99/

ieavlpr. mspx). Microsoft News Center, 18 marzo 1999. URL consultato il 1º maggio 2011.

[58] (EN) Microsoft announces availability of Internet Explorer 5 Macintosh Edition (http:/ / web. archive. org/ web/ 20010520171733/ http:/ /

www. microsoft. com/ mac/ library/ press/ ie/ t_ie5_pressrelease_2. asp). Mactopia, 27 marzo 2000. URL consultato il 4 luglio 2011. (archiviato dall'url originale il 20 maggio 2001)

[59] (EN) First Major Upgrade to Mac OS X Hits Stores This Weekend (http:/ / www. apple. com/ pr/ library/ 2001/ sep/ 25osx_available. html). Apple, 25 settembre 2001. URL consultato il 9 maggio 2011.

[60] Alessandro Del Rosso. YouTube prepara l'addio a IE 6 (http:/ / punto-informatico. it/ 2673526/ PI/ News/ -prepara-addio-ie. aspx). Punto Informatico, 17 luglio 2009. URL consultato il 22 febbraio 2011.

[61] Scarica Internet Explorer 7 (http:/ / www. microsoft. com/ italy/ windows/ internet-explorer/ download-ie. aspx). Microsoft. URL consultato il 22 febbraio 2011.

[62] (EN) The Web Takes Center Stage at Microsoft’s MIX11 Conference (http:/ / www. microsoft. com/ presspass/ press/ 2011/ apr11/

04-12MIX1PR. mspx). Microsoft News Center, 12 aprile 2011. URL consultato il 14 maggio 2011.

[63] Steven Sinofsky. (EN) Metro style browsing: one engine, two experiences, no compromises (http:/ / blogs. msdn. com/ b/ b8/ archive/ 2011/

09/ 14/ metro-style-web-browsing-one-engine-two-experiences-no-compromises. aspx). Building Windows 8, 14 settembre 2011. URL

consultato il 23 settembre 2011. ( archiviato (http:/ / www. webcitation. org/ 65mEfWiT8) il 28 febbraio 2012)

[64] Dean Hachamovitch. (EN) Site-ready HTML5: Second IE10 Platform Preview Available for Developers (http:/ / blogs. msdn. com/ b/ ie/

archive/ 2011/ 06/ 29/ site-ready--second-ie10-platform-preview-available-for-developers. aspx). IEBlog, 29 giugno 2011. URL

consultato il 3 luglio 2011. ( archiviato (http:/ / www. webcitation. org/ 65mEoPBbN) il 28 febbraio 2012)

[65] Gregg Keizer. (EN) Windows Vista: No IE10 for you (http:/ / www. computerworld. com/ s/ article/ 9215791/

Windows_Vista_No_IE10_for_you). Computerworld, 13 aprile 2011. URL consultato il 21 aprile 2011. ( archiviato (http:/ / web. archive. org/

web/ 20110423112544/ http:/ / www. computerworld. com/ s/ article/ 9215791/ Windows_Vista_No_IE10_for_you) il 23 aprile 2011)

[66] Andrea Galassi. Internet Explorer 10 non funzionerà su Windows Vista (http:/ / www. webmasterpoint. org/ news/

internet-explorer-10-non-funzionera-su-windows-vista_p40295. html). WebMasterPoint.org, 14 aprile 2011. URL consultato il 16 aprile

2011. ( archiviato (http:/ / www. webcitation. org/ 65mExlUot) il 28 febbraio 2012)

[67] (EN) Internet Explorer 10 Guide for Developers (http:/ / msdn. microsoft. com/ library/ hh673549. aspx). MSDN, 30 novembre 2011. URL

consultato il 30 novembre 2011. ( archiviato (http:/ / www. webcitation. org/ 63agkES7U))

[68] Rosario. Confermato: Internet Explorer 9 non funzionerà su Windows XP (http:/ / www. downloadblog. it/ post/ 12042/ confermato-internet-explorer-9-non-funzionera-su-windows-xp-con-sondaggio). Downloadblog, 18 marzo 2010. URL consultato il 6 maggio

2011. ( archiviato (http:/ / web. archive. org/ web/ 20100323013858/ http:/ / www. downloadblog. it/ post/ 12042/ confermato-internet-explorer-9-non-funzionera-su-windows-xp-con-sondaggio?) il 23 marzo 2010)

[69] http:/ / www. litepc. com/ ieradicator. html

[70] Fabio Boneschi. L'Unione Europea contro Microsoft, colpa di Internet Explorer (http:/ / www. hwupgrade. it/ news/ software/

l-unione-europea-contro-microsoft-colpa-di-internet-explorer_27767. html). HWFiles, 20 gennaio 2009. URL consultato il 22 febbraio 2011.

[71] Ina Fred. (EN) Microsoft: No browserless Windows 7 after all (http:/ / news. . com/ 8301-13860_3-10301299-56. html). CNET News, 30 luglio 2009. URL consultato il 22 febbraio 2011.

[72] Paul Thurrott. (EN) Internet Explorer 7: Flawed or Misunderstood? (http:/ / www. winsupersite. com/ showcase/ ie7_misunderstood. asp). 17 agosto 2006. URL consultato il 22 febbraio 2011. In merito alla scarsa conformità di Internet Explorer agli standard web definiti dal W3C.

[73] Andrea Tarquini. «"Lasciate Explorer, non è sicuro" - Allarme dell'Autorità tedesca» (http:/ / www. repubblica. it/ tecnologia/ 2010/ 01/ 15/

news/ allarme_explorer_germania-1965010/ ). La Repubblica, 15 01 2010. URL consultato in data 22 febbraio 2011.

[74] (DE) «Bundesamt warnt vor Benutzung von Internet Explorer» (http:/ / www. spiegel. de/ netzwelt/ web/ 0,1518,672183,00. html). Der Spiegel, 15 01 2010. URL consultato in data 22 febbraio 2011.

[75] Steve Lohr. (EN) Spyglass, a Pioneer, Learns Hard Lessons About Microsoft (http:/ / www. nytimes. com/ 1998/ 03/ 02/ business/

spyglass-a-pioneer-learns-hard-lessons-about-microsoft. html?pagewanted=all& src=pm). The New York Times, 2 marzo 1998. URL consultato il 17 febbraio 2011. Internet Explorer 45

[76] Paul Thurrott. (EN) Microsoft and Spyglass kiss and make up (http:/ / www. windowsitpro. com/ article/ news2/

microsoft-and-spyglass-kiss-and-make-up. aspx). 22 gennaio 1997. URL consultato il 17 febbraio 2011.

[77] Peter Elstrom. (EN) Microsoft's $8 million goodbye to Spyglass (http:/ / www. businessweek. com/ bwdaily/ dnflash/ january/ new0122d. htm). Bloomberg Businessweek, 22 gennaio 1997. URL consultato il 17 febbraio 2011.

[78] Rupert Goodwins. (EN) Microsoft sued by minnow over Internet Explorer name (http:/ / www. zdnet. co. uk/ news/ it-strategy/ 1996/ 08/ 15/

microsoft-sued-by-minnow-over-internet-explorer-name-2064090/ ). ZDNet, 15 agosto 1996. URL consultato il 18 agosto 2011.

[79] (EN) S SYNET INTERNET EXPLORER - United States Trademark #74716992 (http:/ / www. seravia. com/ trademark/ united-states/ synet-inc-s-synet-internet-explorer-629bf0tfw#detail). Seravia. URL consultato il 18 agosto 2011.

[80] Bill Pietrucha. (EN) Microsoft & Synet Settle Internet Explorer Suit (http:/ / web. archive. org/ web/ 20060427084139/ http:/ / www. exn.

ca/ Stories/ 1998/ 07/ 03/ 59. asp). Newsbytes, 2 luglio 1998. URL consultato il 18 agosto 2011. (archiviato dall'url originale il 27 aprile 2006)

[81] (EN) Microsoft pays $5 million in settlement for its Internet Explorer name (http:/ / www. texnews. com/ 1998/ biz/ ms0702. html). Textnews, 2 luglio 1998. URL consultato il 18 agosto 2011.

[82] Bill Pietrucha. (EN) Battle over browser name starts (http:/ / www. itbusiness. ca/ it/ client/ en/ home/ News. asp?id=25773). itbusiness.ca, 13 luglio 1998. URL consultato il 18 agosto 2011.

[83] Alex Fryer. (EN) Microsoft Settles Suit Over Browser's Name (http:/ / community. seattletimes. nwsource. com/ archive/ ?date=19980702& slug=2759186). The Seattle Times, 2 luglio 1998. URL consultato il 18 agosto 2011.

[84] (EN) Internet Explorer Name Story (http:/ / www. brighternaming. com/ IEStory. html). Brighter Naming. URL consultato il 18 agosto 2011.

Voci correlate • Browser Web • Guerra dei browser • Windows Internet Explorer 9 • Windows Internet Explorer 10 • Internet Explorer Macintosh Edition • Internet Explorer per UNIX • Internet Explorer Mobile • Internet Explorer Platform Preview • FrontPage

Altri progetti

• Wikimedia Commons contiene file multimediali: http:/ / commons. wikimedia. org/ wiki/ Category:Internet Explorer

Collegamenti esterni

• Sito ufficiale di Internet Explorer (http:/ / windows. microsoft. com/ it-IT/ internet-explorer/ products/ ie/ home)

• Centro di supporto per Internet Explorer (http:/ / support. microsoft. com/ ph/ 807)

• (EN) «A history of Internet Explorer - Highlights from the first 15 years» (http:/ / windows. microsoft. com/

en-US/ internet-explorer/ products/ history) da microsoft.com

• Community ufficiale di Internet Explorer (http:/ / msdn. microsoft. com/ it-it/ ie/ aa740470), da MSDN

• (EN) Problemi di sicurezza di Internet Explorer ( dal 1996 al 2002 (http:/ / www. nwnetworks. com/

96-02iesecurity. htm) e nel 2003 (http:/ / www. nwnetworks. com/ iesecurity. htm))

• (EN) «Internet Explorer Architecture» (http:/ / msdn. microsoft. com/ en-us/ library/ aa741312. aspx), da MSDN

• Archivi programmi di installazione di Internet Explorer: Evolt.org (http:/ / browsers. evolt. org/ ?ie/ ),

OldApps.com ( Windows (http:/ / www. oldapps. com/ internet_explorer. php), Macintosh (http:/ / mac. oldapps.

com/ internet_explorer. php)) Safari (browser) 46 Safari (browser)

Safari

visuale di Wikipedia in Safari 4.0.2, su Mac OS X Sviluppatore Apple Inc.

Ultima versione 5.1.5 (26 marzo 2012)

S.O. Mac OS X, Windows XP, Windows Vista, Windows 7, iOS

Linguaggio C++, Objective C

Genere Web browser

Licenza Proprietario (Licenza chiusa)

[1] Sito web apple.com/it/safari

Safari è un browser web sviluppato da Apple Inc. per il sistema operativo Mac OS X, iOS e successivamente anche per Windows. È il browser fornito di default con Mac OS X dalla versione 10.3 (Panther). Per renderizzare le pagine HTML, Safari utilizza il framework WebKit, fornito con il sistema operativo. Anche iPhone e iPad utilizzano il browser Safari integrato in iOS. Safari è usato a ottobre 2011 dal 8,54% degli internauti a livello mondiale, ciò lo rende il quarto browser più popolare della rete dopo Internet Explorer, Firefox e Google Chrome.[2]

Panoramica Safari utilizza il tema Apple metallizzato per la sua interfaccia utente su Mac OS X 10.4, mentre in Mac OS X 10.5 e Windows usa la nuova interfaccia utente grigia. I vengono organizzati seguendo una logica simile a quella usata in iTunes. Il browser supporta anche la navigazione a tab come Opera, Firefox o Internet Explorer 7. Nella barra è integrata una funzione di ricerca che si poggia su Google, si possono anche scegliere Yahoo! o Bing per effettuare le ricerche. Il codice del motore di rendering è basato sul motore KHTML utilizzato dal browser open source Konqueror, il che implica che il codice del motore di rendering HTML è rilasciato sotto licenza GNU Lesser General Public License. I miglioramenti nel codice di KHTML introdotti dagli ingegneri di Apple vengono restituiti alla comunità di KDE di modo che possano essere integrati nel progetto originario. All'atto pratico il processo di collaborazione in entrambe le direzioni si è rivelato più difficoltoso di quanto idealmente avrebbe potuto essere (vedi KHTML per un approfondimento). Apple ha rilasciato dell'altro codice (conosciuto come WebCore) sotto una licenza open source simile a quella BSD e un framework completo, sempre in licenza open source, denominato WebKit, che integra anche il motore KHTML. Safari (browser) 47

Questo framework è alla base dello sviluppo anche di altri browser, il più noto dei quali è Google Chrome. Il codice sorgente del resto del browser, incluso quello della GUI, non è stato rilasciato. Nel 1997, Netscape Navigator ha abbandonato il supporto del suo browser per i computer Apple Macintosh, mentre invece è proseguito il supporto da parte di Mozilla. Microsoft Internet Explorer era incluso nel sistema operativo come browser predefinito fino a Mac OS X 10.3, in una versione specifica meno avanzata rispetto alla versione per Windows ma dotata di un motore di resa diverso (denominato Tasman), più aderente agli standard web. Nel giugno 2003, la Microsoft ha abbandonato lo sviluppo di Internet Explorer per Macintosh pur continuando a integrare Tasman nella versione per Mac della suite di Office. La versione 2 di Safari, inclusa in Mac OS X 10.4, comprende un lettore RSS e . Supporta anche una modalità di navigazione "privata" (non vengono salvate informazioni sui siti visitati), è in grado di archiviare le pagine web, di inviare via e-mail usando programmi esterni e può effettuare ricerche nei bookmark e molto altro. Il nome probabilmente deriva da un gioco di parole tratto dall'album Surfin' Safari dei Beach Boys pubblicato nel 1962.

Prestazioni Stando a quanto affermato da fonti interne alla Apple, la versione 3 di Safari risulta, da test eseguiti con iBench, il browser più veloce nel rendering delle pagine HTML, nell'esecuzione di codice JavaScript e nell'avvio, avendo una velocità doppia rispetto a Internet Explorer nei primi due test e avendo un buon margine su Firefox 2.0.x Con l'uscita del veloce Firefox 3 con nuovo motore di rendering Gecko 1.9, questo primato sarebbe stato perso soprattutto nell'esecuzione di codice Javascript grazie al motore SpiderMonkey di Firefox 3. Tuttavia il gap è stato superato con l'uscita della versione 4 di Safari che utilizza un nuovo motore javascript ad elevata efficienza denominato Squirrel ("scoiattolo"). La diffusione di Safari ha avuto nel 2007 un netto incremento dovuto alla disponibilità della versione per Windows, all'integrazione del programma nell'iPhone e nell'iPod Touch e nel 2010 anche nel ipad ,per andamento favorevole delle vendite dei sistemi Apple anche se Safari per piattaforma Windows è stato talvolta criticato per falle e imperfezioni.

Safari su Windows Steve Jobs ha reso noto, durante il WWDC 07, che sarebbe stata rilasciata una versione Beta di Safari 3 anche per le piattaforme Windows XP e Windows Vista. L'accoglienza del programma sui sistemi Windows ha prodotto molte discussioni. Specialmente nei paesi al di fuori degli USA il software rilasciato sembrava non essere all'altezza di una fase beta di sviluppo in quanto Apple non ha rilasciato nessun supporto internazionale per il browser, dunque installandolo in sistemi Windows localizzati in lingua non inglese il programma si è dimostrato molto instabile e affetto da molti problemi. Nella versione inglese invece risultava molto più stabile seppur avesse numerosi problemi di sicurezza[3] che però sono stati risolti nel giro di pochi giorni dal suo rilascio con la versione 3.0.1. La versione Mac OS X invece sembra non essere affetta da questi problemi che si presume siano dovuti essenzialmente al processo di conversione sotto Windows. Apple comunque ha iniziato a rilasciare degli opportuni aggiornamenti di sicurezza che indirizzano tali problemi.[4] Con la versione 3.0.2 rilasciata il 23 giugno Safari aggiunge il supporto multilingua, consentendo la localizzazione anche in lingue diverse dall'inglese, migliora la visualizzazione dei testi, aumenta la sicurezza e la stabilità e diminuisce il tempo di avvio. La versione 3.0.3 (rilasciata ad agosto) risulta la prima versione che può dirsi a un buon punto di sviluppo. Il 15 novembre 2007 Apple ha rilasciato la versione 3.0.4. finalizzata al miglioramento della stabilità complessiva. Safari (browser) 48

Il 12 giugno 2008 è stata rilasciata la versione 3.1.2 che risolve diverse problematiche. Il 6 giugno 2008 è stata rilasciata solo agli sviluppatori la versione beta di Safari 4 sia per Mac che per Windows. Il 12 novembre 2008 è stata rilasciata la versione 3.2.0 di Safari, che introduce il supporto per la protezione dal phishing e risolve alcuni problemi di stabilità. Nel febbraio 2009 è stata rilasciata al pubblico la versione beta 4.0. Il giorno 8 giugno 2009 è stata rilasciata la versione 4.0 ufficiale di Safari. Il 7 giugno 2010 è stata rilasciata la versione 5.0 con velocità aumentata e la funzione reader. Il 28 luglio 2010 è stata rilasciata la versione 5.0.1 con consente per la prima volta, di scaricare le estensioni preferite da un'ampia galleria e di poter consentire la localizzazione, se l'utente lo consente. Il 7 settembre 2010 è stata rilasciata la versione 5.0.2 con miglioramento della funzioni reader che permette di impaginare gli articoli eliminando la pubblicità con aumento della velocità grazie al motore Nitro e supporto di nuove funzionalità HTML5.

Cronologia delle versioni

Versione Versione del Sistemi Data Caratteristiche di Safari WebCore operativi rilascio supportati

0.8 48 Mac OS X 7 gennaio Public Beta. Prima versione, presentata alla conferenza Macworld. 10.2 2003

0.8.1 51 Mac OS X 10 Public Beta. Miglioramenti minori. 10.2 gennaio 2003

0.8.2 60 Mac OS X 12 Public Beta. Migliorata compatibilità con siti web, supporto dell'XML, migliorata la 10.2 febbraio stabilità, migliorate le prestazioni del Macromedia Flash, migliorato il supporto degli 2003 standard web.

0.9 73 Mac OS X 14 aprile Public Beta 2. Aggiunti pannelli per la navigazione, autocompletamento form, eliminazione 10.2 2003 dei dati sensibili salvati tramite menu, lettura dei bookmark di Netscape Mozilla, migliorata gestione degli standard web, migliorata gestione AppleScript, aggiunte localizzazioni.

0.9 74 Mac OS X 15 maggio Public Beta 2. Migliorata gestione dei certificati SSL/TLS. 10.2 2003

1.0 85 Mac OS X 23 giugno Prima versione ufficiale. Safari diventa il web browser standard per il Mac OS X. Aggiunta 10.2 2003 schede veloci, supporto della sincronizzazione iSync, supporto di tutti i linguaggi gestiti dal Mac OS X, aggiunti AppleScript per gestire il programma, migliorata gestione degli standard web.

1.0 85.5 Mac OS X 3 ottobre Rilasciato con l'aggiornamento del Mac OS X 10.2.8. 10.2 2003

1.1 100 Mac OS X 24 ottobre Rilasciato con il Mac OS X v10.3. Migliorata la velocità, migliorata gestione dei siti web, 10.3 2003 migliorata gestione CSS.

1.0.1 85.6 Mac OS X 19 Rilasciato con l'aggiornamento di sicurezza 2003-11-19. 10.2 novembre 2003

1.1.1 100.1 Mac OS X 19 Rilasciato con l'aggiornamento di sicurezza 2003-11-19. 10.3 novembre 2003

1.0.2 85.7 Mac OS X 10.2

1.2 125 Mac OS X 2 febbraio Migliorata la compatibilità con siti e applicazioni web. Supporta le certificazioni personali. 10.3 2004 Gestione del programma totalmente da tastiera. Capacità di riprendere i download interrotti. Safari (browser) 49

1.2.1 125.1 Mac OS X 15 maggio Rilasciato con il Mac OS X 10.3.3 10.3 2004

1.2.2 125.7 Mac OS X 26 maggio Rilasciato con il Mac OS X 10.3.4. Risolve un problema con gli allegati di Hotmail. 10.3 2004

1.2.2 125.8 Mac OS X 7 luglio Rilasciato con l'aggiornamento di sicurezza 2004-06-07. Risolve un problema legato al 10.3 2004 pulsante "Show in Finder" che poteva eseguire le applicazioni scaricate.

1.0.3 85.8 Mac OS X 10.2

1.0.3 85.8.1 Mac OS X 10.2

1.2.3 125.9 Mac OS X 9 agosto Rilasciato con il Mac OS X 10.3.5. Rimuove un potenziale buco di sicurezza legato alle 10.3 2004 immagini GIF.

1.2.4 125.11 Mac OS X 5 Rilasciato con il Mac OS X 10.3.6. Rimuove il timeout di 60 secondi per le pagine web. 10.3 novembre Risolve un problema legato agli hard disk con nomi contenenti caratteri non ASCII. 2004

1.2.4 125.12 Mac OS X 2 Rilasciato con l'aggiornamento di sicurezza 2004-12-02. Risolve alcuni problemi di 10.3 dicembre sicurezza. [5] [6] 2004

1.3 312 Mac OS X 15 aprile Rilasciato con il Mac OS X 10.3.9. Include molti dei miglioramenti di velocità sviluppati 10.3 2005 per la versione 2.0.

2.0 412 Mac OS X 29 aprile Rilasciato con il Mac OS X v10.4. Migliorata la velocità di disegno delle pagine web e la 10.4 2005 compatibilità con i siti web. Integrato un lettore di RSS e Atom. Integrato un lettore di file PDF. Aggiunta la navigazione privata e il controllo dei minori. Possibilità di salvare interi siti web.

2.0 412.2 Mac OS X 12 luglio Rilasciato con l'aggiornamento del Mac OS X 10.4.2. 10.4 2005

2.0 412.2.2 Mac OS X 15 agosto Rilasciato con l'aggiornamento di sicurezza 2005-007. Risolto problema di sicurezza con i 10.4 2005 suffissi CVE-2005-2516, CVE-2005-2517 e CVE-2005-2522.

1.3.1 Mac OS X 29 agosto Aggiornamento "Safari Update 1.3.1". Migliorata la velocità e la compatibilità con alcuni 10.3 2005 siti.

2.0.1 412.7 Mac OS X 29 agosto Aggiornamento "Safari Update 2.0.1". Migliorata la velocità e la compatibilità con alcuni 10.4 2005 siti.

2.0.2 416.12 Mac OS X 31 ottobre Rilasciato con l'aggiornamento del Mac OS X 10.4.3. 10.4 2005

2.0.2 416.13 Mac OS X 29 Rilasciato con l'aggiornamento di sicurezza 2005-009. Aggiorna la versione di PCRE 10.4 novembre inclusa in Safari che include una verifica degli input migliore. L'aggiornamento risolve un 2005 problema di overflow prodotto dai download con nomi malformati. Risolve un problema con le finestre di dialogo JavaScript che potevano consentire a un terzo di intercettare le informazioni. [7] Risolve anche un problema di overflow del WebKit.

2.0.3 417.8 Mac OS X 10 Incluso nell'aggiornamento di Mac OS X 10.4.4. Corretti alcuni problemi di sicurezza. 10.4 gennaio 2006

2.0.3 417.9.2 Mac OS X 13 marzo Incluso nell'aggiornamento di sicurezza 2006-002. 10.4 2006

2.0.3 417.9.3 Mac OS X 11 maggio Incluso nell'aggiornamento di sicurezza 2006-003. 10.4 2006

2.0.4 419.3 Mac OS X 27 giugno Incluso nell'aggiornamento di Mac OS X 10.4.7. 10.4 2006 Safari (browser) 50

3.0 522.11 Mac OS X 11 giugno Versione beta. Drastico incremento delle performance, migliorata la navigazione a pannelli. 10.4 2007 Aggiunto il supporto ai sistemi Windows. Windows XP Windows Vista

3.0.1 Windows giugno Versione beta. Risolti alcuni bug di sicurezza. XP 2007 Windows Vista

3.0.2 Windows 23 giugno Versione beta. Aggiunto il supporto alle lingue straniere, migliorata la visualizzazione dei XP 2007 testi, aumentata la sicurezza e la stabilità e diminuito il tempo di avvio. Windows Vista

3.0.3 522.12.1 Mac OS X 1º agosto Migliorata la stabilità e corretti dei bug che potevano minare la sicurezza del programma. 10.4 2007 Windows XP Windows Vista

3.0.4 523.7 Mac OS X 15 Rilasciato con Mac OS X 10.5 Leopard e in seguito, con l'aggiornamento Mac OS X 10.4 novembre 10.4.11, anche su Tiger. Mac OS X 2007 10.5 Windows XP Windows Vista

3.1 525.13 Mac OS X 18 marzo Supporto dei nuovi tag video e audio di HTML5 e delle animazioni CSS. Migliorata la 10.4 2008 stabilità, la compatibilità e la sicurezza in JavaScript. Mac OS X 10.5 Windows XP Windows Vista

3.1.1 525.18 Mac OS X 16 aprile Miglioramenti nella stabilità, compatibilità e sicurezza. 10.4 2008 Mac OS X 10.5 Windows XP Windows Vista

3.1.2 525.21 Mac OS X 12 giugno Rilasciato con Mac OS X 10.5.4 per Leopard e in aggiornamento per Tiger. Miglioramenti 10.4 2008 in stabilità. Mac OS X 10.5 Windows XP Windows Vista Safari (browser) 51

3.2.0 525.26.13 Mac OS X 12 Rilasciato con Mac OS X 10.5.4 per Leopard e in aggiornamento per Tiger. Miglioramenti 10.4 novembre nella protezione contro il phishing e migliorata la funzionalità dei siti di acquisto online Mac OS X 2008 (come ebay) e la loro protezione. 10.5 Windows XP Windows Vista

3.2.1 525.27.1 Mac OS X 25 Rilasciato con Mac OS X 10.5.4 per Leopard e in aggiornamento per Tiger. Miglioramenti 10.4 novembre nella stabilità del programma, ora chiede se vogliamo uscire da un pannello oppure no Mac OS X 2008 10.5 Windows XP Windows Vista

3.2.2 525.28.1 Windows 12 Aggiornamento di sicurezza. XP febbraio Windows 2009 Vista

3.2.3 525.28.1 Mac OS X 12 maggio Rilasciato con Mac OS X 10.5.7 per Leopard e in aggiornamento per Tiger. Aggiornamento 525.29.1 10.4 2009 di sicurezza. Mac OS X 10.5 Windows XP Windows Vista

4.0.0 526.12.2 Mac OS X 6 giugno Rilasciata solo agli sviluppatori la preview di Safari 4. Nuovo menu Sviluppo, Web developer 10.4 2008 Inspector ridisegnato. Inoltre include elementi delle nuove versioni di WebKit, come il preview Mac OS X supporto alle nuove caratteristiche del CSS e il migliorato supporto al nuovo HTML5. 10.5 Nuovo interprete JavaScript SqirrelFish. Windows XP Windows Vista

4.0.0 528.1 Mac OS X 22 agosto Seconda preview per gli sviluppatori. developer 10.4 2008 preview 2 Mac OS X 10.5 Windows XP Windows Vista

4.0.0 528.16 Mac OS X 24 Prima versione beta pubblica. public beta 10.4 febbraio Mac OS X 2009 10.5 Windows XP Windows Vista Safari (browser) 52

4.0.0 528.17 Mac OS X 12 maggio Seconda versione beta pubblica. Aggiornamento di sicurezza. public beta 10.4 2009 2 Mac OS X 10.5 Windows XP Windows Vista

4.0.0 530.17 Mac OS X 8 giugno Versione finale. Si tratta del primo browser in versione stabile a passare il test Acid3 con un 10.4 2009 punteggio 100/100. Mac OS X 10.5 Windows XP Windows Vista

4.0.1 530.18 Mac OS X 17 giugno Migliora la compatibilità con iPhoto '09. 10.5 2009

4.0.2 530.19 Mac OS X 8 luglio Migliora la stabilità del motore Nitro JavaScript e include le ultime correzioni relative alla 10.4 2009 sicurezza e alla compatibilità dell'applicazione. Mac OS X 10.5 Windows XP Windows Vista Windows 7

4.0.3 530.20 Mac OS X 12 agosto • Miglioramenti alla stabilità per le pagine web che utilizzano l'etichetta video HTML5 10.4 2009 • Risoluzione di un problema che impediva ad alcuni utenti di effettuare il login a Mac OS X iWork.com 10.5 • Risoluzione di un problema per cui a volte i contenuti web venivano visualizzati in scala Mac OS X di grigi anziché a colori 10.6 Windows XP Windows Vista Windows 7

4.0.4 531.21 Mac OS X 11 • Prestazioni di JavaScript migliorate 10.4 novembre • Prestazioni migliorate di Ricerca nella cronologia completa per gli utenti con un numero Mac OS X 2009 elevato di elementi cronologici 10.5 • Miglioramento della stabilità di plug-in di terze parti, del campo di ricerca e Yahoo! Mac OS X Mail 10.6 Windows XP Windows Vista Windows 7 Safari (browser) 53

4.0.5 531.22 Mac OS X 11 marzo • Miglioramenti alle prestazioni di Top Sites 10.4 2010 • Miglioramenti alla stabilità dei plugin di terze parti Mac OS X • Miglioramenti alla stabilità dei siti web con moduli on-line e tecnologia SVG (Scalable 10.5 Vector Graphics) Mac OS X • Risoluzione di un problema che impediva la modifica delle impostazioni di alcuni router 10.6 Linksys da parte di Safari Windows • Risoluzione di un problema che impediva ad alcuni utenti di iWork.com di commentare XP i documenti Windows Vista Windows 7

4.1 4533.16 Mac OS X 7 giugno 10.4 2010

5.0 4533.16 Mac OS X 7 giugno • Velocità aumentata 10.5 2010 • Funzione Reader Mac OS X 10.6 Windows XP Windows Vista Windows 7

5.0.1 6533.17.8 Mac OS X 28 luglio • Velocità aumentata 10.5 2010 • Galleria estensioni Mac OS X • Geolocalizzazione 10.6 • Potenziamento HTML5 Windows • Personalizzazione barra degli strumenti XP Windows Vista Windows 7

[8] 5.0.2 7533.18.5 Mac OS X 7 • Corregge problemi che potrebbero impedire agli utenti l'invio di moduli web 10.5 settembre • Corregge problemi che potrebbero causare l'errata visualizzazione di un contenuto web, Mac OS X 2010 quando viene visualizzato un risultato di Google Image con Flash 10.1 installato 10.6 • Stabilisce una connessione codificata e autenticata con la Galleria estensioni Safari Windows XP Windows Vista Windows 7

5.0.3 7533.19.4 Mac OS X 18 10.5 novembre Mac OS X 2010 10.6 Windows XP Windows Vista Windows 7 Safari (browser) 54

5.0.4 7533.20.27 Mac OS X 9 marzo • Miglioramento della compatibilità con le pagine web che contengono effetti di 10.5 2011 transizione Mac OS X • Risoluzione di un problema che poteva provocare la stampa di alcune pagine web con 10.6 layout non corretto Windows • Risoluzione di un problema che poteva impedire la riproduzione di video HTML5 su XP www.youtube.com Windows • Risoluzione di un problema che poteva provocare l'errata visualizzazione dei contenuti Vista di pagine web con plugin Windows 7

5.0.5 7533.21.1 Mac OS X 14 aprile Aggiornamenti per la sicurezza 10.5 2011 Mac OS X 10.6 Windows XP Windows Vista Windows 7

5.1 7534.50 Mac OS X 20 luglio 10.5 2011 Mac OS X 10.6 Mac OS X 10.7 Windows XP Windows Vista Windows 7

5.1.1 7534.51.22 Mac OS X 12 ottobre Risolvono problemi che potevano causare blocchi e un uso eccessivo della memoria. 10.5 2011 Migliorano la stabilità durante l'utilizzo dell'opzione Cerca, il trascinamento dei pannelli e Mac OS X la gestione delle estensioni. Migliorano la stabilità per netflix.com e altri siti web che 10.6 utilizzano il plug-in Silverlight. Migliorano la stabilità della funzione zoom in Google Mac OS X Maps. Risolvono un problema che poteva impedire l'inserimento di caratteri Est asiatici in 10.7 pagine web con contenuti Flash. Risolvono un problema che poteva provocare l'errata Windows visualizzazione dei contenuti di Cronologia. Risolvono un problema che poteva occasionare XP l'apparizione di elementi eliminati di Elenco Lettura. Migliora il processo di stampa da Windows Safari. Risolve un problema che poteva impedire al servizio di navigazione sicura di Google Vista di aggiornarsi. Windows 7

5.1.2 7534.52.7 Mac OS X 29 Risolve un problema con la gestione della memoria e migliora la stabilità in generale. 10.5 novembre Risolve i problemi che potevano causare il lampeggiamento in bianco delle pagine web. [9] Mac OS X 2011 Attivata la visualizzazione dei documenti PDF all'interno del contenuto web. 10.6 Mac OS X 10.7 Windows XP Windows Vista Windows 7 Safari (browser) 55

5.1.4 7534.54.16 Mac OS X 12 marzo 10.5 2012 Mac OS X 10.6 Mac OS X 10.7 Windows XP Windows Vista Windows 7

Altri browser per Mac OS • Amaya • Camino • iCab • Links • Lynx • Mozilla Firefox • OmniWeb • Opera • SeaMonkey • Shiira

Discontinuati • Cyberdog (il precedente web browser di Apple) • Internet Explorer Macintosh Edition • Mozilla • Netscape Navigator

Note

[1] http:/ / www. apple. com/ it/ safari/

[2] (EN) Browser Market Share (http:/ / www. netmarketshare. com/ browser-market-share. aspx?spider=1& qprid=1). NetMarketShare. URL consultato il 2 ottobre 2011.

[3] Safari 3 per Windows accolto tra i fischi (http:/ / punto-informatico. it/ p. aspx?i=2019477)

[4] Update sicurezza per Safari per Windows (http:/ / www. macitynet. it/ macity/ aA28539/ index. shtml). MacCityNet

[5] http:/ / secunia. com/ advisories/ 13047/

[6] http:/ / secunia. com/ advisories/ 12892/

[7] http:/ / secunia. com/ advisories/ 15474/

[8] Apple Safari - Download - COMPUTER BILD (http:/ / www. computerbild. de/ download/ Apple-Safari-1298727. html)

[9] Safari 5.1.2 (http:/ / support. apple. com/ kb/ DL1070) Safari (browser) 56

Voci correlate • WebKit

Collegamenti esterni

• Apple: Safari (http:/ / www. apple. com/ it/ safari/ )

• Download Safari (http:/ / www. apple. com/ it/ safari/ download/ )

• (EN) L'annuncio su "The Dot", il weblog del progetto KDE, dello sviluppo di Safari (http:/ / dot. . org/

1041971213/ )

• (EN) VersionTracker: Safari (http:/ / www. versiontracker. com/ dyn/ moreinfo/ mac/ / 17743)

• (EN) Surfin' Safari (http:/ / . org/ blog/ ) - Il weblog di Dave Hyatt, coordinatore del progetto Safari

Google Chrome

Google Chrome

Screenshot di Google Chrome 17.0.963.46 su Microsoft Windows 7 Sviluppatore Google Inc.

Ultima versione 18.0.1025.168 (30 aprile 2012)

Ultima beta 20.0.1115.1 dev-m (25 aprile 2012)

S.O. Multipiattaforma

Genere Web browser

Licenza BSD License (Licenza chiusa)

[1] Sito web google.com/chrome

Google Chrome è un browser basato su WebKit e sviluppato da Google. È stato annunciato il 1º settembre 2008 con un fumetto di Scott McCloud distribuito sotto licenza Creative Commons.[2] L'annuncio è stato poi ripreso dal blog ufficiale di Google.[3] Chromium è il progetto open source su cui è basato Google Chrome. La parte realizzata da Google è rilasciata sotto licenza BSD, mentre le altre parti sono soggette ad una varietà di licenze open source. Implementa le stesse funzionalità di Chrome, ma ha un logo differente. Google ha messo a punto una nuova iniziativa: Chrome Experiments, con lo scopo di testare la funzionalità del proprio browser.[4] La prima distribuzione di tipo beta, disponibile inizialmente solo per la piattaforma Windows, è iniziata il 2 settembre 2008 ed è stata resa disponibile in 43 lingue. Nel dicembre 2009 è stata aggiunta anche la versione beta per Linux e Mac OS X. La versione 5.0, lanciata il 25 maggio 2010, è stata la prima a supportare tutte e tre le Google Chrome 57

piattaforme. Google Chrome attualmente è usato a livello mondiale dal 36.3% degli utenti[5]. Ciò lo rende il primo browser più popolare della rete insieme a Mozilla Firefox, preceduto da Internet Explorer che pochi anni fa era il browser più diffuso.

Informazioni generali Il browser progettato del team di Mountain View già dalla prima versione si dimostrò con una marcia in più. La ricetta di Google Chrome è: velocità, sicurezza e manualità. Nei paragrafi seguenti sono approfonditi gli argomenti.

Sicurezza • Blacklist: Chrome periodicamente scarica gli update per phishing e malware e avvisa gli utenti quando cercano di visitare un sito pericoloso. Questo servizio è inoltre reso disponibile per altri utilizzando una API pubblica. Nel mantenere queste blacklist, Google avvisa anche i proprietari dei siti che potrebbero non essere a conoscenza della presenza di pagine pericolose. • Incognito: È presente la possibilità di aprire schede o finestre nella modalità in incognito che non lascia sul computer nessuna traccia dei siti visitati: non vengono salvati né nella cache, né nella cronologia e vengono eliminati i cookie. Questa funzione non è comunque una novità assoluta: è già stata implementata in Safari, in Microsoft Internet Explorer 8 ed anche nella versione 3.5 di Mozilla Firefox. • Sandboxing: Ogni scheda di navigazione in Chrome è isolata in una "sandbox" in modo che il malware non si possa installare e che non possa compromettere le altre schede. Questi processi inoltre non possono né scrivere file né leggere file da aree importanti come le directory personali dell'utente o il desktop. Google Chrome può inviare informazioni ai suoi produttori ogni volta che si preme un qualsiasi tasto e ogni volta che si scrive nella barra degli indirizzi; questo comportamento è disattivabile grazie a "UnChrome", un programma che cancella l'ID che Google registra durante l'installazione. In alternativa, è stato progettato SRWare Iron, basato su Chrome ma con notevoli miglioramenti, tra i quali l'assenza di comunicazione con server di terzi.

Velocità La virtual machine di Javascript è stata completamente riscritta. Le implementazioni esistenti erano state progettate per piccoli programmi dove le prestazioni e l'interattività non erano così importanti. Ma applicazioni come usano i web browser al massimo, e la nuova virtual machine Javascript (denominata "V8") è estremamente più veloce.

Stabilità Chrome esegue ogni scheda o Plugin in processi separati; questo evita alle varie attività di interferire l'una con l'altra, migliorando sicurezza e stabilità complessiva. In caso di errore bloccante, permette di chiudere la singole scheda interessata dal problema, evitando di chiudere tutto il programma. Chrome contiene un Task Manager che permette di controllare quali siti stanno utilizzando più memoria, banda e cpu e consente di chiuderli. Google Chrome 58

Interfaccia L'interfaccia principale include le icone indietro, avanti, ricarica, preferito e vai. Le opzioni sono simili a Safari, mentre la posizione delle impostazioni è simile ad Internet Explorer 7/8. Chrome includeva (nella versione per Windows) Google che aggiungeva il supporto offline a molte applicazioni web, rimosso poi nella versione 12 per la diffusione dell'HTML5. Quando si crea una nuova scheda viene aperta la Pagina Nuova Scheda. Mostra le miniature degli otto siti più visitati e più cercati, le pagine inserite nei preferiti di recente e le schede chiuse di recente. Una funzione simile è stata introdotta già da Opera. L'Omnibox è la barra degli indirizzi presente sotto l'elenco delle schede; include la funzionalità di autocompletamento ma soltanto di quegli indirizzi che sono stati scritti a mano e non di tutti i link presenti, include inoltre suggerimenti di ricerca, le pagine più visitate, le più popolari (non visitate) e una ricerca nella cronologia. Le finestre Popup sono confinate nella scheda da dove provengono e non appariranno mai al di fuori a meno che l'utente non li trascini fuori intenzionalmente. Le schede sono il componente primario dell'interfaccia utente di Chrome e sono state spostate sopra i comandi invece che sotto come negli altri browser. Le schede possono essere trasferite facilmente in una finestra di Chrome separata semplicemente trascinandole fuori. Le applicazioni web possono essere lanciate nella loro finestra indipendente senza la barra degli indirizzi e ricerche Omnibox e, volendo, partendo da un'icona sul desktop portando la pagina ad assomigliare ad un vero e proprio programma ma non più installato sul proprio PC bensì scaricato dalla rete. Non c'è nessuna barra di stato visualizzata in fondo allo schermo; comunque, quando il mouse passa sopra un link, l'indirizzo viene visualizzato in una piccola finestra in basso a sinistra.

Estensioni Il 9 settembre 2009, Google ha abilitato "extensions" sul canale "Dev", e poi rilasciato alcuni esempi per poter fare testing. Poi, il 23 novembre 2009, Google ha aperto "Chrome's extension gallery" agli sviluppatori, con la promessa di un launch di un public beta a breve. A partire dalla versione 4.0 le estensioni sono abilitate per tutti.

Temi A partire dalla versione 3.0 del browser è possibile installare un tema differente al fine di personalizzare l'interfaccia grafica, scegliendolo dall'apposita galleria [6]. Numerosi artisti di fama internazionale (es. Dolce & Gabbana) hanno ideato alcuni dei temi ufficiali di Google Chrome.

Integrazione con Flash Player A partire dalla versione 5.0 del browser l'estensione Flash Player di Adobe è già integrata.

Lettore PDF integrato A partire dalla versione 8.0 di Chrome, Google ha implementato un lettore PDF nel browser, rimuovendo di fatto l'intermediazione del plug-in di Adobe Reader.

Traduzione Il browser, dalla versione 4.1, integra le funzioni di Google Translate, viene riconosciuta automaticamente la lingua in cui è scritta la pagina web aperta e viene proposta all'utente la possibilità di avere una traduzione automatica dei contenuti in lingue straniere. Chrome per Android si basa sulla stessa architettura multi-processo della versione desktop, oltre che sullo stesso cuore WebKit integrando anche la barra di ricerca universale. Il browser è dotato di Google Chrome 59

una funzione chiamata Preview Link, che ingrandisce automaticamente sui link per permettere una selezione più accurata dei collegamenti su schermi di piccole dimensioni. Presente anche la modalità "Incognito", che permette di navigare in modo anonimo senza salvare i dati della sessione in corso.

Svantaggi Fra le funzioni presenti in altri browser e non ancora implementate: • navigazione offline delle pagine salvate nella cartella cache del programma; • possibilità di organizzare i tab in directory e sottocartelle; • possibilità di salvare tutti gli oggetti di una pagine web in unico file (equivalente al formato.mht di Internet Explorer). Al momento, viene creato un file per il testo e una cartella per tutti gli altri oggetti.

Versione mobile Il 7 febbraio 2012 è stata resa pubblica la beta del browser di Google per Android, compatibile sia con tablet sia con smartphone Android 4.0 Ice Cream Sandwich e porta tante tecnologie della versione desktop in ambito mobile. Velocità, sincronia, privacy e supporto HTML5 sono alcuni dei punti di forza del nuovo software di navigazione. Il browser è dotato di una funzione chiamata Preview Link, che ingrandisce automaticamente sui link per permettere una selezione più accurata dei collegamenti su schermi di dimensioni ridotte. Come per la versione desktop è presente anche la modalità "Incognito".

Cambiamenti rilevanti fra le varie versioni Legenda:

Colore Significato

Rosso Vecchia versione

Verde Attuale versione stabile

Blu Attuale versione beta

Viola Attuale versione dev

Note: • Tutte le versioni supportano Windows. Mac e Linux sono supportati a partire dalla versione 5.0.375. La piattaforma Android 4.0 è supportata a partire dalla versione 0.16.4130.199 (Chrome per Android). • Le vecchie build dev e beta non sono mostrate dopo che vengono rilasciate stabilmente. • Le date (in tutti i colori) sono riferite all'ultima delle release della versione stessa. Clicca "mostra" per espandere la tabella delle release qui sotto. Google Chrome 60

Versione Data di WebKit V8 Sistemi Cambiamenti rilevanti principale rilascio operativi supportati

0.2.149 02/09/2008 522 0.3 Windows • Primo rilascio.

0.3.154 29/10/2008 • Miglioramento delle prestazioni dei plugin. • Controllo ortografico per i campi di input. • Miglioramento delle prestazioni proxy web. • Aggiornamenti sulla gestione delle Schede e Finestre.

0.4.154 24/11/2008 525 • Gestione Preferiti con la novità dell'importazione e dell'esportazione. • Nuova sezione Privacy aggiunta alle opzioni delle applicazioni. • Nuova notifica per i popup bloccati. • Fix di sicurezza.

1.0.154 11/12/2008 528 • Primo rilascio stabile.

2.0.172 24/05/2009 530 0.4 • Aggiunta modalità full-screen. • Aggiunto Modulo per il riempimento automatico. • Javascript migliorato del 35%.

3.0.195 12/10/2009 532 1.2 • Nuova pagina "nuova scheda" per una migliore personalizzazione. • Javascript migliorato del 25%. • I tag video ed audio HTML5 da questa versione sono supportati dal browser.

4.1.249 25/01/2010 532.5 1.3 • Miglioramento dell'interfaccia per le estensioni e per la sincronizzazione dei Preferiti. • Migliorati i Developer Tools (Ispeziona Elemento), un migliore supporto dell'HTML5. • Barra per la Traduzione automatica di Google Translate. • Nuove caratteristiche per la privacy. Google Chrome 61

5.0.375 21/05/2010 533 2.1 Windows • Miglioramento delle prestazioni JavaScript. Mac • Miglioramento della sincronizzazione delle preferenze del browser. Linux • Maggiore supporto HTML5. • Adobe Flash Player integrato. • Questa versione è la prima a supportare tutte e tre le piattaforme, quali Windows, Linux e Mac OS X.

6.0.472 02/09/2010 534.3 2.2 • Migliorata esteticamente l'interfaccia, come la Barra degli indirizzi.

7.0.517 21/10/2010 534.7 2.3.11.22 • Principalmente sono stati corretti centinaia di bug. • La versione per Mac OS X acquisisce AppleScript. • Nuove opzioni per la gestione dei cookie. • Aggiornata la Nuova Scheda per abilitare le applicazioni web.

8.0.552 02/12/2010 534.10 2.4.9.19 • Questa versione aggiunge "about:flags" per mostrare le caratteristiche sperimentali come Chrome Instant, impostazioni delle schede, background di applicazioni web, Remoting, disabilitazione di plug-in obsoleti, Cloud Print Proxy.

9.0.597 03/02/2011 534.13 2.5.9.6 • Aggiunti vari "flags" nella finestra "about:flags", come l'Anteprima di Stampa.

10.0.648 08/03/2011 534.16 3.0.12.30 • Abilitato Google Cloud Print. • La pagina delle Opzioni ora si apre in una scheda, differentemente dalla finestra che veniva mostrata nelle versioni precedenti.

11.0.696 26/04/2011 534.24 3.1.8.16 • Rilevante la modifica dell'icona di Chrome. • Supporta ora lo speech input, il riconoscimento vocale.

12.0.742 07/06/2011 534.30 3.2.10.21 • Il set di icone (Home, Ricarica, Indietro e Avanti) è leggermente cambiato graficamente. • Chrome 12 diventa più leggero. [7] • Il tema di default grigio ha una tonalità minore. • Rimozione di Google Gears. • Accelerazione hardware 3D CSS. Google Chrome 62

13.0.782 02/08/2011 535.1 3.3.10.30 • Abilitata l'anteprima di stampa e la funzione Instant Page, che permette di precaricare le pagine web.

14.0.835 16/09/2011 535.1 3.4.14.21 • Corregge 32 bug. • Porta il supporto completo per il sistema operativo Mac OS X 10.7 "Lion". • Integra nuove API audio e la tecnologia Google Native Client.

15.0.874 25/10/2011 535.2 3.5.10.24 • Modifica la "Nuova Scheda" aggiungendo nuove sezioni, quali Applicazioni, Più Visitati e Bookmark. • Modifica il modo di cancellare le app aggiungendo un cestino virtuale che comparirà al premere dell'applicazione. • Aggiunta la funzione di scaricamento app da altri siti verificati e abilitata [8] l'API JavaScript in fullscreen.

16.0.912 13/12/2011 535.7 3.6.6.5 • Nuova pagina “Nuova Scheda”, con una visuale migliorata, gestione tramite drag & drop. • Nuova API JavaScript da eseguire a schermo intero. • Supporto multi-utente che consente a più persone di usare lo stesso browser e mantenere i dati privati separati.

17.0.963 08/02/2012 535.11 3.7.12.6 • Implementazione di HTTP pipelining. • Cambiato il pulsante "Aggiungi nuova scheda" ora senza il simbolo '+'. • Al passaggio del mouse sulle varie schede non attive vi è un effetto di "scia".

18.0.1025 28/03/2012 535.11 3.8.1 • Colorazione dei menù leggermente modificata. • Miglioramento dell'interfaccia grafica ora più pulita.

19.0.1081 13/03/2012 536.5 3.9.24.1 • Il motore V8 supporta JavaScript Harmony (ECMAScript 6). • Le finestre Incognito aperte non creano più finestre normali extra quando la sessione viene ripristinata. • Uso dello spellchecker online di Google per identificare parole scritte scorrettamente, oltre a fornire suggerimenti, solo per testo incollato. • Nella traduzione di una pagina, la traduzione e il codice sono ricevute via HTTPS. • Ridisegnata l'interfaccia utente delle Impostazioni e della Cronologia.

20.0.1096 10/04/2012 536.6 3.10.0.5 • Attivata la pagina Chrome to Mobile per gli utenti con dispositivi compatibili e registrati. • Aggiunto link al Web Store alla fine della pagina Nuova Scheda.

Note

[1] http:/ / www. google. com/ chrome

[2] Google Chrome, Google’s Browser Project (http:/ / blogoscoped. com/ archive/ 2008-09-01-n47. html). 1º settembre 2008. URL consultato il 1º settembre 2008.

[3] (EN) A fresh take on the browser (http:/ / googleblog. blogspot. com/ 2008/ 09/ fresh-take-on-browser. html)

[4] Chrome Experiments (http:/ / www. chromeexperiments. com)

[5] Browser Statistics (http:/ / www. w3schools. com/ browsers/ browsers_stats. asp)

[6] https:/ / tools. google. com/ chrome/ intl/ it/ themes/ index. html

[7] Chrome si fa più leggero e ha nuove icone (http:/ / www. chromeos. eu/ 2011/ 04/ 21/ chrome-si-fa-piu-leggero-e-ha-nuove-icone/ )

[8] Google Chrome 15 Beta | Chrome OS (http:/ / www. chromeos. eu/ 2011/ 09/ 25/ google-chrome-15-beta/ ) Google Chrome 63

Voci correlate • Google Chrome OS • Chromium • Chrome Web Store

Altri progetti

• Wikimedia Commons contiene file multimediali: http:/ / commons. wikimedia. org/ wiki/ Category:Google Chrome

Collegamenti esterni

• Sito Ufficiale (http:/ / www. google. com/ chrome)

• Estensioni Google Chrome. (https:/ / chrome. google. com/ extensions)

• Sito Ufficiale per gli sviluppatori (http:/ / www. chromium. org)

• Pagina da cui scaricare le versioni di prova (http:/ / dev. chromium. org/ getting-involved/ dev-channel)

• Progetto per effettuare il porting del motore javascript V8 su architetture PowerPC (https:/ / . com/ ic/ v8-)

• Fumetto ufficiale Google Chrome (http:/ / www. google. com/ googlebooks/ chrome/ )

• Sito con alcuni Javascript di esempio per testare la potenza del motore di Chrome (http:/ / www.

chromeexperiments. com)

• Sito italiano dedicato a Chrome (http:/ / www. chromeos. eu/ category/ chrome)

Opera (browser)

Opera

Screenshot di Opera 11.10 su Windows 7 Sviluppatore Opera Software

Ultima versione 11.62 (27 marzo 2012)

Ultima beta 12.00 Beta (Build 1387) (23 aprile 2012)

S.O. Multipiattaforma

Genere Web browser

Licenza (Licenza chiusa)

[1] Sito web opera.com Opera (browser) 64

Opera è un browser web prodotto da Opera Software, disponibile per i sistemi operativi Windows, Macintosh, Linux e molti altri. È uno dei 10 browser più utilizzati[2](maggio 2009). A dicembre 2010 è giunto alla versione 11. Rispetto ai suoi concorrenti, Opera è stato il browser che ha mantenuto più a lungo una politica di vendita. In alternativa all'acquisto della licenza era possibile utilizzarlo gratuitamente, a patto di avere un banner pubblicitario nella finestra del programma. Il 30 agosto 2005 la Opera Software, per festeggiare il decennale del suo browser, ha regalato i seriali di tutte le piattaforme supportate, ma solo a partire dal 20 settembre 2005, con la versione 8.50, Opera è diventato un software completamente gratuito grazie alla rimozione del banner. Opera è nato nel 1994 come progetto di ricerca della Telenor, la più grande compagnia di telecomunicazioni norvegese. Nel 1995 fu fondata la Opera Software ASA, che si dedica da allora al suo sviluppo.[3]

Caratteristiche Oltre ad essere un browser per il web, Opera è anche un client FTP, NNRP per , SMTP per le e-mail (con supporto anti-spam), per BitTorrent (per il quale include una funzionalità di ricerca) e IRC. Storicamente Opera è stato il primo browser a permettere la navigazione di più siti web contemporaneamente in un'unica finestra del programma mediante MDI.[4] La versione 4.0 di Opera introdusse l'interfaccia a schede (il cosiddetto tabbed browsing):[5] pur essendo una tecnica già adottata fin dal 1994[6] Opera ne diffuse la notorietà. È stato il primo browser ad introdurre la funzione di salva sessione corrente e quella di anteprima (in formato "miniatura") dei vari tab, e, a partire dalla versione 11.01, la possibilità di organizzare i tab in cartelle. Opera è disponibile in 44 lingue differenti,[7] e supporta molti sistemi operativi, tra cui Windows, Linux, Macintosh, FreeBSD e Solaris. Come molti altri browser, Opera sfrutta la maggior parte delle specifiche web di nuova implementazione[8], supporta i temi (skins) che possono essere configurati in modo da personalizzare il programma. È possibile personalizzare il programma anche implementando dei pulsanti personalizzati. Per estendere le proprie funzionalità, Opera supporta l'architettura per i plug-in Netscape.

Versioni Riportiamo di seguito l'elenco delle versioni principali di Opera e le maggiori innovazioni introdotte ad ogni release:[9]

• Opera (1.00) - 14 aprile 1994 • Opera (9.00) - 20 giugno 2006 • Interfaccia MDI • Supporto per il tag • Sessioni di navigazione • Supporto per BitTorrent • Opera (2.00) - 22 aprile 1996 • Supera il test Acid2 • Opera (2.10) - 9 dicembre 1996 • Speed dial (dalla versione 9.20 in poi) • Supporto per la versione 3 di HTML • Opera (9.50) - 12 giugno 2008 • Opera (3.00) - 1º dicembre 1997 • Supporto per MathML • Nuovo debugger per gli sviluppatori web • Supporto per Javascript • Supporto per SSL • Opera (10.00) - 1º settembre 2009 • Supporto completo per HTML 2 e parziale per HTML 3.2 • Supera il test Acid3 • Supporto per i plug-in Netscape • Supporto per Web Open Font Format • Opera (3.50) - 18 novembre 1998 • Opera (10.50) - 2 marzo 2010 • Nuovo motore di rendering Elektra • Supporto per CSS3 • Supporto per Java • Supporto per il tag

• Opera (4.00) - 28 giugno 2000 • Supporto per la geolocalizzazione • Interfaccia di navigazione a schede • Supporto per il formato video WebM • Supporto per SSL 2 e 3, CSS1, CSS2, XML, HTML 4.0, HTTP 1.1 • Opera (11.00) - 16 dicembre 2010 • Opera (5.00) - 6 dicembre 2000 • Nuova libreria grafica per il rendering • Prima versione gratuita, supportata da pubblicità inclusa nell'interfaccia grafica • Opera (11.10) - 12 aprile 2011 • Opera (5.10) - 10 aprile 2001 • Migliorata la Modalità Turbo • Gesti del mouse • Plugin di procedura guidata d'installazione • Speed Dial 2.0 • Opera (6.00) - 18 dicembre 2001 • Supporto per HTML 5.0 • Opera (7.00) - 28 gennaio 2003 • Motore di rendering Presto 2.8 • Motore di rendering Presto • Supporto per le nuove estensioni del browser • Client per e-mail completo • Supporto per le cartelle di tab • Supporto per WML 1.3 e 2.0 • Opera (11.11) - 18 maggio 2011 • Opera (7.30) - 23 marzo 2004 • Opera (11.50) - 28 giugno 2011 • Opera (11.60) - 6 dicembre 2011 • Migliorata la gestione mail • Supporto molto più esteso dei tag HTML5 • Minor consumo di memoria • Supporto MathML

• Supporto iniziale per i comandi vocali • Opera (8.00) - 19 aprile 2005 • Supporto per • Supporto per XMLHttpRequest per tecnologia

Peculiarità

Comandi vocali Opera possiede un sistema di riconoscimento vocale e di sintesi vocale integrato. Per quanto riguarda la prima funzione, i comandi vanno pronunciati dopo aver premuto un apposito pulsante, preceduti dalla parola "Opera" (per differenziarli da eventuali comandi vocali supportati dai siti Web visitati). Per quanto riguarda la funzione di sintesi (disponibile solo in lingua inglese), è possibile far pronunciare a Opera il testo selezionato (tramite pulsante o comando vocale), con voce maschile o femminile.

Funzioni avanzate Opera dispone di diverse funzioni per gli utenti esperti e gli sviluppatori. Ad esempio permette di disattivare il caricamento di tutte le immagini o solo di quelle che non sono nella cache; permette di disattivare alcuni o tutti gli elementi grafici di una pagina, fino ad ottenere una rappresentazione simile a quella ottenibile con un browser puramente testuale come Lynx. È possibile anche modificare il codice HTML di una pagina e visualizzare gli effetti della modifica senza salvarlo o ricaricare. Include inoltre un debugger integrato che permette di analizzare le caratteristiche di ogni elemento di una pagina, di visualizzare i tempi di caricamento di ogni componente, il DOM e gli errori degli script. Integra un client torrent e uno di posta elettronica, per ricevere le e-mail da 5 differenti indirizzi. Opera (browser) 66

Modalità turbo A partire da Opera 10 si ha a disposizione la modalità Turbo, la quale esattamente come in comprime i contenuti delle pagine web tramite i server Opera per velocizzarne il download, il che avvantaggia soprattutto le connessioni lente, come modem 56k o GPRS, o le tariffazione a traffico, mentre in presenza di una linea veloce come l'ADSL tale funzione può risultare controproducente.[10][11]

Gesti del mouse Opera implementa una serie di mouse gesture non personalizzabili, attuabili con una combinazione di clic e trascinamenti del puntatore. Eccoli:

Gesti per la navigazione

Azione Come compierla

Vai alla pagina precedente Tenere premuto il tasto destro del mouse e cliccare il sinistro

Tenere premuto il tasto Ctrl e trascinare il mouse a sinistra

Vai alla pagina successiva Tenere premuto il tasto sinistro del mouse e cliccare il destro

Tenere premuto il tasto Ctrl e trascinare il mouse a destra

Vai alla cartella superiore Tenere premuto il tasto Ctrl e trascinare il mouse su e poi a sinistra

Vai alla pagina successiva più probabile Tenere premuto il tasto Ctrl, trascinare il mouse a destra e poi in su

Tenere premuto il tasto Ctrl + Maiusc, trascinare il mouse a destra

Vai alla prima pagina (riavvolgi) Tenere premuto il tasto Ctrl, trascinare il mouse a sinistra e poi giù

Tenere premuto il tasto Ctrl + Maiusc, trascinare il mouse a sinistra

Vai alla home page Cliccare due volte in una scheda vuota

Aggiorna una pagina Tenere premuto il tasto Ctrl e trascinare il mouse su e poi giù

Arresta il caricamento Tenere premuto il tasto Ctrl e trascinare il mouse su

Opera Unite Opera Unite è una tecnologia in grado di trasformare il browser in un server Web personale, che venne rilasciata per la prima volta il 16 giugno 2009. Aggiungendo un server al programma, Opera Unite permette l'uso di diversi servizi come la condivisione di file, chat, visione di video in diretta (streaming) e l'uso di web server.[12] Al rilascio della release stabile di Opera 10.00, Opera Software ha deciso di non implementare Opera Unite nella versione (quando invece era presente nelle prime tre beta) in quanto considerata ancora troppo instabile e poco affidabile. Nel novembre 2009 è stata rilasciata la versione 10.10 stabile (preceduta da una beta) che implementa Opera Unite.

Web mobile Opera è stato sviluppato anche per i dispositivi mobili, con due varianti, che si distinguono per il rendering del web[13]; la popolarità di tale browser ha superato quota 100 milioni di utenti nel febbraio del 2011[14][15]. Opera ha riscosso un notevole successo grazie alla tecnologia SSR (Small Screen Rendering), modalità di rendering predefinita per dispositivi con schermi di 128 pixel di larghezza o meno, che lo rende particolarmente adatto a dispositivi con display di piccole dimensioni. In questa modalità, la pagina viene riformattata in una singola colonna verticale, gli elenchi lunghi e barre di navigazione sono automaticamente compressi (nascondendo la maggior parte della lista o bar) con una caratteristica nota come "contenuto pieghevole" e un segno più (+) viene visualizzato accanto al contenuto compresso, permettendo di accedere al contenuto di tale elenco o barra. In modalità SSR, le Opera (browser) 67

immagini sono ridotte a non più del 70% della dimensione dello schermo in entrambe le direzioni. Gli sviluppatori web possono accendere a Small-Screen Rendering sull'edizione desktop di Opera per vedere come il loro sito web viene mostrato sulle edizioni mobile di Opera.

Opera Mini

Logo di Opera Mini

Quando un utente naviga sul web utilizzando Opera Mini, la richiesta viene inviata tramite la rete mobile ad uno dei server della società Opera Software, che recupera la pagina web, la elabora, la comprime e la invia di nuovo al telefono cellulare dell'utente Opera Mini è un Web browser per cellulari sviluppato in Java ME[16] e disponibile fin dal 24 gennaio 2006[17]. Per permettere la visualizzazione di pagine web complesse su dispositivi dalle capacità computazionali estremamente limitate e il corretto fruimento delle pagine web non pensate per i dispositivi mobili, Opera Mini demanda il rendering delle pagine a un server remoto, che invia il risultato al browser che ne ha fatto richiesta. La pre-elaborazione aumenta anche la compatibilità con le pagine web che non sono progettate per i telefoni cellulari e quindi permette di fruire di quei siti che altrimenti non sarebbero visitabili, come ad esempio in presenza di script complessi: se un tipo di carattere richiesto non è disponibile sul dispositivo, come può essere nel caso dei alfabeti indiani, Hindi e alcuni altri set di caratteri non latini, il contenuto viene inviato in forma di immagine bitmap. Tra le altre caratteristiche, la versione Mini supporta l'apertura di più siti contemporaneamente, il salvataggio delle pagine sulla memoria del cellulare e integra un gestore per i download. Questa versione del browser è compatibile con tutti i dispositivi in grado di supportare J2ME oltre che per Android, BlackBerry, Symbian S60 e .

Opera Mobile

Logo di

Schermata di opera Mobil 11.10 su tablet Android Per il mercato dei dispositivi palmari e dei telefoni cellulari evoluti (smartphone di fascia alta), Opera ha sviluppato questo browser dal 17 febbraio del 2000[18], inizialmente rilasciato solo ad operatori e produttori e solo per apparecchi Psion. Dal 2003 è disponibile per Windows Mobile, ed oggi è possibile utilizzarlo anche sulle piattaforme Android e Symbian; è in sviluppo per i sistemi operativi Maemo, MeeGo e Windows Phone[19]. Tra i maggiori costruttori che hanno deciso di adottare Opera Mobile si ricordano HTC, Nokia, Sony Ericsson, Sharp, Kyocera, Motorola e Sendo. Opera Mobile utilizza il motore di layout Presto e supporta diversi standard web, così come AJAX, HTML5 e Adobe Flash (solo per Android), elaborando le pagine web e le informazioni prelevate direttamente dal web. A partire dalla versione 9.7 si può utilizzare Opera Turbo, funzionalità presente anche nella versione Desktop e Opera (browser) 68

simile al funzionamento di Opera Mini; le pagine web vengono compresse tramite Opera Software "Turbo" server, riducendo così dimensioni del download. Di conseguenza i tempi di caricamento della pagina sono ridotti, riducendo il consumo di larghezza di banda fino all'80%. Con la versione 12 (rilasciata nel 2012) si è introdotto il supporto hardware ed estesa la compatibilità all'HTML5 e WebGL.

Opera per Nintendo DS & Wii Il 15 febbraio 2006 la Nintendo ha reso noto che Opera è disponibile per la piattaforma Nintendo DSi[20]. Il browser Opera per Nintendo DSi è scaricabile con l'applicazione DsiWare. Per accedervi è necessario che la console sia abilitata al Wi-Fi. Il 6 ottobre 2006 Opera ha rilasciato un software per Nintendo DS e Nintendo DS Lite, Nintendo DS Browser, per permettere ai dispositivi di navigare in internet tramite Wi-Fi, ma senza la visualizzazione di contenuti in Flash. Il 22 dicembre 2006 è stata rilasciata una versione di Opera per Nintendo Wii[21]. Questa particolare versione è adattata per il funzionamento su un dispositivo a bassa risoluzione come il televisore: attraverso l'uso dei Wiimote è possibile far scorrere le pagine e ingrandirne i dettagli. Viene fornito un sistema di ricerca rapida e la possibilità di gestire una lista dei preferiti.

Opera e Apple Nel 2011 questo browser è entrato a far parte del Mac App Store, ma con limitazioni peculiari: l'applicazione è riservata solo a un pubblico con più di 17 anni, motivando tale limite con la possibilità di visualizzare contenuti erotici tramite il browser. Tale limite risulta comunque superabile effettuando lo scaricamento dal sito internet di Opera.[22]

Note

[1] http:/ / www. opera. com

[2] W3Counter - Global Web Stats (http:/ / www. w3counter. com/ globalstats. php)

[3] About Opera (http:/ / web. archive. org/ web/ 20071203140601/ http:/ / www. opera. com/ company/ about/ ). Opera Software. URL consultato il 12 Dicembre 2010. (archiviato dall'url originale il 3 Dicembre 2007)

[4] Opera Software. Opera: Opera Version History v. 1.00 (http:/ / www. opera. com/ docs/ history/ #o100)

[5] Opera Software. Opera: Opera Version History v.4.00 (http:/ / www. opera. com/ docs/ history/ #o40),

[6] Microsoft corp.. Supercharge your browsing with tabbed browsing (http:/ / www. microsoft. com/ windows/ ie/ community/ columns/

tabbedbrowsing. mspx)

[7] Opera browser language files (http:/ / www. opera. com/ download/ languagefiles/ ). Opera Software. URL consultato il 12 Dicembre 2010.

[8] Web specifications support in Opera products (http:/ / www. opera. com/ docs/ specs/ productspecs/ )

[9] Opera Software. Opera: Opera Version History (http:/ / www. opera. com/ docs/ history/ #o100)

[10] Opera 10 innesta il Turbo (http:/ / punto-informatico. it/ 2700801/ PI/ News/ opera-10-innesta-turbo. aspx)

[11] Opera Turbo now available for testing (http:/ / labs. opera. com/ news/ 2009/ 03/ 13/ )

[12] Opera Unite (http:/ / help. opera. com/ Windows/ 10. 10/ it/ unite. html)

[13] Opera pensa mobile con Mini 6 e Mobile 11 (http:/ / www. webnews. it/ 2011/ 03/ 23/ opera-pensa-mobile-con-mini-6-e-mobile-11/ )

[14] Opera festeggia i 100 milioni di utenti mobile (http:/ / www. webnews. it/ 2011/ 02/ 11/ opera-festeggia-i-100-milioni-di-utenti-mobile/ )

[15] Opera Mini & Opera Mobile (http:/ / www. opera. com/ mobile/ specs/ )

[16] Opera Software. Opera Mini & Opera Mobile browsers (http:/ / www. opera. com/ mobile/ specs/ )

[17] Opera Officially Launches Mini Browser (http:/ / www. pcworld. com/ article/ 124473/ opera_officially_launches_mini_browser. html)

[18] Timeline Opera Mobile (http:/ / web. archive. org/ web/ 20080625214351/ http:/ / jp. opera. com/ products/ mobile/ brochures/

OperaMobileTimeline. pdf)

[19] Opera Software. Opera Mobile 11 labs release for Maemo, MeeGo and Windows (http:/ / my. opera. com/ operamobile/ blog/ opera-mobile-11-labs-release-for-maemo-meego-and-windows)

[20] Opera Software. Giving gamers two windows to the Web: The Opera Browser for Nintendo DS (http:/ / www. opera. com/ press/ releases/

2006/ 02/ 15/ ) Opera (browser) 69

[21] Opera Software. Play with the Web: Opera browser now available for download on Wii (http:/ / www. opera. com/ press/ releases/ 2006/ 12/

22/ )

[22] Opera, un browser per soli adulti (http:/ / www. webnews. it/ 2011/ 03/ 07/ opera-browser-per-soli-adulti/ )

Voci correlate • Opera Software • My Opera • Geir Ivarsøy

Altri progetti

• Wikimedia Commons contiene file multimediali: http:/ / commons. wikimedia. org/ wiki/ Category:Opera (web browser)

Collegamenti esterni

• Sito ufficiale (http:/ / www. opera. com/ )

• Standard supportati (http:/ / www. opera. com/ docs/ specs/ )

• Traduzioni ufficiali (http:/ / www. opera. com/ download/ languagefiles/ )

• Traduzioni della comunità (http:/ / my. opera. com/ community/ customize/ langs/ ) 70

Server Web

Server web

Un server web è un servizio o tipo di server, e per estensione il computer su cui è in esecuzione, che si occupa di fornire, tramite software dedicato e su richiesta dell'utente (client), file di qualsiasi tipo, tra cui pagine web (successivamente visualizzabili dal browser sul PC dell'utente). Le informazioni inviate dal server web all'utente viaggiano in rete trasportate dal protocollo HTTP. L'insieme di server web dà vita al World Wide Web, uno dei servizi più utilizzati di Internet.

Fotografia del primo server web sviluppato da Descrizione Tim Berners-Lee per il CERN

Normalmente un server web risiede su sistemi hardware dedicati, ma può essere eseguito su un computer ove risiedano anche altri servizi offerti o su PC utilizzati anche per altri scopi, previa l'installazione del relativo pacchetto software dedicato. Ad esempio si può installare un server web su un normale personal computer allo scopo di testare in locale il proprio sito web oppure per consentire l'accesso ai propri documenti da altre postazioni o terminali host, sia in LAN, sia via Internet.

Elenco dei server web (software) più diffusi • Apache HTTP Server (sviluppato dalla Apache Software Foundation) • Apache Tomcat (sviluppato dalla Apache Software Foundation) • Internet Information Services (IIS, sviluppato da Microsoft) • lighttpd • • Sun ONE (di ) • Zeus Web Server (sviluppato da Zeus Technology) • ColdFusion (di Macromedia, ora acquisita da Adobe) • NCSA HTTPd • HTTP File Server • PowerFolder (necessita di JRE) • Cassini Server Web Apache HTTP Server 71 Apache HTTP Server

Apache HTTP Server

Sviluppatore Apache Software Foundation

Ultima versione 2.4.1 (21 febbraio 2012)

S.O. Multipiattaforma

Genere Web server

Licenza Apache License (Licenza libera)

Sito web https:/ / httpd. apache. org

Apache HTTP Server, o più comunemente Apache (IPA pronuncia: /əˈpætʃi/), è il nome dato alla piattaforma server Web modulare più diffusa (ma anche al gruppo di lavoro open source che ha creato, sviluppato e aggiornato il software server), in grado di operare da sistemi operativi UNIX/Linux e Microsoft. Apache è un software che realizza le funzioni di trasporto delle informazioni, di internetwork e di collegamento, ha il vantaggio di offrire anche funzioni di controllo per la sicurezza come quelli che compie il proxy.

Storia Il progetto Apache nacque nel 1995. A quel tempo, il server Web più diffuso era il daemon HTTP pubblico sviluppato da Rob McCool al NCSA (National Center for Supercomputing Application), Università dell'Illinois. Dal momento però che a partire dal 1994 lo sviluppo di questo server si era fermato (anche perché il suo autore aveva lasciato l'NCSA) un gruppo di webmaster aveva iniziato a sviluppare patch in maniera autonoma. Fu creata una mailing list e verso la fine di febbraio del 1995 si costituì il primo gruppo di lavoro dell'Apache Group. Otto persone (Brian Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau, Andrew Wilson) presero come punto di partenza la versione 1.3 del demone HTTP NCSA e aggiunsero una serie di patch e di correzioni. La prima release pubblica di Apache, la 0.6.2, venne rilasciata nell'aprile del 1995. Il nome Apache, secondo la leggenda, nasce dal fatto che inizialmente il server era semplicemente una raccolta di patch da applicare al server NCSA. Dal nome amichevole "a patchy server" sarebbe quindi nato Apache. In realtà, il nome fu scelto in onore della tribù di nativi americani Apache, come riportano le domande frequenti [1] sul sito ufficiale del progetto. Una nuova architettura server fu integrata poco dopo nella versione 0.8.8 a cui fu dato il nome in codice di Shambala. La versione 1.0 fu pubblicata il 1º dicembre 1995. Nel giro di un anno, la sua diffusione aveva già superato quella del server NCSA da cui era derivato. La versione 2.0 di Apache venne rilasciata durante la conferenza ApacheCon, tenutasi nel marzo 2000 a Orlando, in Florida. Il grande successo di diffusione di questo software è l'indicatore più chiaro della qualità e dell'affidabilità di questo prodotto: secondo un'indagine Netcraft [2] del 2005, su 75 milioni di siti web, circa 52 milioni utilizzavano Apache, ad ottobre 2006 il numero è salito a 60 milioni (69,32% del totale). Operativamente, è composto da un demone, in ambiente UNIX, o da un servizio, in ambiente Microsoft, che sulla base delle impostazioni contenute nel file di configurazione httpd.conf permette l'accesso a uno o più siti, gestendo varie caratteristiche di sicurezza e potendo ospitare diverse estensioni per pagine attive (o dinamiche), come PHP o Jakarta/Tomcat. Apache HTTP Server 72

Architettura apache Il Web Server Apache presenta un'architettura modulare, quindi ad ogni richiesta del client vengono svolte funzioni specifiche da ogni modulo di cui è composto, come unità indipendenti. Ciascun modulo si occupa di una funzionalità, ed il controllo è gestito dal core. I moduli: • Core: programma principale composto da un ciclo sequenziale di chiamate ai moduli. • Translation: traduce la richiesta del client • Acces Control: controlla eventuali richieste dannose • MIME Type: verifica il tipo di contenuto • Response: invia la risposta al client e attiva eventuali procedure • Logging: tiene traccia di tutto ciò che è stato fatto Il core suddivide la richiesta ai vari In linea continua il flusso dei dati realeTratteggiato il flusso dei dati astratto che forma la moduli in modo sequenziale, usando i pipeline parametri di uscita di un modulo come parametri di accesso per l'altro, creando così l'illusione di una comunicazione orizzontale fra i moduli (Pipeline software). Sopra il ciclo del core c'è un ulteriore ciclo di polling svolto da un demone che interroga continuamente le linee logiche da cui possono pervenire messaggi di richiesta.

Configurare apache

File httpd.conf Gli amministratori del server possono usare il file httpd.conf, che è situato nella subdirectory conf della directory indicata durante la installazione. Questo file mette a disposizione tutta la libertà offerta dal server, quindi aggiungere moduli, estensioni, nuovi -type ed altro ancora. Per esempio se si volesse aggiungere un modulo bisognerebbe usare questa sintassi:

LoadModule nome_modulo percorso_del_file Apache HTTP Server 73

File di configurazione .htaccess Il file .htaccess permette una ulteriore personalizzazione del webserver a livello di directory. È utilizzato in particolar modo nell'hosting condiviso, per modificare le impostazioni standard fornite dal server stesso.

Voci correlate • Apache Mobile Filter

Altri progetti

• Wikimedia Commons contiene file multimediali: http:/ / commons. wikimedia. org/ wiki/ Category:Apache HTTP Server

Collegamenti esterni [3] • (EN) Sito ufficiale della Apache Software Foundation [4] • (EN) Sito ufficiale del progetto Apache HTTP Server • Configurazione dei Virtual Hosts con Apache2 [5] • Guida completa sulla configurazione dei Virtual Hosts con Apache2 [6] • Mini guida alle espressioni regolari con Apache [7] • 5 tips su htaccess che ogni Webmaster dovrebbe conoscere [8]

Note

[1] http:/ / www. apache. org/ foundation/ faq. html#name

[2] http:/ / news. netcraft. com/

[3] https:/ / www. apache. org/

[4] https:/ / httpd. apache. org/

[5] http:/ / www. oscene. net/ site/ sysadmin/ web-server/ howto-configurazione-dei-virtual-hosts-con-apache2

[6] http:/ / www. compago. it/ index. php/ manuali/ 35-utilita/ 190-configurazione-web-server-apache-virtual-host

[7] http:/ / www. compago. it/ index. php/ manuali/ 35-utilita/ 192-espressioni-regolari-con-apache

[8] http:/ / read. melodycode. com/ news/ 406/ 5_tips_su_htaccess_che_ogni_webmaster_dovrebbe_conoscere. html XAMPP 74 XAMPP

XAMPPP

Sviluppatore Kai 'Oswald' Seidler - Kay Vogelgesang

Ultima versione 1.7.7 (21 settembre 2011)

S.O. Multipiattaforma

Genere Ambienti di sviluppo web/database

Licenza GPL (Licenza libera)

Sito web http:/ / www. apachefriends. org

XAMPP è un pacchetto software gratuito contenente Apache HTTP Server, il database MySQL e tutti gli strumenti necessari per utilizzare i linguaggi di programmazione PHP e Perl. Il nome è un acronimo dei programmi sopra citati (la X sta per cross-platform).

Descrizione Il programma è rilasciato sotto la GNU General Public License ed è un utile web server, gratuito e caratterizzato da un approccio user friendly. Mediante XAMPP è possibile avere un application server capace di interpretare pagine web dinamiche PHP. Ottenendo un dominio dns, si può, se il computer è connesso, accedere alle pagine web. Attualmente, XAMPP è disponibile per Windows, GNU/Linux, Sun Solaris e Mac OS X. Può essere installato anche su un dispositivo esterno USB. Esiste una versione "Lite" comprensiva dei componenti sotto indicati (simili ai prodotti concorrenti) e una versione "Basic" che comprende altre caratteristiche complementari.

Componenti I componenti di base sono: • Il web server: Apache HTTP Server; • Il database management system (o database server): MySQL e SQLite; • Il server FTP: ProFTPD; • Il mail server: Mercury Mail Transport System (solo per Windows); • I linguaggi di scripting: Perl, PHP e/o Python. XAMPP 75

Voci correlate • LAMP • WAMP • MAMP • EasyPHP

Altri progetti

• Wikimedia Commons contiene file multimediali: http:/ / commons. wikimedia. org/ wiki/ Category:XAMPP

Collegamenti esterni • Sito ufficiale [1] [2] • (EN) Progetto su Sourceforge

Note

[1] http:/ / www. apachefriends. org/ it/ xampp. html

[2] http:/ / . net/ projects/ xampp/ 76

Linguaggi Usati

HTML

HTML

Estensione .html, .htm, .shtml, .shtm Tipo MIME text/html Sviluppato da W3C Tipo Linguaggio di markup Estensione di SGML Esteso a XHTML Standard ISO/IEC 15445

In informatica l'HyperText Markup Language (HTML) (traduzione letterale: linguaggio a marcatori per ipertesti) è il linguaggio solitamente usato per i documenti ipertestuali disponibili nel World Wide Web. In tali documenti, un tratto di testo può essere contrassegnato inserendo delle etichette, tag, che ne possono descrivere tra le altre cose la funzione, il colore, il link o altre caratteristiche. Il contenuto servito dai siti web in seguito a una richiesta dell'utente solitamente consiste di un documento HTML ed dai file ad esso correlati che un web browser scarica da uno o più web server per elaborarli, interpretando il codice, al fine di generare la visualizzazione della pagina desiderata sullo schermo del computer. L'HTML non è un linguaggio di programmazione (in quanto non prevede alcuna definizione di variabili, strutture dati, funzioni, strutture di controllo) ma solamente un linguaggio di markup che descrive le modalità di impaginazione, formattazione o visualizzazione grafica (layout) del contenuto, testuale e non, di una pagina web attraverso tag di formattazione. Tuttavia, l'HTML supporta l'inserimento di script e oggetti esterni quali immagini o filmati. Punto HTML (.html) o punto HTM (.htm) è anche l'estensione comune per riconoscere i documenti in questo formato. HTML 77

Descrizione generale

L'HTML è un linguaggio di pubblico dominio la cui sintassi è stabilita dal World Wide Web Consortium (W3C), e che è basato su un altro linguaggio avente scopi più generici, l'SGML. È stato sviluppato verso la fine degli anni ottanta da Tim Berners-Lee al CERN di Ginevra assieme al noto protocollo HTTP che supporta invece il trasferimento di documenti in tale formato. Verso il 1994 ha avuto una forte diffusione in seguito ai primi utilizzi commerciali del web.

Nel corso degli anni, seguendo lo sviluppo di Internet, l'HTML ha subito molte revisioni, ampliamenti e miglioramenti, Un esempio di codice HTML con sintassi evidenziata. Questa funzione viene che sono stati indicati secondo la classica solitamente eseguita da un editor di pagine web o da alcuni browser, come ad numerazione usata per descrivere le esempio Mozilla Firefox. versioni dei software. Attualmente l'ultima versione disponibile è la versione 4.01, resa pubblica il 24 dicembre 1999. Dopo un periodo di sospensione, in cui il W3C si è focalizzato soprattutto sulle definizioni di XHTML (applicazione a HTML di regole e sintassi in stile XML) e dei fogli di stile (CSS), nel 2007 è ricominciata l'attività di specifica con la definizione, ancora in corso, di HTML5, attualmente allo stato di bozza all'ultima votazione.

Un'ulteriore ed importante caratteristica di HTML è che esso è stato concepito per definire il contenuto logico e non l'aspetto finale del documento. I dispositivi che possono accedere ad un documento HTML sono molteplici e non sempre dotati di potenti capacità grafiche. Proprio per questo gli sviluppatori di HTML hanno optato per un linguaggio che descrivesse dal punto di vista logico, piuttosto che grafico il contenuto dei documenti. Questo significa che non esiste alcuna garanzia che uno stesso documento venga visualizzato in egual modo su due dispositivi. Se da una parte questo ha imposto in passato dei forti limiti agli sviluppatori di pagine Web, ha dall'altro garantito la massima diffusione di Internet ed evitato che essa diventasse un medium di élite. Attualmente i documenti HTML sono in grado di incorporare molte tecnologie, che offrono la possibilità di aggiungere al documento ipertestuale controlli più sofisticati sulla resa grafica, interazioni dinamiche con l'utente, animazioni interattive e contenuti multimediali. Si tratta di linguaggi come CSS, JavaScript e jQuery, XML, JSON, o di altre applicazioni multimediali di animazione vettoriale o di streaming audio o video. Al giorno d'oggi molti web designer delegano la scrittura del codice HTML ad applicazioni specifiche, come per esempio i cosiddetti editor WYSIWYG che permettono al designer di occuparsi dell'aspetto grafico finale della pagina mentre il codice vero e proprio viene generato automaticamente. Gli sviluppatori puri preferiscono invece utilizzare direttamente il codice HTML, in modo da avere un maggior controllo sul risultato finale e sulla pulizia del codice scritto, cosa che gli editor WYSIWYG odierni nonostante siano sempre più avanzati non possono sempre garantire. HTML 78

Accesso via Internet I documenti HTML vengono immagazzinati di solito sui dischi rigidi di macchine elaboratrici (computer-server) costantemente collegate alla rete Internet. Su queste macchine è installato un software specifico detto web server che si occupa di produrre e inviare i documenti ai browser degli utenti che ne fanno richiesta usando il protocollo HTTP per il trasferimento dati. Spesso il documento HTML viene generato del tutto o parzialmente tramite un codice eseguibile residente sul server Internet in grado di interagire con altre applicazioni presenti sul server stesso, come per esempio un database, e inviare poi al browser il risultato finale, realizzando le cosiddette pagine dinamiche con cui un utente può compiere operazioni interattive avanzate (per esempio, filtrare gli articoli all'interno di un catalogo on-line). È il caso dei documenti scritti in linguaggi come ASP, PHP o Perl.

Elementi sintattici Ogni documento ipertestuale scritto in HTML deve essere contenuto in un file, la cui estensione è tipicamente .htm o .html. L'esistenza di un'estensione htm dipende dal fatto che, all'epoca, il sistema operativo MS-DOS non permetteva di utilizzare estensioni superiori ai 3 caratteri. Il componente principale della sintassi di questo linguaggio è l'elemento, inteso come struttura di base a cui è delegata la funzione di formattare i dati o indicare al browser delle informazioni. Ogni elemento è racchiuso all'interno di marcature dette tag, costituite da una sequenza di caratteri racchiusa tra due parentesi angolari, cioè i segni minore e maggiore (Esempio:
; il tag di questo esempio serve per indicare un ritorno a capo). Quando il tag deve essere applicato a una sezione di testo o di codice, l'ambito di applicazione deve essere delimitato fra un tag di apertura ed uno di chiusura (chiusura esplicita), che coincide col tag di apertura preceduto da una barra (/) dopo la parentesi angolare aperta (Esempio: testo testo testo. In questo caso, il testo compreso tra questi due tag verrà visualizzato in grassetto dal browser). Alcuni tag presentano un'applicazione puntuale, come per esempio il tag che serve per inserire un'immagine in un determinato punto della pagina, e in quanto tali non richiedono il tag di chiusura; in questo caso si parla di tag a chiusura implicita. In XHTML, invece, la chiusura implicita è proibita e tutti i tag devono essere sempre chiusi esplicitamente tramite un tag di chiusura o, nel caso dei tag puntuali, usando il carattere '/' alla fine del tag stesso (per esempio
). Per questi tag, i browser sono in grado di accettare entrambe le modalità, per motivi di compatibilità. HTML 79

Struttura di un documento HTML

Un documento HTML comincia con l'indicazione della definizione del tipo di documento (Document Type Definition o DTD), la quale segnala al browser l'URL delle specifiche HTML utilizzate per il documento, indicando quindi, implicitamente, quali elementi, attributi ed entità si possono utilizzare e a quale versione di HTML si fa riferimento. Di fatto, questa informazione serve al browser per identificare le regole di interpretazione e visualizzazione appropriate per lo specifico documento. Questa definizione deve pertanto precedere tutti i tag relativi al documento stesso.

Dopo il DTD, il documento HTML presenta una struttura ad albero annidato, composta da sezioni delimitate da tag opportuni che al loro interno contengono a loro volta sottosezioni più piccole, sempre delimitate da tag. La struttura più esterna è quella che delimita l'intero documento, eccetto la DTD, ed è compresa tra i tag e . Struttura generale di un documento HTML. All'interno dei tag lo standard prevede sempre la definizione di due sezioni ben distinte e disposte in sequenza ordinata: • la sezione di intestazione o header, delimitata tra i tag e , che contiene informazioni di controllo normalmente non visualizzate dal browser, con l'eccezione di alcuni elementi • la sezione del corpo o body, delimitata tra i tag e , che contiene la parte informativa vera e propria, ossia il testo, le immagini e i collegamenti che costituiscono la parte visualizzata dal browser. Al di sotto di questa suddivisione generale, lo standard non prevede particolari obblighi per quanto riguarda l'ordine e il posizionamento delle ulteriori sottosezioni all'interno dell'header o del body, a parte l'indicazione del rispetto dei corretti annidamenti (le sottosezioni non si devono sovrapporre, ossia ogni sottosezione deve essere chiusa prima di iniziare la sottosezione successiva), lasciando così completa libertà allo sviluppatore o al progettista per quanto riguarda la strutturazione e l'organizzazione successive.

I tag

Tag head I tag utilizzati nella sezione header sono tipicamente di tipo diverso da quelli utilizzati nella sezione body, essendo destinati a scopi differenti. I tag utilizzati nella sezione header normalmente non vengono visualizzati dal browser ma servono come informazioni di controllo e di servizio quali: • per convogliare informazioni utili ad applicazioni esterne (es. motori di ricerca) o al browser (es. codifica dei caratteri, utile per la visualizzazione di alfabeti non latini) • metadata di tipo http-equiv per controllare informazioni aggiuntive nel protocollo HTTP • collegamenti verso file di servizio esterni (CSS, script, icone visualizzabili nella barra degli indirizzi del browser) • inserimento di script (codice eseguibile) utilizzati dal documento HTML 80

• informazioni di stile (CSS locali) • il titolo associato alla pagina e visualizzato nella finestra principale del browser

Tag del body All'interno della sezione di body, che racchiude la parte visualizzabile del documento, si utilizzano i tag specifici previsti per la formattazione dei contenuti accessibili all'utente finale, ossia per il controllo di: • intestazioni (titoli di capitoli, di paragrafi eccetera) • strutture di testo (testo indentato, paragrafi, eccetera) • aspetto del testo (grassetto, corsivo, eccetera) • elenchi e liste (numerate, generiche, di definizione) • tabelle • moduli elettronici (campi compilabili dall'utente, campi selezionabili, menu a tendina, pulsanti eccetera) • collegamenti ipertestuali e ancore • layout generico del documento • inserimento di immagini • inserimento di contenuti multimediali (audio, video, animazioni eccetera) • inserimento di contenuti interattivi (script, applicazioni esterne) Tra quelli elencati sopra, il tag è quello che gioca un ruolo chiave in quanto descrive un collegamento (o link) a un altro documento ipertestuale e consente, con un click del mouse o con un'operazione da tastiera, di abbandonare la pagina o il sito che si sta visualizzando e caricare quella indicata dal link, realizzando così la funzione di navigazione tipica dell'uso di Internet.

Voci correlate • Document Type Definition • Elemento HTML • HTML5 • HTML Tidy • XHTML • Applicazione HTML • CSS

Altri progetti

• Wikibooks contiene testi o manuali: http:/ / it. wikibooks. org/ wiki/ Linguaggio HTML

• Wikimedia Commons contiene file multimediali: http:/ / commons. wikimedia. org/ wiki/ Category:HTML

• Wikizionario contiene la voce di dizionario: http:/ / it. wiktionary. org/ wiki/ HTML

Collegamenti esterni [1] • (EN) Specifiche ufficiali HTML del World Wide Web Consortium (W3C) • Guida HTML [2] • Guida e tutorial HTML [3] • Tabella di tutti i Caratteri Speciali HTML [4] [5] [6] • HTML su Open Directory Project ( Segnala su DMoz un collegamento pertinente all'argomento "HTML") HTML 81

Note

[1] http:/ / www. w3. org/ html/

[2] http:/ / . html. it/ guide/ leggi/ 51/ guida-html

[3] http:/ / www. webmasterpoint. org/ programmazione/ html/

[4] http:/ / www. caratterispecialihtml. com/

[5] http:/ / www. . org/ World/ Italiano/ Computer/ Formato_Dati/ Linguaggi_di_Marcatura/ Html/

[6] http:/ / www. dmoz. org/ cgi-bin/ add. cgi?where=World/ Italiano/ Computer/ Formato_Dati/ Linguaggi_di_Marcatura/ Html/ CSS 82 CSS

Cascading Style Sheets

Estensione . Tipo MIME text/css Sviluppato da W3C 1º rilascio 17 dicembre 1996

[1] Sito web www.w3.org/TR/CSS

Il CSS (Cascading Style Sheets o Fogli di stile) è un linguaggio usato per definire la formattazione di documenti HTML, XHTML e XML. Le regole per comporre il CSS sono contenute in un insieme di direttive (Recommendations) emanate a partire dal 1996 dal W3C. L'introduzione del CSS si è resa necessaria per separare i contenuti dalla formattazione e permettere una programmazione più chiara e facile da utilizzare, sia per gli autori delle pagine HTML che per gli utenti.

Motivi ed evoluzione dei CSS

Prima dei CSS Una pagina web è formata fondamentalmente da due elementi: i contenuti veri e propri e la formattazione ovvero l'aspetto con cui i contenuti sono mostrati all'utente. Il linguaggio HTML (e la sua evoluzione XHTML) ha come scopo quello di gestire i contenuti associandone o specificandone allo stesso tempo la struttura grafica (layout) all'interno della pagina web da realizzare grazie all'utilizzo di tag diversi. Ogni tag (ad esempio

o

) specifica un diverso ruolo dei contenuti che esso contrassegna (quindi il tag

definirà un'importanza maggiore del tag

). I browser che interpretano il codice (X)HTML mostrano all'utente formattazioni predefinite per ogni tag che incontrano (così ad esempio i contenuti marcati con il tag

avranno carattere 18pt e i contenuti marcati da

avranno carattere 12pt). Tuttavia questa formattazione è completamente sotto il controllo dell'utente, che può modificarla nelle Impostazioni del suo browser. Per permettere agli autori di definire l'aspetto delle loro pagine, dal 1993 in poi Netscape Navigator ed Internet Explorer, i due browser che si disputavano gli utenti nella nota guerra dei browser, presentarono tag proprietari, CSS 83

ovvero non aderenti agli standard e non compatibili con i browser concorrenti. Un esempio di questi tag è che va a definire il font. Questi tag proprietari di formattazione erano l'unico modo per gli autori di definire la formattazione e così il loro uso è diventato massiccio. Tuttavia questi tag presentano tre problemi: 1. Il primo problema è costituito dalla lunghezza di questi tag. Se confrontata con una pagina che adotta il linguaggio CSS, una pagina che non lo adotta è in genere più pesante (in termini di bit) in un rapporto che spesso raggiunge il 200%. Inoltre le istruzioni CSS possono essere raccolte in un file esterno che rimane memorizzato nella cache del browser, riducendo ulteriormente la quantità di dati che i server devono trasmettere. 2. Il secondo problema risiede nella mancanza di logica del codice (X)HTML. Un codice non aderente agli standard, ridondante e confuso comporta infatti molto lavoro aggiuntivo per i browser, che devono cercare di correggere ed interpretare (quando possibile) direttive arbitrarie. 3. Il terzo problema comincia a diventare sempre più rilevante ed è la mancanza di compatibilità con i nuovi computer palmari e gli smartphone. Queste pagine infatti sono progettate per schermi con risoluzione minima 800x600 pixel. I palmari, che hanno una risoluzione inferiore ed una forma dello schermo ben diversa dal rapporto 4:3 dei monitor per computer, si trovano quindi impossibilitati a visualizzare correttamente la pagina e l'utente dovrà tentare di "decodificarla", operazione spesso molto scomoda. Si tende ad evidenziare anche un'ulteriore questione, nelle pagine web non standard, ovvero l'uso del tag

(le tabelle) per realizzare l'impaginazione delle pagine web. Questo viene considerato dai puristi come inaccettabile in quanto le tabelle sono pensate per impaginare dati tabulari e non layout web. Oltre a questo, l'uso delle tabelle comporta anche svantaggi pratici: aumento del peso delle pagine, come già indicato al problema 1, e peggioramento dell'accessibilità, in quanto l'ordine logico dei dati può dover essere sacrificato per motivi di layout. Nonostante tutto, alcuni sostengono l'uso delle tabelle per la loro maggior facilità di implementazione.

CSS 1 Per tentare di risolvere questa situazione, nel 1996 il W3C emanò le specifiche CSS 1. I CSS 1 erano un interessante sistema per separare contenuto da formattazione. La base di questo linguaggio, infatti, consisteva nel fatto che il contenuto sarebbe stato sempre definito dal codice (X)HTML, mentre la formattazione si sarebbe trasferita su un codice completamente separato, il CSS appunto. I richiami tra i due codici venivano effettuati tramite due particolari attributi: class e ID. Queste specifiche: 1. Erano un'efficace soluzione al primo problema (escludendo la questione del tag

) perché riducevano notevolmente le dimensioni della pagine. 2. Risolvevano il secondo in modo parziale perché consentivano al codice (X)HTML di ritornare in gran parte semplice ed essenziale, ma presentavano qualche mancanza che costringeva a ricorrere ai tag HTML. 3. Non prendevano però in considerazione il terzo, dato che nel 1996 i PDA (i palmari) erano scarsamente diffusi. I CSS 1 sviluppavano un'idea semplice ma efficace, ma nonostante le loro grandi potenzialità non ebbero successo a causa della mancanza di browser in grado di supportarli.

CSS 2 e CSS 2.1 Per includere nuove funzionalità e rendere i CSS un linguaggio ben supportato, nel 1998 il W3C emanò le specifiche CSS 2 e nel 2004 le specifiche CSS 2.1. I CSS 2 sono la naturale evoluzione dei CSS 1 ed offrono potenti soluzioni per risolvere soprattutto il problema tre, con la possibilità di creare fogli di stile separati per i dispositivi portatili. Anche il problema due è ormai pienamente risolvibile, scrivendo una pagina (X)HTML esclusivamente indirizzata alla struttura e ai contenuti e manovrandola poi esclusivamente con i CSS per impaginarla. Con la comparsa di Internet Explorer 5, di Firefox e di Opera 7, i CSS 2 hanno potuto avvalersi di browser in grado di interpretarli e sono quindi entrati a far parte del codice di molti siti web. CSS 84

CSS 3 Le specifiche CSS 3 non sono state ancora pubblicate, sebbene il W3C pubblichi costantemente informazioni [2] sulle novità in fase di sviluppo. I CSS 3 dovrebbero presentare soluzioni per la correzione di alcuni bug di interpretazione di Internet Explorer, migliorie nella gestione degli sfondi e una soluzione per realizzare i bordi arrotondati la cui realizzazione affligge i webdesigner da tempo.

Il codice CSS

Inserire il codice L'inserimento di codice CSS nelle pagine web può essere effettuato in tre modi: • Inserendo nel tag della pagina in codice HTML un collegamento ad un foglio di stile esterno, cioè un file contrassegnato dall'estensione .css come negli esempi seguenti, tramite il tag link o tramite la direttiva import, che può essere utilizzata anche negli stessi file .css per collegare più file tra loro:

Esempio

oppure

Esempio

• Inserendo, sempre all'interno dell' tra gli specifici tag le dichiarazioni css.

Esempio

• Inline all'interno degli elementi

... CSS 85

Una regola CSS Le regole CSS sono strutturate secondo il seguente schema (gli spazi sono tutti facoltativi):

selettore { proprietà1 : valore1; proprietà2 : valore2, valore3; }

Gli elementi sono illustrati di seguito.

Selettori

Selettori di tipo I selettori di tipo applicano la regola a tutti gli elementi della pagina del tipo determinato. Esempi:

body { [...] }

o

p { [...] }

Classi Le classi applicano la regola a tutti gli elementi della pagina che presentano la proprietà class="nome_classe". La sintassi CSS è la seguente:

.nome_classe { [...] }

Identificatori Gli identificatori (comunemente ID) applicano la regola a quell'elemento della pagina che presenta la proprietà id="nome_identificatore". Gli ID contraddistinguono elementi unici. La sintassi CSS è la seguente:

#nome_identificatore { [...] }

Pseudoclassi Le pseudoclassi identificano elementi in base alle loro proprietà. • first-child individua un elemento solo se è il primo figlio dell'elemento padre. Così quindi

p:first-child { [...] }

individuerà nel codice (X)HTML sottostante solo il primo paragrafo. CSS 86

Lorem ipsum

Lorem ipsum

Lorem ipsum

• link e visited si applicano ai collegamenti. La prima identifica i collegamenti non visitati, la seconda quelli visitati. La sintassi CSS è:

a:link { [...] }

• active, focus e hover identificano gli elementi solo in particolari condizioni, la prima se l'elemento è attivo, la seconda se è selezionato, la terza se il puntatore è sopra di lui. Quindi

p:hover { [...] }

si applicherà solo se il puntatore del mouse andrà sopra un paragrafo e solo per il tempo che vi rimarrà. • lang si utilizza per identificare gli elementi di una certa lingua ma il suo supporto è esiguo.

Pseudoelementi Gli pseudoelementi identificano solo una parte di un elemento, senza la necessità di utilizzare la marcatura (X)HTML. • first-line individua solo la prima linea di un paragrafo. Se la finestra del browser cambia dimensione si adatterà automaticamente alla nuova dimensione della linea. La sintassi CSS è la seguente:

p:first-line { [...] }

• first-letter individua solo il primo carattere di un elemento. • before e after sono due pseudoclassi utilizzate nella creazione dei contenuti generati. Non individuano un elemento, ma una posizione dove creare i contenuti. Sono poco utilizzate, dato il mancato supporto di Internet Explorer.

Selettore di discendenza, figlio e fratello Identificano solamente gli elementi che si trovino in una particolare condizione di discendenza nella struttura (X)HTML della pagina. • Il selettore di discendenza identifica solo gli elementi contenuti in altri elementi. Così

p span { [...] }

identifica solo gli elementi contenuti in elementi

. • Il selettore figlio identifica invece solo gli elementi che siano contenuti direttamente nell'elemento padre. Così CSS 87

div > p { [...] }

individua solo i

contenuti direttamente in un

. • Il selettore fratello identifica il primo elemento immediatamente successivo ad un altro con cui condivida lo stesso padre. Così

h1 + p { [...] }

individua solo il primo

fratello di

Selettore di attributi Il selettore di attributi permette, tramite la sintassi che segue, di identificare elementi (X)HTML in base ai loro attributi.

a[title=Esempio]{ [...] }

Questa regola si applica solo agli elementi che presentano l'attributo title="Esempio". I selettori di attributi sono molti e permetterebbero un controllo eccellente della pagina, ma Internet Explorer non li supporta ed il loro uso è quindi molto limitato.

Proprietà Le proprietà CSS sono molto numerose, circa 60. Le più utilizzate sono: • background. Definisce lo sfondo di un elemento. È una scorciatoia (shorthand properties) per background-attachment, background-color, background-image, background-position e background-repeat. • border. Definisce il bordo di un elemento. È una scorciatoia (shorthand properties) per 'border-color, border-style e border-width. • color. Definisce il colore del testo di un elemento. Per definire lo sfondo si utilizza la proprietà background. • float. Questa proprietà definisce un blocco flottante, ovvero che permette la disposizione di altri elementi ai suoi lati. • font. Definisce le proprietà del carattere. È una scorciatoia (shorthand properties) per font-family, font-size e font-weight. • margin e padding. Definiscono lo spazio circostante gli elementi. La prima lo spazio esterno ai bordi, la seconda quello interno. • text-align. Definisce l'allineamento degli elementi, tra cui il testo. CSS 88

Valori Se non specificata, una proprietà assume i valori predefiniti di ogni browser, o in seconda istanza lo stile utente scelto, altrimenti può assumere uno dei seguenti: • inherit • auto • numero • percentuale • colore • URI • font • altri valori tipici di ogni proprietà La stringa inherit specifica che la proprietà deve ereditare il valore dagli elementi da cui l'elemento discende. La stringa auto ha significati molto diversi a seconda della proprietà a cui viene assegnata. Se i numeri sono contraddistinti da un'unità di misura è necessario che tale unità sia espressa (tranne che nel caso dello zero). Tra il numero e l'unità non devono esserci spazi, come nell'esempio che segue.

p { margin : 5px; border: 1em; padding: 0; }

I colori possono essere indicati con più di un sistema. Ad esempio il colore arancione può essere indicato con

#ff6600 #f60 rgb(255,102,0) rgb(100%,40%,0%)

L'URL viene indicato nelle forme

url(http://esempio.it/file.html) url("http://esempio.it/file.html")

I CSS permettono di indicare nella proprietà font-family più di un font, o una famiglia di font (serif e sans). In questo modo il browser utilizzerà il primo che troverà installato sul sistema operativo. La dichiarazione utilizza questa sintassi:

p { font-family : "Arial", "Verdana", serif; } CSS 89

Browser e CSS Il supporto completo e corretto delle specifiche CSS non è offerto da nessun browser attuale. Tuttavia esistono browser che si avvicinano molto a questo risultato ed altri che invece ne sono molto lontani. La lista che segue è di motori di rendering perché a loro è assegnato il compito di formattare la pagina secondo le istruzioni CSS. • Trident (Internet Explorer e AOL Browser): Internet Explorer è attualmente il browser più diffuso e il suo supporto ai CSS è sensibilmente migliorato e dalla versione 9 supporterà anche i CSS 3. Strumenti a disposizione dei webdesigner sono i commenti condizionali, una particolare funzionalità di Explorer che consente di inviare istruzioni o bloccarle solo a questo browser. La sintassi dei commenti condizionali è la seguente:

poiché

• Gecko (Firefox e Netscape): Gecko ha un ottimo supporto dei CSS 1 e 2 ed è per questo spesso utilizzato nella verifica della resa delle pagine web. • Presto (Opera): anche Presto offre un ottimo supporto dei CSS 1 e 2. Opera offre inoltre un'opzione che permette all'utente di disattivare i fogli di stile o usarne di propri. • KHTML e WebKit (Safari, Chrome e Konqueror): KHTML è attualmente il motore che offre il maggior supporto ai CSS, offrendo una parziale interpretazione anche dei CSS 3. Oltre alle differenze di compatibilità, ogni motore di rendering aggiunge ai css standard nuovi elementi o proprietà. Esempi di queste situazioni sono tutti i css che offre gecko che iniziano con "-moz", come per esempio : -moz-border-(una proprietà per arrotondare i bordi di un elemento) o -moz-grabbing (un valore di cursor che fa apparire il mouse come una manina).

CSS sui diversi dispositivi Una utilissima funzione dei CSS è la possibilità di essere applicati solo sui dispositivi (media) specificati dall'autore. La sintassi (X)HTML da utilizzare è la seguente.

Il codice precedente associa il foglio di stile solo (in teoria) ai browser standard per computer desktop e portatili. I valori dell'attributo media sono i seguenti: • screen (desktop e laptop) • handheld (PDA e smartphone) • print (stampanti) • braille (browser braille) • embossed (stampanti braille) • projection (proiezioni) • speech o aural (sintetizzatori vocali) • tty (telescriventi) CSS 90

• tv (televisori) • all (qualsiasi dispositivo) Sebbene il numero dei dispositivi gestibili tramite CSS sia notevole, soltanto i primi tre sono supportati in maniera sufficiente. Il media screen è quello standard cui si fa riferimento. Il media handheld è specifico per i palmari, ma alcuni browser per palmari tentano, spesso con scarso successo, di interpretare anche i fogli marcati con screen, per cui si preferisce in genere marcare con handheld sia il foglio per lo schermo che quello per il palmare e poi usare quest'ultimo per sovrascrivere le istruzioni del primo. Il media print codifica la pagina per la stampa, è supportato discretamente. Un supporto completo è garantito da Opera.

Fogli di stile preferiti e alternativi Come descritto, ad ogni pagina si possono collegare più fogli di stile. Tuttavia è anche possibile far scegliere all'utente quali applicare. Per farlo si definiscono innanzitutto i fogli di stile permanenti, cioè non disattivabili, secondo la sintassi già vista. Poi si definiscono i fogli preferiti, cioè attivi al caricamento della pagina, ma disattivabili, aggiungendo l'attributo come nell'esempio che segue:</p><p><link rel="stylesheet" type="text/css" href="foglio_preferito.css" '''title="Esempio1"'''/></p><p>A questo punto possiamo specificare fogli di stile alternativi cioè non attivi al caricamento, ma attivabili dall'utente, come nell'esempio che segue:</p><p><link rel="'''alternate''' stylesheet" type="text/css" href="foglio_alternativo.css" '''title="Esempio2"'''/></p><p>Per attivare e disattivare i fogli di stile l'utente può ricorrere all'apposito menu del suo browser, tuttavia Internet Explorer non offre questa possibilità quindi è necessario creare uno script Javascript che svolga la funzione di [3] sostituire i fogli. Il codice è stato pubblicato la prima volta su (EN) A List Apart ed è ora comunemente utilizzato. Tuttavia se questo script è facile da mettere in opera per gli sviluppatori, richiede un browser moderno con un buon supporto del DOM, oltre che avere attivati sia Javascript e i cookie. Un sistema più complesso ma molto più robusto può essere uno script lato server come PHP. Un esempio è disponibile sempre sullo stesso sito [4].</p><p>Voci correlate • Accessibilità • Browser • Pagina web • W3C • HTML CSS 91</p><p>Altri progetti</p><p>• Wikibooks contiene testi o manuali: http:/ / it. wikibooks. org/ wiki/ CSS</p><p>Collegamenti esterni</p><p>Specifiche e strumenti [5] • (EN) Specifiche CSS 1 • Traduzione in italiano [6] [7] [8] • (EN) Specifiche CSS 2 e CSS 2.1 • Traduzione in italiano della CSS 2 [9] [2] • (EN) Progetto CSS 3 [10] • (EN) Validatore CSS del W3C</p><p>Guide ed esempi • CSS.HTML.it [11] Guide, articoli di approfondimento e tutorial sui CSS - di HTML.it • CSS 3 - tutti gli approfondimenti [12] di HTML.it • Il posizionamento CSS (prima parte) [13] • Organizziamoci al meglio per progettare un foglio di stile CSS [14] [15] • (EN) CSS Town - CSS portale & galleria. • constile.org [16] - Sito dedicato all'uso dei CSS • Proprietà CSS2 [17] - Lista completa delle proprietà CSS2 con descrizione delle funzionalità, valori e supporto dei browser (a cura del Laboratorio di accessibilità e usabilità). • CSS Zen Garden [18] - Esempi avanzati di siti disegnati con i fogli di stile. [19] • (EN) Css W3c Schools - Tutorial, Esempi, Reference. • Tutorial ed esempi pratici [20] • HTML.net [21] Impara i CSS • Esempi, tutorial e articoli su CSS3 [22] di HTML5 Today</p><p>Note</p><p>[1] http:/ / www. w3. org/ TR/ CSS</p><p>[2] http:/ / www. w3. org/ Style/ CSS/ current-work</p><p>[3] http:/ / www. alistapart. com/ articles/ alternate</p><p>[4] http:/ / www. alistapart. com/ articles/ phpswitch/</p><p>[5] http:/ / www. w3. org/ TR/ CSS1</p><p>[6] http:/ / www. osservatoriosullacomunicazione. com/ w3c/ rec-css1. html</p><p>[7] http:/ / www. w3. org/ TR/ 1998/ REC-CSS2-19980512/</p><p>[8] http:/ / www. w3. org/ TR/ CSS21</p><p>[9] http:/ / www. diodati. org/ w3c/ css2/ cover. html</p><p>[10] http:/ / jigsaw. w3. org/ css-validator/</p><p>[11] http:/ / css. html. it/</p><p>[12] http:/ / css. html. it/ articoli/ lista/ 179/ css-3/</p><p>[13] http:/ / read. melodycode. com/ tutorials/ 593/ il_posizionamento_css_prima_parte. html</p><p>[14] http:/ / read. melodycode. com/ tutorials/ 243/ organizziamoci_al_meglio_per_progettare_un_foglio_di_stile_css. html</p><p>[15] http:/ / www. csstown. com</p><p>[16] http:/ / www. constile. org</p><p>[17] http:/ / lau. csi. it/ risorse/ CSS2/ index. shtml</p><p>[18] http:/ / www. csszengarden. com/ tr/ italiano</p><p>[19] http:/ / www. w3schools. com/ css/ default. asp</p><p>[20] http:/ / www. webmasterpoint. org/ webdesign/ css/ home. asp</p><p>[21] http:/ / it. html. net/ tutorials/ css/ CSS 92</p><p>[22] http:/ / www. html5today. it/ tag/ css3</p><p>PHP</p><p>PHP</p><p>Sviluppatore The PHP Group</p><p>Ultima versione 5.4.0 (1 marzo 2012)</p><p>S.O. Multipiattaforma</p><p>Genere Linguaggio di scripting</p><p>[1] Licenza PHP License 3.01 (Licenza libera)</p><p>Sito web http:/ / www. php. net</p><p>PHP (acronimo ricorsivo di "PHP: Hypertext Preprocessor", preprocessore di ipertesti; originariamente acronimo di "Personal Home Page"[2]) è un linguaggio di scripting interpretato, con licenza open source e libera (ma incompatibile con la GPL), originariamente concepito per la programmazione Web ovvero la realizzazione di pagine web dinamiche. Attualmente è utilizzato principalmente per sviluppare applicazioni web lato server ma può essere usato anche per scrivere script a riga di comando o applicazioni standalone con interfaccia grafica. L'elaborazione di codice PHP sul server produce codice HTML da inviare al browser dell'utente che ne fa richiesta. Il vantaggio dell'uso di PHP e degli altri linguaggi Web come ASP e .NET rispetto al classico HTML derivano dalle differenze profonde che sussistono tra Web dinamico e Web statico. Un esempio di software scritto in php è MediaWiki, su cui si basano progetti wiki come Wikipedia e Wikizionario.</p><p>Cenni storici Nato nel 1994 ad opera del danese Rasmus Lerdorf, PHP era in origine una raccolta di script CGI che permettevano una facile gestione delle pagine personali. Il significato originario dell'acronimo era Personal Home Page (secondo l'annuncio originale di PHP 1.0 da parte dell'autore sul newsgroup comp.infosystems.www.authoring.cgi[3]). Il pacchetto originario venne in seguito esteso e riscritto dallo stesso Lerdorf in C, aggiungendo funzionalità quali il supporto al database mSQL e prese a chiamarsi PHP/FI, dove FI sta per Form Interpreter (interprete di form), prevedendo la possibilità di integrare il codice PHP nel codice HTML in modo da semplificare la realizzazione di pagine dinamiche. In quel periodo, 50.000 domini Internet annunciavano di aver installato PHP. A questo punto il linguaggio cominciò a godere di una certa popolarità tra i progetti open source del web, e venne così notato da due giovani programmatori: Zeev Suraski e Andi Gutmans. I due collaborarono nel 1998 con Lerdorf allo sviluppo della terza versione di PHP (il cui acronimo assunse il significato attuale) riscrivendone il motore che fu battezzato Zend da una contrazione dei loro nomi. Le caratteristiche chiave della versione PHP 3.0, frutto del loro lavoro, erano la straordinaria estensibilità, la connettività ai database e il supporto iniziale per il paradigma a oggetti. Verso la fine del 1998 PHP 3.0 era installato su circa il 10% dei server web presenti su Internet. PHP diventò a questo punto talmente maturo da competere con ASP, linguaggio lato server analogo a PHP sviluppato da Microsoft, e cominciò ad essere usato su larga scala. La versione 4 di PHP venne rilasciata nel 2000 e PHP 93</p><p> prevedeva notevoli migliorie. Attualmente siamo alla quinta versione, sviluppata da un team [4] di programmatori, che comprende ancora Lerdorf, oltre a Suraski e Gutmans. La popolarità del linguaggio PHP è in costante crescita grazie alla sua flessibilità: nel Giugno 2001, ha superato il milione di siti che lo utilizzano [5]. Nell'ottobre 2002, più del 45% [6] dei server Apache usavano PHP. Nel gennaio 2005 è stato insignito del titolo di "Programming Language of 2004" dal TIOBE Programming Community Index, classifica che valuta la popolarità dei linguaggi di programmazione sulla base di informazioni raccolte dai motori di ricerca. Nel 2005 la configurazione LAMP (Linux, Apache, MySQL, PHP) supera il 50% del totale dei server sulla rete mondiale. Nel 2008 PHP 5 è diventata l'unica versione stabile in fase di sviluppo. A partire da PHP 5.3.0, PHP implementa una funzione chiamata "late static binding" che può essere utilizzata per fare riferimento alla classe chiamata in un contesto di eredità statica. A partire dal 5 febbraio 2008, a causa dell'iniziativa GoPHP5, sostenuta da una serie di sviluppatori PHP, molti dei progetti open-source di alto profilo cessano di supportare PHP 4 nel nuovo codice e promuovono il passaggio da PHP 4 a PHP 5.</p><p>Caratteristiche PHP riprende per molti versi la sintassi del C, come peraltro fanno molti linguaggi moderni, e del Perl. È un linguaggio a tipizzazione debole e dalla versione 5 migliora il supporto al paradigma di programmazione ad oggetti. Certi costrutti derivati dal C, come gli operatori fra bit e la gestione di stringhe come array, permettono in alcuni casi di agire a basso livello; tuttavia è fondamentalmente un linguaggio di alto livello, caratteristica questa rafforzata dall'esistenza delle sue moltissime API, oltre 3.000 funzioni del nucleo base. PHP è in grado di interfacciarsi a innumerevoli database tra cui MySQL, PostgreSQL, Oracle, Firebird, IBM DB2, Microsoft SQL Server, solo per citarne alcuni, e supporta numerose tecnologie, come XML, SOAP, IMAP, FTP, CORBA. Si integra anche con altri linguaggi/piattaforme quali Java e .NET e si può dire che esista un wrapper per ogni libreria esistente, come CURL, GD, Gettext, GMP, Ming, OpenSSL ed altro. Fornisce un'API specifica per interagire con Apache, nonostante funzioni naturalmente con numerosi altri server web. È anche ottimamente integrato con il database MySQL, per il quale possiede più di una API. Per questo motivo esiste un'enorme quantità di script e librerie in PHP, disponibili liberamente su Internet. La versione 5, comunque, integra al suo interno un piccolo database embedded, SQLite. Dispone di un archivio chiamato PEAR che mette a disposizione un framework di librerie riusabili per lo sviluppo di applicazioni PHP e di PECL [7] che raccoglie tutte le estensioni conosciute scritte in C. A partire dal 2011 PHP non ha supporto nativo per le stringhe <a href="/tags/Unicode/" rel="tag">Unicode</a> o multibyte, il supporto Unicode è in fase di sviluppo per una futura versione di PHP e consentirà stringhe così come classe, metodo, e la funzione nomi per contenere caratteri non ASCII.</p><p>Sicurezza La percentuale di software non sicuro scritto in PHP, sul totale di tutte le falle nei software elencate dal Common Vulnerabilities and Exposures, ammontava al: 12% nel 2003, 20% nel 2004, 28% nel 2005, 43% nel 2006, 36% nel 2007, 34.8% nel 2008, 29.9% nel 2009 e 27.2% nel 2010.[8] La maggior parte di questi punti vulnerabili possono essere sfruttati tramite remoto, ovvero senza accedere al computer che ospita l'applicazione vulnerabile. Le falle più comuni sono dovute al mancato adempimento delle best practice nella programmazione e da vulnerabilità presenti in codice scritto in versioni vecchie di PHP. PHP 94</p><p>Gestione dei parametri Il PHP permette il passaggio di parametri da una pagina all'altra attraverso tre array di variabili: $_GET, $_POST e $_SESSION. Il primo tipo di parametro viene passato tramite la stringa che compare nella barra dell'indirizzo del browser; il secondo viene passato in background, mentre il terzo rimane persistente durante la sessione.</p><p>Esempi di codice</p><p>Utilizzo delle variabili $title = "Wikipedia";</p><p>Con questa istruzione viene definita una variabile e le viene assegnato il valore "Wikipedia". Ogni volta che nella pagina scriveremo così:</p><p> echo $title;</p><p> anziché la scritta $title all’utente apparirà la scritta “Wikipedia”. Se però scriviamo echo $title; in un'altra pagina (es.prova.php) che non sia il file originale (ad esempio title.php) non apparirà la scritta “Wikipedia” poiché la variabile $title non sarà definita, a meno che non includiamo in quest’altra pagina il file title.php in questo modo:</p><p> require 'title.php';</p><p>Hello World! in php <?php echo "Hello World!\n"; //scrive nella pagina "Hello World!" e con \n va a capo. ?></p><p>Una funzione con controllo sugli argomenti <?php function get_hello_world($value1, $value2) { $result = "";</p><p> if ($value1 != "") { $result .= $value1; }</p><p>// .= è un operatore di concatenazione; // Il "." (punto) deriva dall'operazione di concatenazione delle stringhe nella teoria dei linguaggi;</p><p> if (($value1 != " ") && ($value2 != " ")) { $result .= " "; } PHP 95</p><p> if ($value2 != "") { $result .= $value2; }</p><p> return $result; }</p><p> echo get_hello_world("Hello", "world"); ?></p><p>Il Ciclo for <?php</p><p>// In questo caso la variabile $n viene stampata a video, successivamente // viene incrementata di 1, il ciclo termina quando $n è uguale a 9.</p><p> for($n = 0; $n <= 9; $n++){</p><p> echo $n;</p><p>}</p><p>//Output -> 0123456789</p><p>?></p><p>I cicli while <?php</p><p>//In questo caso vediamo come stampare a video dei risultati estratti //da una query <a href="/tags/SQL/" rel="tag">sql</a></p><p>$esempio = mysql_query("SELECT id FROM persone");</p><p> while($example = mysql_fetch_array($esempio)){</p><p> echo $example[0];?><br><?</p><p>}</p><p>/*In questo modo estraiamo dei dati da un database sql sotto forma di array che verrà poi stampato tramite un ciclo while */</p><p>?> PHP 96</p><p>99 Bottles of Beer Il seguente esempio stampa il testo della canzone 99 Bottles of Beer.</p><p><?php</p><p>/* * Questo è un commento. Altri modi per commentare sono i simboli // e # * Questo tipo di commenti non ha bisogno degli asterischi (*) all'inizio * di ogni riga, ma lo si fa per convenzione. I simboli // e # * commentano solo il testo che si trova dopo di essi e fino alla fine della riga; * non c'è bisogno di finire il commento con qualche carattere speciale. */</p><p>/* * Prima definiamo una funzione chiamata "plural". * Restituisce una "s" se l'argomento passato non è 1. */ function plural($number) { // L'operatore ternario (!= ? :) è una struttura condizionale // simile a if-else: (condizione ? true : false) return ($number != 1 ? "s" : ""); }</p><p>// Definiamo una variabile chiamata $a_capo che contiene un a capo HTML, // un carattere di ritorno e uno di nuova riga: $a_capo = "<br />\r\n";</p><p> for ($i = 99; $i > 0; $i--) { print "$i bottle" . plural($i) . " of beer on the wall,$a_capo"; // Non abbiamo bisogno di ripetere il comando print per ogni riga: print "$i bottle" . plural($i) . " of beer.$a_capo Take one down, pass it around,$a_capo" . ($i - 1 != 0 ? $i - 1 : "no more") . " bottle" . plural($i - 1) . " of beer on the wall.$a_capo$a_capo"; /* * PHP permette di creare stringhe su più righe, finché * trova un punto e virgola (;) che termina l'istruzione. * Un punto (.) concatena insieme più stringhe. * Le variabili, che iniziano con il carattere "$", sono interpretate * anche dentro i doppi apici ("), ma non dentro gli apici singoli PHP 97</p><p>('). * Le funzioni, come plural(), non sono interpretate fra gli apici. */ }</p><p> print "Go to the store, $a_capo buy some more, $a_capo 99 bottles of beer on the wall!";</p><p>?></p><p> php.ini Il file di configurazione di PHP, chiamato php3.ini in PHP 3, e poi semplicemente php.ini nelle versioni successive, è letto all'avvio dell'interprete del linguaggio e fornisce le impostazioni dei vari moduli con cui l'interprete è stato compilato. Nella versione server modulare di PHP, questo avviene solo una volta, all'avvio del server web. Per le versioni CGI e CLI, invece, è invocato ad ogni richiesta. Per visualizzare tutte le opzioni di configurazione è possibile utilizzare la funzione phpinfo().</p><p>Ambienti di sviluppo [9] • (EN) <a href="/tags/Aptana/" rel="tag">Aptana</a> [10] • (EN) Delphi4php [11] • (EN) <a href="/tags/Bluefish_(software)/" rel="tag">Bluefish</a> [12] • (EN) Dreamweaver CS5.5 [13] • (EN) WeBuilder 2007 [14] • (EN) Maguma Workbench [15] • (EN) NuSphere PHPEd [16] • (EN) PHP Designer 2008 [17] • (EN) PDT (<a href="/tags/Eclipse_(software)/" rel="tag">Eclipse</a> Platform) [18] • (EN) PHPEclipse (Eclipse Platform) [19] • (EN) NetBeans [20] • (EN) Dev-PHP [21] • (EN) PHPEdit [22] • (EN) <a href="/tags/Quanta_Plus/" rel="tag">Quanta Plus</a> [23] • (EN) Side [24] • (EN) Xored TruStudio [25] • (EN) <a href="/tags/Zend_Studio/" rel="tag">Zend Studio</a> [26] • (EN) Antechinus PHP Editor [27] • (EN) gPHPEdit [28] • (EN) jEdit • PSPad [29] [30] • (EN) <a href="/tags/Vim_(text_editor)/" rel="tag">Vim</a> [31] • (EN) Emacs [32] • (EN) SciTE • HAP EDIT [33] [34] • (EN) Komodo IDE PHP 98</p><p>[35] • (EN) Komodo Edit • Notepad++ [36] • Notepad (blocco note di Windows) • Notepad2 (evoluzione del notepad di Windows) • gedit • PhpGedView • Qualsiasi altro editor di testo</p><p>Note</p><p>[1] http:/ / www. php. net/ license/ 3_01. txt</p><p>[2] The PHP Group. History of PHP and related projects (http:/ / it. php. net/ history). URL consultato il 26 aprile 2011.</p><p>[3] Announce: Personal Home Page Tools (PHP Tools) (http:/ / groups. google. ch/ group/ comp. infosystems. www. authoring. cgi/ msg/</p><p> cc7d43454d64d133?oe=UTF-8& output=gplain). 8 giugno 1995. URL consultato il 6 luglio 2011.</p><p>[4] http:/ / www. php. net/ credits. php</p><p>[5] http:/ / www. php. net/ usage. php</p><p>[6] http:/ / www. securityspace. com/ s_survey/ data/ man. 200210/ apachemods. html</p><p>[7] http:/ / pecl. php. net</p><p>[8] PHP-related vulnerabilities on the National Vulnerability Database (http:/ / www. coelho. net/ php_cve. html). URL consultato il 6 luglio 2011.</p><p>[9] http:/ / www. aptana. com</p><p>[10] http:/ / www. embarcadero. com/ products/ delphi_for_php/</p><p>[11] http:/ / bluefish. openoffice. nl</p><p>[12] http:/ / www. dreamweaver. com</p><p>[13] http:/ / www. blumentals. net/ webuilder/</p><p>[14] http:/ / www. maguma. com</p><p>[15] http:/ / www. nusphere. com</p><p>[16] http:/ / www. mpsoftware. dk</p><p>[17] http:/ / www. eclipse. org/ pdt</p><p>[18] http:/ / www. phpeclipse. de</p><p>[19] http:/ / <a href="/tags/NetBeans/" rel="tag">netbeans</a>. org</p><p>[20] http:/ / devphp. sourceforge. net</p><p>[21] http:/ / www. waterproof. fr</p><p>[22] http:/ / quanta. kdewebdev. org</p><p>[23] http:/ / www. phpside. org</p><p>[24] http:/ / www. xored. com/ trustudio</p><p>[25] http:/ / www. zend. com/ store/ products/ zend-studio. php</p><p>[26] http:/ / www. c-point. com/ php_editor. php</p><p>[27] http:/ / www. gphpedit. org</p><p>[28] http:/ / www. jedit. org</p><p>[29] http:/ / www. <a href="/tags/PSPad/" rel="tag">pspad</a>. com/ it</p><p>[30] http:/ / www. vim. org</p><p>[31] http:/ / www. gnu. org/ software/ emacs/</p><p>[32] http:/ / www. <a href="/tags/Scintilla_(software)/" rel="tag">scintilla</a>. org/ SciTE. html</p><p>[33] http:/ / hapedit. free. fr</p><p>[34] http:/ / www. <a href="/tags/ActiveState/" rel="tag">activestate</a>. com/ Products/ komodo_ide/ index. <a href="/tags/MHTML/" rel="tag">mhtml</a></p><p>[35] http:/ / www. activestate. com/ Products/ komodo_ide/ komodo_edit. mhtml</p><p>[36] http:/ / notepad-plus. sourceforge. net/ it/ site. htm PHP 99</p><p>Bibliografia • Zak Greant, Graeme Merrall, Torben Wilson, Brett Michlitsch (2002): PHP Functions Essential Reference, Sams, ISBN 0-7357-0970-X • Luke Welling, Laura Thomson (2004): PHP and MySQL Web Development, 3rd ed., SAMS, ISBN 0-672-32672-8 • Matt Zandstra (2004): PHP 5 Objects, Patterns, and Practice, Apress, ISBN 1-59059-380-4 • Eric Rosebrock, Eric Filson (2004): Setting Up LAMP: Getting Linux, Apache, MySQL, and PHP Working Together, SYBEX, ISBN 0-7821-4337-7 • Cristian Darie, Mihai Bucica (2004): Beginning PHP 5 and MySQL E-Commerce: From Novice to Professional, Apress, ISBN 1-59059-392-8 • David Powers (2005): Foundation PHP 5 for Flash, Friends of ED, ISBN 1-59059-466-5 • Elizabeth Naramore, (2005): Beginning PHP5, Apache, and MySQL Web Development, Wrox, ISBN 0-7645-7966-5 • Thomas Myer (2005): No Nonsense XML Web Development With PHP, SitePoint, ISBN 0-9752402-0-X • Marc Wandschneider (2005): Core <a href="/tags/Web_application/" rel="tag">Web Application</a> Development with PHP and MySQL, Prentice-Hall, ISBN 0-13-186716-4 • Steven Holzner (2005): Spring Into PHP 5 , Addison-Wesley, ISBN 0-13-149862-2 • (2005): Building Online Communities with phpBB 2 , Packt Publishing, ISBN 1-904811-13-2 • (2005): <a href="/tags/Web_standards/" rel="tag">Web Standards</a> <a href="/tags/Programmer/" rel="tag">Programmer</a>'s Reference : HTML, CSS, JavaScript, Perl, Python, and PHP, Wrox, ISBN 0-7645-8820-6 • Chris Newman (2005): Sams Teach Yourself PHP in 10 Minutes, ISBN 0-672-32762-7 • Paul Hudson (2005): PHP in a Nutshell, O'Reilly, ISBN 0-596-10067-1 • Andi Gutmans, Stig S. Bakken, Derick Rethans (2005): PHP 5: Guida completa, Apogeo, ISBN 88-503-2304-2 • Jack Herrington (2006), PHP Trucchi e segreti, Tecniche Nuove Hops, ISBN 88-481-1951-4 • Rasmus Lerdorf (2003), PHP Pocket Reference, Tecniche Nuove Hops, ISBN 88-8378-070-1 • Peter B. MacIntyre (2010), PHP – Le tecniche per scrivere il codice migliore, Tecniche Nuove, ISBN 978-88-481-2505-5</p><p>Voci correlate • Perl • Active Server Pages</p><p>Altri progetti</p><p>• Wikibooks contiene testi o manuali: http:/ / it. wikibooks. org/ wiki/ PHP</p><p>• Wikiversità contiene informazioni: http:/ / it. wikiversity. org/ wiki/ PHP</p><p>• Wikimedia Commons contiene file multimediali: http:/ / commons. wikimedia. org/ wiki/ Category:PHP PHP 100</p><p>Collegamenti esterni</p><p>• Php (http:/ / www. dmoz. org/ World/ Italiano/ Computer/ Programmazione/ Php/ ) su Open Directory Project (</p><p>Segnala (http:/ / www. dmoz. org/ cgi-bin/ add. cgi?where=World/ Italiano/ Computer/ Programmazione/ Php/ ) su DMoz un collegamento pertinente all'argomento "Php")</p><p>• PHP.net (http:/ / php. net/ ) 101</p><p>Database</p><p>Database</p><p>In informatica, il termine database, banca dati o base di dati, indica un insieme di archivi collegati secondo un particolare modello logico (relazionale, gerarchico, reticolare o a oggetti) e in modo tale da consentire la gestione dei dati stessi (ricerca o interrogazione, inserimento, cancellazione ed aggiornamento) da parte di particolari applicazioni software dedicate (DBMS) basate su un'architettura di tipo client-server e sui cosiddetti query language per l'interfacciamento con l'utente. Informalmente e impropriamente, la parola "database" viene spesso usata come abbreviazione dell'espressione database management system (DBMS), che si riferisce però alla sola parte software cioè a quella vasta categoria di sistemi che consentono appunto la creazione, la manipolazione (gestione) e l'interrogazione efficiente dei dati, mentre più precisamente per database si intende l'archivio a livello logico e fisico ovvero compresa anche la parte hardware cioè il sistema con i supporti di memorizzazione che contengono i dati e il processore per l'elaborazione di questi. Nei database più moderni ovvero quelli basati sul modello relazionale i dati vengono suddivisi per argomenti (in apposite tabelle) e poi tali argomenti vengono suddivisi per categorie (campi) con tutte le possibili operazioni di cui sopra. Tale suddivisione e funzionalità rende i database notevolmente più efficienti rispetto ad un archivio di dati creato ad esempio tramite file system di un sistema operativo su un computer almeno per la gestione di dati complessi. La diffusione dei database, e dei relativi sistemi DBMS di gestione, nei sistemi informativi moderni è enorme e capillare essendo un componente base di un sistema informativo attraverso il rispettivo sistema informatico: si pensi a tutte le attività commerciali di gestione di magazzino, gestione clienti, a sistemi di immagazzinamento di dati personali o pubblici nella pubblica amministrazione e nelle imprese private (es. banche), contabilità ecc. La gestione e lo sviluppo dei database attraverso DBMS è diventata nel tempo una branca a tutti gli effetti dell'informatica moderna.</p><p>Gestione delle informazioni La base di dati, oltre ai dati veri e propri, deve contenere anche le informazioni sulle loro rappresentazioni e sulle relazioni che li legano. Spesso, ma non necessariamente, una base dati contiene le seguenti informazioni: • Strutture dati che velocizzano le operazioni frequenti, di solito a spese di operazioni meno frequenti. • Collegamenti con dati esterni, cioè riferimenti a file locali o remoti non facenti parte del database. • Informazioni di sicurezza, che autorizzano solo alcuni profili utente ad eseguire alcune operazioni su alcuni tipi di dati. • Programmi che vengono eseguiti, automaticamente o su richiesta di utenti autorizzati, per eseguire elaborazioni sui dati. Un tipico automatismo consiste nell'eseguire un programma ogni volta che viene modificato un dato di un certo tipo. In un sistema informatico, una base di dati può essere usata direttamente dai programmi applicativi, interfacciandosi con il supporto di memorizzazione (insomma, agendo direttamente sui file). Questa strategia era quella adottata universalmente fino agli anni sessanta, ed è tuttora impiegata quando i dati hanno una struttura molto semplice, o quando sono elaborati da un solo programma applicativo. Database 102</p><p>Dalla fine degli anni sessanta, tuttavia, per gestire basi di dati complesse condivise da più applicazioni si sono utilizzati appositi sistemi software, detti sistemi per la gestione di basi di dati (in inglese "Database Management System" o "DBMS"). Uno dei vantaggi di questi sistemi è la possibilità di non agire direttamente sui dati, ma di vederne una rappresentazione concettuale. La ricerca nel campo delle basi di dati studia le seguenti problematiche: • Progettazione di basi di dati. • Progettazione e implementazione di DBMS. • Interpretazione (o analisi) di dati contenuti in database. Le basi di dati spesso fanno uso di tecnologie derivate da altre branche dell'informatica. È usuale utilizzare tecniche derivate dall'intelligenza artificiale, come ad esempio il data mining, per cercare di estrarre relazioni o più in generale informazioni presenti nelle banche dati ma non immediatamente visibili.</p><p>Strutture Le basi di dati possono avere varie strutture, di solito, in ordine cronologico: 1. gerarchica (rappresentabile tramite un albero – anni millenvecentosessanta), 2. reticolare (rappresentabile tramite un grafo – anni millenvecentosessanta), 3. relazionale (attualmente il più diffuso, rappresentabile mediante tabelle e relazioni tra esse – anni settanta), 4. ad oggetti (estensione alle basi di dati del paradigma "Object Oriented", tipico della programmazione a oggetti – anni millenvecentoottanta), 5. semantica (rappresentabile con un grafo relazionale – inizio anni duemila). Il formato XML, oltre che per scambi di dati su web, si sta diffondendo per la definizione di vere e proprie basi di dati. XML ha una struttura gerarchica, pare quindi un "ritorno alle origini" dei modelli di dati. Un requisito importante di una buona base dati consiste nel non duplicare inutilmente le informazioni in essa contenute: questo è reso possibile dai gestori di database relazionali (teorizzati da Edgar F. Codd), che consentono di salvare i dati in tabelle che possono essere collegate. La funzionalità di un database dipende in modo essenziale dalla sua progettazione: la corretta individuazione degli scopi del database e quindi delle tabelle, da definire attraverso i loro campi e le relazioni che le legano, permette poi una estrazione dei dati più veloce e, in generale, una gestione più efficiente.</p><p>Linguaggi per basi di dati È possibile distinguere i linguaggi per basi di dati secondo il loro utilizzo: • Data Definition Language (DDL) - consente di definire la struttura della base di dati e le autorizzazioni per l'accesso. • Device Media Control Language (DMCL) - permette di controllare i supporti (memoria di massa) dove vengono memorizzati i dati. • Data Manipulation Language (DML) - permette di inserire, cancellare, modificare i dati. • Data Control Language (DCL) - permette di gestire gli utenti e i permessi. • Query language (QL) - permette di interrogare il database, cioè di leggere i dati. Inoltre è possibile suddividere i linguaggi come: • Linguaggi testuali interattivi, come l'SQL, di cui sono stati pubblicati diversi standard, che attualmente è il linguaggio più utilizzato. • Linguaggi testuali interattivi immersi in linguaggi di programmazione comuni, quali C, Basic ecc. • Linguaggi testuali interattivi immersi in linguaggi di programmazione proprietari. Database 103</p><p>• Linguaggi grafici e user-friendly, come QBE (Query By Example), che possono essere utilizzati anche dai meno esperti.</p><p>Server di database Un Server di database è la parte del DBMS (e, per estensione, il server su cui il programma opera) che si occupa di fornire i servizi di utilizzo del database ad altri programmi e ad altri computer secondo la modalità client/server. Il server memorizza i dati, riceve le richieste dei client ed elabora le risposte appropriate. I database server sono complessi sistemi software concepiti in un linguaggio binario, oltre che per memorizzare i dati, anche per fornire un accesso rapido ed efficace a una pluralità di utenti contemporaneamente e garantire protezione sia dai guasti che dagli accessi indebiti. Tra i più diffusi DBMS open source troviamo, in ordine alfabetico: • Firebird SQL • MySQL • PostgreSQL I più diffusi sistemi commerciali sono: • IBM DB2 • Microsoft SQL Server • Oracle • Sybase</p><p>Sicurezza dei database La protezione da accessi non autorizzati è un tema importante nella gestione dei database, che si rivelano vulnerabili nei seguenti punti: • Sicurezza dei server • Connessioni tra database • Controllo sugli accessi al database.</p><p>Gestione dei dati (Data management) • Data warehouse • Data mining • Data mart</p><p>Web Database I web database sono un particolare tipo di servizi web dove poter creare database direttamente sul web. Questi servizi offrono normalmente tutte le caratteristiche base di un normale database per costruire tabelle strutturate di dati di ogni genere con campi di tipo testo, numeri, data e ora e altri. Il loro servizio non è solo quello di repository o contenitore di dati ma anche di creare un'interfaccia grafica usabile per la gestione degli stessi presentandosi come vere e proprie applicazioni web. La condivisione svolge un ruolo importante proprio perché i dati sono visibili su internet e quindi da altre persone che, con le dovute autorizzazioni, possono lavorare sui dati. Database 104</p><p>Diritto d'autore La direttiva dell'Unione Europea n. 96/9/CE ha introdotto un diritto (qualificato sui generis) a tutela dell'estensore di una banca dati. In Italia tale normativa è stata disciplinata dal TitoloII-bis LdA: Disposizioni sui diritti del costitutore di una banca di dati. La tutela riguarda quelli che compiono una selezione o collocazione del materiale raccolto[1]</p><p>Database management system (DBMS) • 4th Dimension • Adabas • Addamark • AskSam • Berkeley DB • Caché • Conzept16 • c-tree Plus • c-store • Dataphor un RDBMS "veramente-relazionale" che rispetta tutte le regole di Codd. • DB1 • DB2 • DB4Object • DBMaker • dBase • Derby • FileMaker • Pagine Elettroniche • Firebird SQL • FoxBase • Gupta SQLBase • Hypersonic Sql • IDMS • Information Management System • Ingres • Informix • InterBase • Kdb • Lotus Approach • Lucid db • <a href="/tags/Microsoft_Access/" rel="tag">Microsoft Access</a> • Microsoft SQL Server • Monet Db • mSQL • MySQL • MySQL MaxDb • Oracle • Orient ODBMS • PicoSQL Database 105</p><p>• PostgreSQL • Progress • SapDb • SQLite • SQL Anywhere Studio • Sybase SQL Server • TimeSten • Vertica</p><p>Voci correlate • Affidabilità • Attacco ai database • Campo • Normalizzazione del database • Protezione del database • Record • Database distribuiti • Algebra relazionale • Base di conoscenza • Cache • DBMS • Descrittore • DNS • Tecnologia JDBC • Modello reticolare • Tecnologia ODBC • Query • Schema evolution • SQL • Sistema informativo • Transazione • Dump • Direttiva relativa alla tutela giuridica delle banche di dati • Base di dati a grafo • Base di dati a oggetti • Base di dati multimediale Database 106</p><p>Note [1] Confronta Jarach-Pojaghi Manuale del diritto d'autore Mursia ISBN 978-88-425-3817-2</p><p>Bibliografia • Atzeni, Ceri, Paraboschi, Torlone – Basi Di Dati (Modelli e Linguaggi di Interrogazione) - McGraw Hill, 2003 • Atzeni, Ceri, Fraternali, Paraboschi, Torlone – Basi Di Dati (Architetture e Linee Di Evoluzione) - McGraw Hill, 2003 • Ramez Elmasri, Shamkant B. Navathe – Fundamentals of Database Systems, Fourth Edition – Addison Wesley, 2003 • Tamer-Ozsu, P. Valduriez – Principles of Distributed Database Systems - Prentice Hall, 1999 • Giovanni Guglielmetti, La tutela delle banche dati con diritto sui generis nella direttiva 96/9/CE, in Contratto e impresa / Europa, 1997, pag. 177 e segg.;</p><p>Altri progetti</p><p>• Wikimedia Commons contiene file multimediali: http:/ / commons. wikimedia. org/ wiki/ Category:Database</p><p>Collegamenti esterni</p><p>• BaseBear (http:/ / www. basebear. com) Un esempio di web database</p><p>Database management system</p><p>In informatica, un Database Management System (abbreviato in DBMS) è un sistema software progettato per consentire la creazione e la manipolazione (da parte di un amministratore) e l'interrogazione efficiente (da parte di uno o più utenti) di database (ovvero di collezioni di dati strutturati), per questo detto anche "gestore del database", e ospitato su architettura hardware dedicata oppure su semplice computer. I DBMS svolgono un ruolo fondamentale in numerose applicazioni informatiche, dalla contabilità, alla gestione delle risorse umane e alla finanza fino a contesti tecnici come la gestione di rete o la telefonia. Se in passato i DBMS erano diffusi principalmente presso le grandi aziende e istituzioni (che potevano permettersi l'impegno economico derivante dall'acquisto delle grandi infrastrutture hardware necessarie per realizzare un sistema di database efficiente), oggi il loro utilizzo è diffuso praticamente in ogni contesto. L'espressione applicazione enterprise, che nel gergo informatico si riferisce ad applicazioni legate al business delle aziende che le utilizzano, implica quasi "per definizione" la presenza di una o più basi di dati amministrate da uno o più DBMS. La teoria dei database, e dei DBMS, rappresenta da sempre uno dei filoni più solidi e importanti dell'informatica. Un DBMS è differente dal concetto generale di applicazione sulle banche dati, in quanto è progettato per sistemi multi-utente. A tale scopo, i DBMS si appoggiano a kernel che supportano nativamente il multitasking e il collegamento in rete. Una tipica applicazione per la gestione dei database non includerebbe, infatti, tali funzionalità, ma si appoggerebbe al sistema operativo per consentire all'utente di fruirne dei vantaggi. Database management system 107</p><p>Descrizione Un DBMS può essere costituito da un insieme assai complesso di programmi software che controllano l'organizzazione, la memorizzazione e il reperimento dei dati (campi, record e archivi) in un database. Un DBMS controlla anche la sicurezza e l'integrità del database. Il DBMS accetta richieste di dati da parte del programma applicativo e "istruisce" il sistema operativo per il trasferimento dei dati appropriati.</p><p>Autorizzazioni Il sistema di sicurezza dei dati impedisce agli utenti non autorizzati di visualizzare o aggiornare il database. Mediante l'uso di password (parole d'ordine) agli utenti è permesso l'accesso all'intero database o ad un suo sottoinsieme: in questo secondo caso si parla di subschema. Per esempio, un database di impiegati può contenere tutti i dati riguardanti un singolo soggetto, ma un gruppo di utenti può essere autorizzato a vedere solamente i dati riguardanti lo stipendio, mentre altri utenti possono essere autorizzati a vedere solamente le informazioni che riguardano la sua storia lavorativa e la situazione sanitaria.</p><p>Integrità Il DBMS può mantenere l'integrità del database non consentendo a più utenti di modificare lo stesso record contemporaneamente (blocco del record). Il database può impedire l'immissione di due record duplicati; per esempio può essere impedita l'immissione nel database di due clienti con lo stesso numero identificativo (campi chiave). L'insieme di regole che determinano l'integrità e la consistenza di una base di dati prendono il nome di Vincoli di integrità referenziale. A tale proposito si vedano le cosiddette proprietà "ACID".</p><p>Interrogazioni e modifiche I linguaggi di interrogazione del database mediante query (interrogazioni) e i generatori di report permettono agli utenti di interrogare in maniera interattiva il database e di analizzarne i dati. Se il DBMS fornisce un modo per aggiornare ed immettere nuovi dati nel database, oltre che per interrogarlo, questa capacità permette di gestire database personali. Comunque queste funzionalità non danno la possibilità di mantenere traccia delle revisioni e non forniscono gli strumenti necessari alla gestione di una organizzazione multi-utente. Questi controlli sono disponibili solamente quando un insieme di programmi applicativi sono appositamente costruiti per gestire e coordinare ciascuna funzione di immissione o modifica dei dati.</p><p>DBMS e sistemi informativi Un sistema informativo commerciale è costituito da soggetti (clienti, impiegati, venditori) e attività (ordini, pagamenti, acquisti, ecc.). La progettazione del database (database design) è il processo decisionale su come organizzare questi dati in tipi di record e su come ciascun tipo di record si relaziona con gli altri. Il DBMS dovrebbe rispecchiare la struttura dei dati dell'organizzazione e gestire in maniera efficiente le varie transazioni. Quando si usa un DBMS i sistemi informativi possono essere adeguati molto facilmente al cambiamento delle richieste informative dell'organizzazione. Possono essere aggiunte al database nuove categorie di dati senza dover stravolgere il sistema esistente.</p><p>Architettura e organizzazione Le organizzazioni possono usare un DBMS per gestire il normale processo quotidiano delle transazioni e in un secondo tempo spostare il dettaglio in un altro computer che usa un altro DBMS più adatto per gestire interrogazioni casuali e l'attività di analisi. Le decisioni globali circa l'architettura dei sistemi informativi, sono gestite dagli analisti di sistema e dagli amministratori dei dati. La progettazione di dettaglio del database è demandata agli amministratori del database stesso. Database management system 108</p><p>I tre tipi di organizzazione più comuni sono il modello gerarchico, il modello reticolare e il modello relazionale: il modello dominante oggi è quello relazionale, normalmente utilizzato con il linguaggio di interrogazione SQL. Molti DBMS supportano le API (Application programming interface) dell'Open Database Connectivity (ODBC) o Java Database Connectivity (JDBC, lo standard per Java), che forniscono ai programmatori strumenti standardizzati per l'accesso ai database. I database server sono computer ottimizzati per ospitare i programmi che costituiscono il database reale e sui quali girano solo il DBMS e il software ad esso correlato (nelle situazioni reali spesso questi computer svolgono anche altre funzioni non correlate con la gestione del database). Di solito si tratta di macchine multiprocessore e con dischi fissi configurati in modalità RAID per una memorizzazione stabile ed affidabile dei dati che garantisca la continuità del servizio anche in caso di guasto ad un componente (sistemi fault tolerant). In ambienti dove vengono processate transazioni con moli di dati particolarmente elevate vengono utilizzati anche componenti hardware che hanno la funzione specifica di acceleratori di database e che sono collegati ad uno o più server attraverso canali preferenziali ad alta velocità. Sempre più frequentemente si assiste alla integrazione delle basi di dati e di Internet: una vasta classe di applicazioni della rete fa uso di informazioni presenti su basi di dati; esempi di questo tipo di applicazioni vanno dai cataloghi delle imprese, disponibili per il pubblico, alle edizioni on-line dei giornali e dei quotidiani. Per garantire un linguaggio di modellizzazione che consenta di passare dalla visualizzazione dei dati in un formato compatibile con le basi di dati, ad una "vista" concettuale del futuro sito web esiste un linguaggio specifico chiamato WebML.</p><p>Storia I database sono stati utilizzati fin dall'inizio della storia dell'informatica, ma la grande maggioranza di questi erano programmi specializzati per l'accesso ad un singolo database. Oggi, invece, i moderni sistemi possono essere utilizzati per compiere operazioni su un gran numero di basi di dati differenti. Questa "specializzazione" era dovuta alla necessità di guadagnare in velocità di esecuzione pur perdendo in flessibilità.</p><p>Database Navigazionali Con la crescita della capacità elaborativa dei calcolatori questo contrasto con la flessibilità andò attenuandosi, con la creazione negli anni sessanta di una serie di database utilizzabili per diverse applicazioni. L'interesse nel fissare uno standard crebbe, e Charles W. Bachman, creatore di uno di questi prodotti, ("IDS"), fondò il "Database Task Group", all'interno del "Codasyl", il gruppo di lavoro dedicato alla creazione e standardizzazione del linguaggio di programmazione COBOL. Nel 1971 tale standard fu prodotto e prese il nome di "Approccio Codasyl"; presto furono disponibili sul mercato una serie di prodotti basati su tale approccio. Questo approccio era basato sulla navigazione manuale in un insieme di dati disposti sotto forma di rete. Alla prima apertura del programma, il programma si apriva sul primo dato disponibile, contenente, tra le altre cose, un puntatore ai dati successivi. Per trovare un dato il programma attraversava la serie di puntatori fino a trovare il dato corretto. Delle semplici query come "Trova tutte le persone nate in Svezia" richiedevano l'attraversamento dell'intero set di dati. Non esisteva, dunque, alcuna funzione di ricerca; oggi, questo potrebbe sembrare una limitazione, ma all'epoca, essendo i dati archiviati su nastro magnetico, operazioni come quelle evidenziate sopra non erano particolarmente costose in termini di tempo. Nel 1968, la IBM sviluppò un proprio sistema DBMS, chiamato IMS. IMS era uno sviluppo di un programma utilizzato nelle missioni Apollo sui Sistemi /360 e utilizzava un sistema simile all'approccio Codasyl, con l'unica differenza di avere un sistema gerarchico anziché a rete. Ambedue le soluzioni presero poi il nome di "database navigazionali" a causa del metodo di consultazione che era stato previsto. Inoltre, Charles Bachman, in occasione della premiazione nel 1973 in cui gli venne conferito il Premio Database management system 109</p><p>Turing, presentò un lavoro intitolato "Il programmatore come navigatore". IMS è abitualmente classificato come un database gerarchico, mentre IDS e IDMS (ambedue database CODASYL), CINCOMs e TOTAL sono classificati come database a rete (o reticolari).</p><p>Database Relazionali I DBMS relazionali sono detti anche RDBMS (Relational DBMS). Edgar F. Codd lavorava alla sede californiana della IBM come ricercatore sulla nascente tecnologia degli hard disk quando osservò l'inefficienza dell'approccio Codasyl con la nuova modalità di memorizzazione dei dati, inefficienza principalmente dovuta all'assenza di una funzione di ricerca. Nel 1970 cominciò a produrre diversi documenti schematizzanti un nuovo approccio alla costruzione delle basi di dati, culminati nel "Modello relazionale per Basi di dati condivise" ("A Relational Model of Data for Large Shared Data Banks"). In questo articolo, descrisse un nuovo sistema per archiviare e modificare grandi quantità di dati. Invece di utilizzare delle "righe" (in inglese, ma anche molto usato in italiano: "record" o anche "tuple") collegate tra di loro attraverso un qualche tipo di struttura "ad albero", come in Codasyl, ritenne di utilizzare una "tabella" di righe a lunghezza fissa. Questo sistema sarebbe stato molto inefficiente nell'archiviazione di dati "sparsi", in cui la tabella avrebbe potuto avere diverse "celle" vuote; tale errore di impostazione fu corretto dividendo i dati in diverse tabelle, in cui gli elementi opzionali venivano spostati, anziché sprecare spazio nella tabella principale. Ad esempio, un utilizzo comune delle basi di dati è quello di registrare delle informazioni sugli utenti: il loro nome, informazioni di accesso, indirizzo e numeri di telefono. In un database navigazionale tutti questi dati sarebbero stati memorizzati in un unico "record", e gli elementi non presenti (ad esempio un utente di cui non sia noto l'indirizzo) sarebbero stati semplicemente omessi. Al contrario, in un database relazionale, le informazioni vengono divise, ad esempio, nelle tabelle "utente", "indirizzi", "numeri di telefono" e solo se i dati sono presenti viene creata, nella rispettiva tabella, una tupla. Uno degli aspetti interessanti introdotti nei database relazionali sta nel collegamento delle tabelle: nel modello relazionale, per ogni "record" viene definita una "chiave", ovvero un identificatore univoco della tupla. Nella ricostruzione delle relazioni, l'elemento di riferimento, che distingue una riga da un'altra è proprio questa "chiave" e viene richiamata nella definizione della relazione. La chiave può essere uno dei dati stessi che vengono memorizzati (ad esempio, per la tabella utenti, il "Codice Fiscale" della persona), o un campo che viene aggiunto specificatamente per questo scopo (spesso chiamato "OID" - "Object IDentifier"), o una combinazione di più campi (chiave composta). Questa operazione di "riunificazione" dei dati non è prevista nei linguaggi di programmazione tradizionali: mentre l'approccio navigazionale richiede semplicemente di "ciclare" per raccogliere i diversi "record", l'approccio relazionale richiede al programma di "ciclare" per raccogliere le informazioni riguardanti ogni record. Codd, propose, come soluzione, la creazione di un linguaggio dedicato a questo problema. Tale linguaggio, più tardi, si è sviluppato nella codifica che oggi è universalmente adottata e che è il mattone fondamentale delle basi di dati: SQL. Utilizzando una branca della matematica chiamata "calcolo delle tuple", dimostrò che questo sistema era in grado di compiere tutte le normali operazioni di amministrazione dei database (inserimento, cancellazione, etc.) e che inoltre consentiva di disporre di uno strumento semplice per trovare e visualizzare gruppi di dati tramite un'unica operazione. LA IBM cominciò a implementare questa teoria in alcuni prototipi all'inizio degli anni settanta, come nel "System R". La prima versione fu realizzata nel 1974/75 con uno strumento "monotabella"; negli anni successivi furono studiati i primi sistemi che potessero supportare la suddivisione dei dati in tabelle separate, utile, come abbiamo visto, per la separazione dei dati opzionali in tabelle diverse da quella principale. Versioni "multiutente" furono realizzate nel 1978 e nel 1979; negli stessi anni fu standardizzato il linguaggio SQL. La superiorità di questo sistema rispetto a Codasyl fu quindi evidente e la IBM passò a sviluppare una versione commerciale di "System R", che prese il nome di "SQL/DS" prima e di "Database 2" (DB2) infine. Database management system 110</p><p>Il lavoro di Codd venne proseguito presso l'Università di Berkeley da Eugene Wong e Michael Stonebraker. Il loro progetto, chiamato INGRES e finanziato con fondi destinati alla creazione di un database geografico, vide la luce nel 1973 e produsse i primi risultati nel 1974 anche grazie all'opera di numerosi studenti che si prestarono quali programmatori (quasi 30 persone lavorarono al progetto). INGRES era assai simile a "System R" e prevedeva un linguaggio alternativo a SQL, chiamato QUEL. Molte delle persone coinvolte nel progetto si convinsero della fattibilità commerciale dello stesso e fondarono imprese per entrare nel mercato con questo prodotto. Sybase, Informix, NonStop SQL e alla fine Ingres stessa nacquero quali "spin-off" per la diffusione di INGRES all'inizio degli anni ottanta. Perfino Microsoft SQL Server è, per certi versi, una derivazione di "Sybase" e, quindi, di INGRES. Solamente la Oracle di Larry Ellison partì utilizzando un approccio diverso, basato sul "System R" della IBM, e alla fine prevalse sulle altre compagnie con il suo prodotto, lanciato nel 1978. In Svezia il lavoro di Codd venne sviluppato nella Università di Uppsala che sviluppò un diverso prodotto, "Mimer SQL", commercializzato nel 1984. Una particolarità di questa soluzione sta nell'introduzione del concetto di transazione, successivamente importata in quasi tutti i DBMS.</p><p>Database multidimensionali Presto alcuni DBMS pseudo-relazionali, come Oracle o Sybase, conquistarono grandissime quote di mercato anche se non erano completamente aderenti al lavoro originale di Codd. Come risultato, l'implementazione di interrogazioni con questi sistemi su database perfettamente aderenti agli standard risulta essere assai poco efficiente. Ad esempio, per ricercare l'elenco degli utenti che hanno come cognome "Rossi", tali DBMS cercano le chiavi primarie nella tabella "Utenti", dopodiché cercano nella tabella "Indirizzi" le istanze con quella chiave nella colonna corrispondente. Anche se ciò è trasparente all'utente, che percepisce una singola operazione, il DBMS compie un lavoro computazionalmente assai oneroso. Per risolvere questo problema i programmatori hanno adattato alcuni standard per migliorare le performance dei sistemi; tali adattamenti hanno però causato degli "extra-costi" in termini di ridondanza di dati e controlli per assicurare la consistenza delle basi di dati. I database multidimensionali, ignorano la indipendenza tra gli aspetti fisici e logici della base di dati insita nel modello relazionale, e al contrario, lasciano la definizione dei puntatori ai programmatori. Invece di cercare l'indirizzo del Signor Rossi in diverse tabelle, il DBMS memorizza un puntatore al record "Indirizzo". In effetti, se il dato "appartiene" ad un certo record nella "tabella padre", questo può essere memorizzato nella stessa area di memoria del primo, ed in tal modo è possibile velocizzare l'accesso. Naturalmente il dato deve appartenere solamente ad un dato-padre. Questo tipo di implementazione fisica dei dati può (e dovrebbe) essere fatta in questi database pseudo relazionali, pur mantenendo una indipendenza logica: il programmatore dovrebbe vedere solamente la chiave primaria che poi andrebbe "tradotta" dal DBMS in un puntatore. A causa degli scarsi risultati in termini di tempo di accesso ai dati, spesso dovute a cattive implementazioni di questi concetti, i database multidimensionali hanno avuto scarso successo, anche se molti concetti sono stati ripresi dai database ad oggetti. Database management system 111</p><p>DBMS ad oggetti I DBMS a oggetti sono detti anche ODBMS (Object DBMS). I database multidimensionali ebbero comunque un ruolo importante sul mercato: portarono alla creazione di basi di dati ad oggetti. Basata sugli stessi concetti generali, questa nuova tipologia di sistemi, consente agli utenti di memorizzare direttamente "oggetti" all'interno delle basi di dati. Ovvero, gli stessi principi della programmazione ad oggetti, invece di dover effettuare un adattamento di metodi e variabili. Questo può avvenire grazie al particolare concetto di proprietà dei database multidimensionali. Nella programmazione ad oggetti, ognuno di questi "oggetti" tipicamente ne conterrà altri. Ad esempio, l'oggetto contenente il Signor Rossi, conterrà un riferimento all'oggetto "Indirizzo". Contenendo il supporto per molti linguaggi di programmazione ad oggetti, i database che sfruttano la medesima tecnologia stanno avendo un periodo di forte sviluppo di questi tempi. Oggi molti DBMS applicano in realtà un misto tra il modello relazionale e il modello a oggetti. Si parla quindi di ORDBMS (Object Relational DBMS).</p><p>Architettura di un DBMS Un DBMS è uno strumento per la creazione e la gestione efficiente di grandi quantità di dati che consente di conservarli in modo sicuro per lunghi periodi di tempo. Un DBMS fornisce agli utenti questi servizi: • Persistent storage: come un file system, un DBMS permette la memorizzazione di grandi quantità di dati, ma garantisce una flessibilità molto più elevata • Programming interface: permette agli utenti di accedere e modificare i dati attraverso un potente linguaggio di interrogazione • Transaction management: supporta l'accesso concorrente ai dati evitando conseguenze indesiderate dovute a crash del sistema o dell'applicazione Si considerano due diversi tipi di utenti: • utenti convenzionali/applicazioni che modificano dati e formulano interrogazioni • l'amministratore della base di dati (database administrator - DBA) responsabile per la struttura, lo schema e la gestione della base di dati Nell'architettura di un DBMS abbiamo le seguenti sezioni: 1. Dischi e file 2. Storage manager 3. Buffer manager 4. Index/file/record manager 5. Execution engine 6. Query compiler 7. Concurrency control 8. Logging/recovery 9. Transaction manager Una suddivisione alternativa semplificata (ma parziale), utile a comprendere per linee generali il comportamento di un DBMS, potrebbe essere questa: 1. Gestore delle interrogazioni 2. Gestore dei metodi di accesso 3. Gestore del buffer (Buffer manager) Database management system 112</p><p>Il gestore delle interrogazioni Si occupa di elaborare le richieste dell'utente, di solito espresse in SQL, quindi in un linguaggio di tipo dichiarativo (un tipo di linguaggio in cui si descrivono i dati che si vogliono ottenere), e di tradurle in un insieme di operazioni (una procedura), che saranno poi effettivamente eseguite. Di solito vi sono più modi diversi di tradurre un'interrogazione e la funzione principale del gestore delle interrogazioni è quella di scegliere fra le varie alternative quella migliore, quella cioè che richiede un minor tempo di elaborazione ed una minore occupazione di memoria. Ad esempio, un'ottimizzazione consiste nell'anticipare sempre le operazioni di selezione, in modo da diminuire fin dall'inizio il numero di record da elaborare, con ovvi miglioramenti nell'occupazione di memoria e nella velocità. Altre ottimizzazioni sono fatte basandosi su criteri di tipo statistico: la grandezza di una tabella, come le tabelle sono fisicamente memorizzate, ecc. Alla fine dell'elaborazione il gestore delle interrogazioni darà delle direttive al gestore dei metodi di accesso per trovare le tuple.</p><p>Il gestore del metodo di accesso Si occupa di individuare il blocco in cui è presente la tupla di interesse. Un utente con privilegi di amministratore dichiara al sistema come gestire gli accessi, tramite una Tavola CRUD. Il DBMS dovrebbe consentire l'accesso in scrittura a una generica risorsa informatica, ad un solo utente alla volta. Se due utenze accedono alla stessa risorsa, apportando modifiche, si hanno due casi: 1. se salvano contemporaneamente il loro lavoro, sorge un conflitto di edizione; 2. se salvano le modifiche in momenti diversi, chi pubblica per ultimo sovrascrive il lavoro dell'utente precedente. Il DBMS può includere delle utility per fare dei merge fra versioni differenti della stessa risorsa.</p><p>Il gestore del buffer Un DBMS deve gestire una grossa mole di dati, e nel corso delle elaborazioni lo spazio richiesto per i blocchi di dati sarà spesso maggiore dello spazio di memoria disponibile. Per questo vi è la necessità di gestire un'area di memoria in cui caricare e scaricare i blocchi. Il gestore del buffer si occupa principalmente di gestire le operazioni inerenti al salvataggio e il caricamento dei blocchi. In effetti, le operazioni che mette a disposizione il gestore del buffer sono queste: • FIX: con questo comando si dice al gestore del buffer di caricare un blocco dal disco e restituire il puntatore all'area di memoria in cui lo si è caricato. Se il blocco era già in memoria, il gestore del buffer deve solo restituire il puntatore, altrimenti deve caricarlo dal disco e portarlo in memoria. Se il buffer in memoria è pieno però si possono avere 2 situazioni: • esiste la possibilità di liberare una porzione di memoria perché occupata da transazioni già terminate. In questo caso prima di liberare l'area si scrive il contenuto sul disco se qualche blocco di quest'area era stato modificato. • Non esiste la possibilità di liberare memoria perché occupata tutta da transizioni ancora in corso. In questo caso il gestore del buffer può lavorare in 2 modalità: nella prima modalità (STEAL) il gestore del buffer libera della memoria occupata da una transizione già attiva, salvando eventualmente le modifiche sul disco; nella seconda modalità (NOT STEAL) la transizione che ha richiesto il blocco viene fatta attendere finché non si libera memoria. • SET DIRTY: richiamando questo comando si contrassegna un blocco in memoria come modificato. Prima di introdurre gli ultimi 2 comandi si deve anticipare che il DMBS può operare in 2 modalità: FORCE e NOT FORCE. Quando lavora in modalità FORCE, il salvataggio su disco avviene in modalità sincrona con il commit di una transazione. Quando lavora in modalità NOT FORCE il salvataggio viene effettuato di tanto in tanto in maniera asincrona. In genere i database commerciali operano in modalità NOT FORCE perché ciò consente un aumento delle prestazioni: il blocco può subire più modifiche in memoria prima di essere salvato, poi è possibile scegliere di effettuare i salvataggi quando il sistema è più scarico. Database management system 113</p><p>• FORCE: Con questo comando si forza il gestore del buffer ad effettuare la scrittura in modo sincrono con la conclusione (commit) della transazione • FLUSH: Con questo comando si forza il gestore del buffer ad eseguire il salvataggio, quando ci si trova in modalità NOT FORCE.</p><p>Lista di DBMS comuni • Software proprietario • 4th Dimension • CUBRID • DB2 (IBM) • Caché (InterSystems) • FileMaker Pro (FileMaker, Inc., posseduta da Apple) • IMS/DB (IBM) • Informix (IBM) • Ingres (Computer Associates) • InterBase (Borland) • Microsoft SQL Server (Microsoft) • Microsoft Access (Microsoft) • mSQL • Netezza • Oracle (Oracle Corporation) • SQL Anywhere Studio • Sybase SQL Server • Teradata (NCR Corporation) • TimesTen (TimesTen, Inc.) • Open source o <a href="/tags/Free_software/" rel="tag">free software</a> • Berkeley DB (Sleepycat Software) • DBM • Drizzle • Firebird SQL (The FirebirdSQL Foundation; derivato da InterBase) • GigaBASE • HSQL Database Engine • HyperNetDatabase • MaxDB (prima SAP DB e Adabas) • Metakit • MySQL (MySQL AB) • Ozone • PicoSQL (un Dbms italiano) • PostgreSQL (in precedenza Postgres) (PostgreSQL Global Development Group) • SQLite (di pubblico dominio) • ZODB Database management system 114</p><p>Voci correlate • Database • Data warehouse • ISAM • VSAM • JDBC • ODBC • OLAP • Persistenza • XML • Modello relazionale • DBMS e sicurezza</p><p>Collegamenti esterni • DBMS a confronto - Articolo con slide + relazione [1] • DBMS a confronto - File PDF - Versione 1.0 [2] • Introduzione ai DBMS [3]</p><p>Note</p><p>[1] http:/ / geekplace. org/ index. php?m=news& titolo=DBMS_a_Confronto& id=90</p><p>[2] http:/ / geekplace. org/ download/ DBMS%20a%20confronto%20-%20NeCoSi%2001. pdf</p><p>[3] http:/ / www. methack. it/ devblog/ 2008/ 07/ 07/ introduzione-ai-dbms/</p><p>MySQL</p><p>MySQL</p><p>Sviluppatore Oracle Corporation</p><p>Ultima versione 5.5.23 (13 aprile 2012)</p><p>Ultima beta 5.6.5 (10 aprile 2012)</p><p>S.O. Multipiattaforma</p><p>Genere RDBMS</p><p>Licenza GNU GPL o Licenza commerciale [1]</p><p>(Licenza libera)</p><p>Sito web http:/ / www. mysql. com/</p><p>MySQL, definito Oracle MySQL, è un Relational database management system (RDBMS), composto da un client con interfaccia a caratteri e un server, entrambi disponibili sia per sistemi Unix come GNU/Linux che per Windows, anche se prevale un suo utilizzo in ambito Unix. MySQL 115</p><p>Dal 1996 supporta la maggior parte della sintassi SQL e si prevede in futuro il pieno rispetto dello standard ANSI. Possiede delle interfacce per diversi linguaggi, compreso un driver ODBC, due driver Java, un driver per Mono e .NET ed una libreria per python. Il codice di MySQL venne sviluppato fin dal 1979 dalla ditta TcX ataconsult, poi rinominata MySQL AB, ma è solo dal 1996 che viene distribuita una versione che supporta SQL, prendendo spunto da un altro prodotto: mSQL. MySQL AB è stata rilevata da Sun Microsystems nel 2008, mentre nel 2010 quest'ultima è stata acquisita da Oracle Corporation. MySQL svolge il compito di DBMS anche nella piattaforma LAMP, una delle più usate e installate su Internet per lo sviluppo di siti e applicazioni web dinamiche.</p><p>Storia Il codice di MySQL era inizialmente di proprietà della società MySQL AB, veniva però distribuito con la licenza GNU GPL oltre che con una licenza commerciale. Fino alla versione 4.0, una buona parte del codice del client era licenziato con la GNU LGPL e poteva dunque essere utilizzato anche per applicazioni proprietarie. Dalla versione 4.1 in poi, anche il codice del client è distribuito sotto GNU GPL. Esiste peraltro una clausola estensiva [2] che consente l'utilizzo di MySQL con una vasta gamma di licenze libere. Nel luglio 2007 la società svedese MySQL AB aveva 385 dipendenti in numerosi paesi. I suoi principali introiti provenivano dal supporto agli utilizzatori di MySQL tramite il pacchetto Enterprise [3], dalla vendita delle licenze commerciali e dall'utilizzo da parte di terzi del marchio MySQL. Il 16 gennaio 2008 Sun Microsystems ha acquistato la società per un miliardo di dollari,[4] stimando il mercato del database in 15 miliardi di dollari. Il 20 aprile 2009 alla stessa Sun Microsystems è stata proposta l'acquisizione da parte di Oracle per 7,4 miliardi di dollari. L'accordo, approvato dall'antitrust USA, è poi passato al vaglio degli organi corrispondenti dell'Unione Europea, preoccupati dal conflitto di interessi costituito dai database commerciali Oracle rispetto a MySQL. Il padre di MySQL, Michael Widenius, ha lanciato una petizione online per opporsi alla fusione. Nonostante ciò l'Unione Europea ha dato parere favorevole, e l'acquisizione è stata completata il 27 gennaio 2010[5]. Il software MediaWiki, che gestisce i siti del progetto Wikipedia, è basato su database MySQL.</p><p>Amministrazione</p><p>Esistono diversi tipi di MySQL Manager, ovvero di strumenti per l'amministrazione di MySQL. Uno dei programmi più popolari per amministrare i database MySQL è phpMyAdmin (richiede un server web come Apache HTTP Server ed il supporto del linguaggio PHP). Si può utilizzare facilmente tramite un qualsiasi browser.</p><p>Alcune offerte di terze parti sono HeidiSQL, SQLYog o Toad for MySQL. In alternativa la stessa MySQL AB offre programmi quali MySQL Administrator (amministrazione del database, degli utenti, operazioni pianificate, Pagina iniziale di phpMyAdmin carico del server, ...) e MySQL Query Browser (esecuzione di svariati tipi di query), MySQL Migration Toolkit per importare da altri DBMS. MySQL 116</p><p>Per il disegno e la modellazione di database MySQL esiste MySQL Workbench: integra il disegno, la modellazione, la creazione e l'aggiornamento di database in un unico ambiente di lavoro. In passato veniva sviluppato anche MySQLcc (MySQL control center), sostituito da MySQL Query Browser.</p><p>Sviluppo Fino a qualche anno fa lo sviluppo del programma era opera soprattutto dei suoi sviluppatori iniziali: David Axmark, Allan Larsson e Michael Widenius. Quest'ultimo era il principale autore del codice - oltre che principale socio della società - e tuttora coordina il progetto, tra l'altro vagliando i contributi che pervengono dai volontari. I contributi vengono accettati a condizione che il loro autore condivida i diritti d'autore con la società. Da luglio 2007 la società impiega un centinaio di sviluppatori a tempo pieno.</p><p>Versioni</p><p>3.23 La prima versione alfa del ramo 3.23.x è stata rilasciata nel luglio 1999. La prima versione di produzione è del gennaio 2001. Nelle versioni 3.23.x sono stati aggiunti i tipi di tabella MyISAM (che rimpiazza il vecchio Isam), HEAP (ora MEMORY), InnoDB e BDB. Inoltre sono state aggiunte la ricerca fulltext e la replica dei database.</p><p>4.0 Nell'ottobre 2001 è stata rilasciata la prima versione alfa del ramo 4.0.x, mentre nel marzo 2003 è entrata in produzione. Le aggiunte più significative sono: • una cache per le query • le query di tipo UNION • DELETE multitabella • migliorate le tabelle Merge perché supportino le INSERT e i campi autoincrementanti • limitazione delle risorse utilizzabili da ogni singolo utente • variabili d'ambiente reimpostabili con il comando SET • una libreria per incorporare le funzioni di MySQL in un altro programma</p><p>4.1 La prima versione del ramo 4.1.x risale all'aprile 2003, mentre nell'ottobre del 2004 è entrato in produzione. Le aggiunte più significative sono: • le Subquery. Queste sono delle query SQL nidificate. Si ha dunque la possibilità di scrivere:</p><p>SELECT * FROM tabella1 WHERE colonna1 = (SELECT colonna1 FROM tabella2)</p><p>• dati geografici memorizzati secondo il modello OpenGIS • i Prepared Statements • le connessioni SSL/TLS • set di caratteri impostabili a livello di database, tabella e colonna; aggiunto il supporto per Unicode (UTF8 e UCS2) • commenti a livello di colonna MySQL 117</p><p>5.0 Il 22 dicembre 2003 viene rilasciata la prima versione della serie 5.0, che è entrata in produzione il 19 ottobre 2005. Le aggiunte più significative sono: • le viste, tabelle virtuali ricavate da una query SQL, aggiornabili quando possibile • le stored procedure, un vero e proprio linguaggio di programmazione per interagire con i dati del database. Oltre ai soliti parametri di ricerca e selezione è possibile inserire costrutti [IF ... THEN ... ELSE], tanto per fare un esempio. • i trigger, istruzioni SQL che vengono lanciate automaticamente prima o dopo l'esecuzione di determinate query su determinate tabelle • INFORMATION_SCHEMA, un database virtuale che descrive la struttura di tutti gli altri database; inoltre i comandi SHOW, che anch'essi restituiscono informazioni sulla struttura dei database, sono stati potenziati • il tipo di dati BIT • gestione appropriata del fuso orario (timezone) • i tipi di tabella Archive e Federated • un'API ben strutturata per sviluppare nuovi tipi di tabelle</p><p>5.1 La prima alfa pubblica è uscita il 29 novembre 2005. Le principali nuove caratteristiche sono: • il partizionamento delle tabelle • un'API per scrivere nuovi parser per le ricerche FULLTEXT • gli eventi • replica basata sui dati (anziché sulle query) • i log possono essere scritti in un database, oltre che nei file di testo • supporto per Xpath • campi AUTOINCREMENT e varie ottimizzazioni per le tabelle ARCHIVE • ClusterDB ora può scrivere i dati su disco, oltre che conservarli nella RAM; supporta inoltre MontaVista • ALTER TABLE, CREATE INDEX e DROP INDEX sono molto più performanti</p><p>5.2 La versione 5.2 è in fase alfa e le principali novità sono il nuovo storage engine Falcon e il backup online. Sul sito di MySQL è scomparso ogni riferimento alla versione 5.2 e le novità che avrebbe dovuto introdurre sono state pianificate per la versione 6.0.</p><p>5.4 Si tratta del primo ramo sviluppato sotto l'egida della Sun - ora Oracle. Non è quindi un caso che questa versione abbia avuto come unico scopo l'ottimizzazione del server su sistemi Solaris e su hardware SPARC, nonché l'ottimizzazione di InnoDB - in particolare della sua configurazione di default, che prima aveva notevoli difetti. MySQL 118</p><p>5.5 Una versione di preview, pensata per testare alcune funzionalità prima dell'uscita della versione 6.0 stabile.</p><p>5.6 Una versione di preview, pensata per testare alcune funzionalità prima dell'uscita della versione 6.0 stabile.</p><p>Tipi tabelle MYSQL (storage engine) In MySQL una tabella può essere di diversi tipi (o storage engine). Ogni tipo di tabella presenta proprietà e caratteristiche differenti (transazionale o meno, migliori prestazioni, diverse strategie di locking, funzioni particolari, ecc). Esiste poi un'API che si può utilizzare per creare in modo relativamente facile un nuovo tipo di tabella, che poi si può installare senza dover ricompilare o riavviare il server.</p><p>Storage Engine ufficiali I tipi di tabella predefiniti sono: • MyISAM • InnoDB (transazionale, sviluppata da InnoBase Oy, società ora comprata da Oracle) • Memory (una volta si chiamava Heap) • Merge • NDB, o ClusterDB (introdotta nella 5.0) • CSV (introdotta nella 5.1) • Federated (introdotta nella 5.0) • Archive (introdotta nella 5.0) • Blackhole (introdotta nella 5.0) • Falcon (transazionale, è ancora in sviluppo) • Maria (un "MyISAM a prova di crash"; è ancora in sviluppo)</p><p>Storage Engine Obsoleti • Isam (non più supportata; era il motore di default prima di essere sostituita da MyISAM) • BDB (transazionale, sviluppata da SleepyCat, società ora acquisita da Oracle; dalla versione 5.1.12 non è più presente in MySQL) • <a href="/tags/Gemini_(protocol)/" rel="tag">Gemini</a> (non più supportato e non più compatibile con le API di MySQL da molti anni, una volta era importantissimo in quanto motore transazionale; era prodotto dalla NuSphere, la quale non ha mai rispettato la licenza GPLv2 di MySQL e in tribunale ha tentato di negarne la validità giuridica, salvo poi accordarsi con MySQL per il pagamento dei danni economici e ritirare il prodotto dal mercato)</p><p>Storage Engine prodotti da terze parti Esistono anche storage engine prodotti da terze parti. Eccone alcuni: • PrimeBase XT Engine [6] - Motore transazionale progettato per applicazioni web ad alta concorrenza • solidDB [7] - Motore transazionale • RitmarkFS [8] - Permette di accedere al filesystem in lettura e in scrittura tramite comandi SQL, supporta anche la replica del filesystem • Distributed Data Engine [9] - Motore per dati distribuiti, per gestire meglio il carico di lavoro • mdbtools [10] - Permette di leggere e scrivere un file .mdb (Access) Una volta esisteva il tipo Gemini, sviluppato dalla NuSphere. Poiché però il suo codice non è mai stato rilasciato, MySQL ha intentato una causa legale, in seguito alla quale lo sviluppo e il supporto per Gemini sono cessati. MySQL 119</p><p>Compatibilità MySQL, essendo scritto in linguaggio C e C++, è disponibile su molti differenti sistemi operativi tra cui AIX, AmigaOS, BSDi, Digital Unix, FreeBSD, HP-UX, GNU/Linux, Mac OS X, NetBSD, <a href="/tags/Novell/" rel="tag">Novell</a> NetWare, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, SGI Irix, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows 2003, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows 7, Windows 8. Le piattaforme di riferimento sono Linux e Solaris. La documentazione di MySQL offre comunque un aiuto per chi avesse bisogno di provare a compilare il software su qualsiasi sistema operativo discretamente diffuso. MySQL utilizza anche i tool <a href="/tags/Automake/" rel="tag">automake</a>, <a href="/tags/Autoconf/" rel="tag">autoconf</a> e libtools per aumentare la compatibilità. Le tabelle di tipo BDB funzioneranno solo sui seguenti sistemi operativi: GNU/Linux 2.x Intel, Solaris (SPARC and <a href="/tags/X86/" rel="tag">x86</a>), FreeBSD 4.x/5.x (x86, sparc64), AIX 4.3.x, SCO OpenServer, SCO UnixWare 7.1.x Sono disponibili dei driver per i linguaggi C, C++, C#, Eiffel, Java, Perl, PHP, Python, Ruby, Tcl e per le piattaforme Mono e .Net. Infine, il linguaggio SQL di MySQL comprende numerose estensioni che sono tipiche di altri DBMS, quali PostgreSQL, Oracle e Sybase. In questo modo le query non standard scritte per altri DBMS in alcuni casi funzioneranno senza problemi.</p><p>Fork MySQL non è mai stato realmente aperto ai contributi dei volontari esterni, i quali devono aspettare mesi o anni (generalmente invano) nella speranza di poter vedere pubblicati i loro seppur minimi bug fix. Ora che MySQL è stata acquistata da Sun (a sua volta acquisita da Oracle) sembra che l'edizione Community abbia sempre meno importanza, in favore di quella enterprise. Dall'insofferenza di alcuni utenti, perfino di molti lavoratori di MySQL, verso questi problemi, nascono i fork di MySQL.</p><p>Drizzle Nato da Brian Aker tra l'aprile e il maggio del 2008, questo fork è un DBMS incredibilmente leggero. Partendo da MySQL 6, alcuni sviluppatori hanno eliminato la maggior parte delle sue funzioni, mantenendo il cuore, ripulendolo e modificando la sua architettura. L'idea è quella di creare un microkernel con numerose interfacce che può utilizzare per caricare funzionalità esterne. Pare che durante il processo di pulizia il codice sia arrivato a dimensioni inferiori ai 200 KB. Le funzionalità eliminate sono moltissime: stored procedure, viste, trigger, prepared statement, cache, MyISAM. Tutte queste potrebbero essere reimplementate sotto forma di plugin, senza appesantire inutilmente (enormemente…) tutti gli utenti che non le utilizzano. Perché, nonostante queste caratteristiche siano insostituibili in particolari situazioni, ognuna di esse è completamente inutile per la quasi totalità degli utenti di MySQL. Si vedano: • il progetto su Launchpad [11] • il wiki italiano [12] MySQL 120</p><p>MariaDB Questo fork[13] è stato creato da Monty Widenius nel 2009 dopo la sua fuoriuscita dalla Sun Microsystems, dovuta in parte a problemi con questa società e in parte all'acquisizione della stessa da parte della concorrente Oracle. Quest'ultima motivazione ha portato molti dei principali sviluppatori di MySQL a seguire Widenius nel Monty Program, la nuova società da lui avviata per supportare il fork. Come suggerisce il nome, MariaDB si focalizza principalmente sullo sviluppo dello Storage Engine Aria (il cui vecchio nome era Maria, dedicato alla terza figlia di Widenius), una sorta di evoluzione di MyISAM. Sono stati inclusi anche Storage Engine e altre patch realizzati da terze parti, in particolare quelli distribuiti con OurDelta. Inoltre altre migliorie al server sono state create appositamente, alcune evoluzioni sviluppate per MySQL sono state importate nel fork e alcuni bug presenti nel programma originale sono stati corretti.</p><p>Percona Server Percona Server with ExtraDB, o semplicemente Percona Server, è un fork sviluppato da Percona che contiene, oltre allo Storage Engine XtraDB (fork di InnoDB) diverse patch sviluppate principalmente dalla stessa società.</p><p>OurDelta Si tratta di una distribuzione sviluppata da Open Query. Il ramo 5.0 (prima versione del programma) si basa sul codice di MySQL 5.0, mentre il ramo 5.1 si basa su MariaDB 5.1. OurDelta applica diverse patch sviluppate da terze parti e crea pacchetti per le distribuzioni GNU/Linux <a href="/tags/Debian/" rel="tag">Debian</a>, <a href="/tags/Ubuntu/" rel="tag">Ubuntu</a>, Red Hat e CentOS.</p><p>Proven Scaling Ne parla nel luglio del 2008 sul blog delle performance di MySQL Peter Zaitsev, ma esisteva già. Il fork nasce dalla constatazione che MySQL Community Edition è quasi defunto: annunci ufficiali prospettano solo due release annuali più qualche security fix che non potrà essere considerato una vera e propria versione. Dunque, un utente dovrebbe utilizzare MySQL Enterprise Edition, oppure rassegnarsi ad utilizzare prodotti sempre un po' vecchi, superati e con molti bug che sono già stati individuati o risolti da mesi. Proven Scaling però si ingegna, scarica l'edizione enterprise, vi aggiunge vari plugin del caso che provengono dalla comunità del software libero e ne fa un plugin. Il repository contiene le versioni (anche datate) per tutti i sistemi operativi supportati da MySQL. • Il repository [14]</p><p>Note</p><p>[1] http:/ / www-it. mysql. com/ company/ legal/ licensing/ commercial-license. html</p><p>[2] http:/ / www. mysql. com/ company/ legal/ licensing/ foss-exception. html</p><p>[3] http:/ / www. mysql. com/ products/ enterprise/</p><p>[4] (EN) Sun Microsystems Announces Agreement to Acquire MYSQL (http:/ / www. sun. com/ aboutsun/ pr/ 2008-01/ sunflash. 20080116. 1. xml)</p><p>[5] (EN) Oracle Completes Acquisition of Sun (http:/ / finance. yahoo. com/ news/ Oracle-Completes-Acquisition-iw-2658323391. html?x=0& . v=1). Yahoo Finance, 27 gennaio 2010. URL consultato il 04 febbraio 2010.</p><p>[6] http:/ / www. primebase. com/ xt</p><p>[7] http:/ / dev. soliddb. com/</p><p>[8] http:/ / www. ritmark. com/</p><p>[9] http:/ / ddengine. org/</p><p>[10] http:/ / sourceforge. net/ projects/ mdbtools</p><p>[11] http:/ / www. launchpad. net/ drizzle</p><p>[12] http:/ / it. drizzle. wikia. com/</p><p>[13] (EN) intervista a Widenius riguardo a Mysql ed al recente fork da lui creato: MariaDB (http:/ / monty-says. blogspot. com/ 2009/ 12/</p><p> help-keep-internet-free. html)</p><p>[14] http:/ / mirror. provenscaling. com/ MySQL 121</p><p>Voci correlate • Database management system • SQL • MariaDB • mSQL • MySQL Manager • MySQL Proxy • MySQL Workbench</p><p>Altri progetti</p><p>• Wikimedia Commons contiene file multimediali: http:/ / commons. wikimedia. org/ wiki/ Category:MySQL</p><p>Collegamenti esterni</p><p>• Sito ufficiale (http:/ / www-it. mysql. com/ )</p><p>• (EN) Petizione per salvare MySQL da Oracle (http:/ / www. helpmysql. org)</p><p>• (EN) MySQL Forge (http:/ / forge. mysql. com/ ) Progetti Open Source legati a MySQL</p><p>• (EN) MySQL Wiki (http:/ / forge. mysql. com/ wiki/ Main_Page) Il Wiki ufficiale dedicato a MySQL</p><p>• Manuale di MySQL Administrator (http:/ / dev. mysql. com/ doc/ administrator/ it/ index. html)</p><p>• Manuale di MySQL Query Browser (http:/ / dev. mysql. com/ doc/ query-browser/ it/ index. html)</p><p>• (EN) Manuale di MySQL Migration Toolkit (http:/ / dev. mysql. com/ doc/ migration-toolkit/ en/ index. html)</p><p>• (EN) Sito ufficiale di MariaDB (http:/ / askmonty. org/ )</p><p>• (EN) Download per phpMyAdmin (http:/ / www. phpmyadmin. net/ )</p><p>• (EN) <a href="/tags/Planet_(software)/" rel="tag">Planet</a> MySQL (http:/ / www. planetmysql. org/ ) Raccolta di blog su MySQL</p><p>• (EN) Heidi SQL (http:/ / www. heidisql. com/ )</p><p>• (EN) SQL Yog (http:/ / www. webyog. com/ en/ )</p><p>• (EN) Toad for MySQL (http:/ / www. quest. com/ toad-for-mysql/ )</p><p>• Guida per phpMyAdmin (http:/ / freephp. html. it/ guide/ lezioni. asp?idguida=9)</p><p>• Soluzione problema codifica utf-8 da MySQL > 4.1.x (http:/ / www. massimo-caselli. com/ 2006/ 01/ 28/</p><p> soluzione-problema-codifica-caratteri-mysql/ )</p><p>• Convertire un file di Access (.MDB) a MySQL (http:/ / www. tarantovillage. it/ forum/ manuali/</p><p> guida-convertire-un-file-di-access-mdb-mysql-vt2434. html)</p><p>• Community italiana su MySQL (http:/ / www. mysqlitalia. it/ )</p><p>• Oracle compra Sun Microsystems: quale futuro per MySQL, Openoffice e Virtualbox? (http:/ / www.</p><p> matteomoro. net/ 2009/ 04/ 21/ oracle-compra-sun-microsystems-quale-futuro-per-mysql-openoffice-e-virtualbox/ ) phpMyAdmin 122 phpMyAdmin</p><p> phpMyAdmin</p><p>Pagina iniziale di phpMyAdmin Sviluppatore The phpMyAdmin Project</p><p>[1] Ultima versione 3.4.9 (21 dicembre 2011 )</p><p>Ultima beta 3.5.0 Alpha 1 (6 gennaio 2012)</p><p>S.O. Multipiattaforma</p><p>Linguaggio PHP</p><p>Genere MySQL Manager</p><p>Licenza GPL (Licenza libera)</p><p>Sito web http:/ / www. phpmyadmin. net</p><p>PhpMyAdmin è un'applicazione PHP libera che consente di amministrare in modo semplificato database di MySQL tramite un qualsiasi browser. L'applicazione è indirizzata sia agli amministratori del database, sia agli utenti. Gestisce i permessi prelevandoli dal database MySQL. PhpMyAdmin permette di creare un database da zero, creare le tabelle ed eseguire operazioni di ottimizzazione sulle stesse. Presenta un feedback sulla creazione delle tabelle per evitare eventuali errori. Sono previste delle funzionalità per l'inserimento dei dati (popolazione del database), per le query, per il backup dei dati, ecc.. L'amministratore, invece ha a disposizione un'interfaccia grafica per la gestione degli utenti: l'interfaccia permette l'inserimento di un nuovo utente, la modifica della relativa password e la gestione dei permessi che l'utente ha sul database. phpMyAdmin 123</p><p>Installazione Innanzitutto bisogna aver installato e configurato MySQL e Apache, e bisogna che siano attivi. PhpMyAdmin va salvato in una cartella web (per esempio www, wwwroot, etc). Se non si è esperti nell'installazione di Apache, PHP o MySQL, si possono utilizzare pacchetti già preconfezionati che installato tutti i software in un singolo passaggio, come [[EasyPhp [2]]] o [[XAMPP [1]]].</p><p>Configurazione Dopo averlo installato e messo nella cartella web, occorre configurarlo. Per fare ciò, va aperto il file config.inc.php situato nella cartella di PhpMyAdmin e vanno modificate le seguenti righe:</p><p>$cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin/'; $cfg['Servers'][$i]['auth_type']= 'http'; $cfg['Servers'][$i]['user']= 'nomeutente'; </p><p>Ovviamente al posto di nomeutente si può inserire ciò che si vuole. Se questa configurazione non funziona allora la si può impostare così:</p><p>$cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin/'; $cfg['Servers'][$i]['auth_type']= 'config'; $cfg['Servers'][$i]['user']= 'root';</p><p>Il resto può essere lasciato tutto com'è. La password può venire impostata da PhpMyAdmin.</p><p>Versioni • 0.9.0 (9 settembre 1998): Prima release interna. • 1.0.1 (26 ottobre 1998) • 1.2.0 (29 novembre 1998) • 1.3.1 (27 dicembre 1998): Prima versione multilingue. • 2.1.0 (8 giugno 2000): Ultima versione del programmatore originale Tobias Ratschiller. • 2.2.0 (31 agosto 2001): Prima versione pubblicata dal The phpMyAdmin Project. • 2.3.0 (8 novembre 2001): Viste database e tabella sono state divise in sezioni più piccole. • 2.5.0 (4 novembre 2003): Introduzione del sistema di trasformazione basato su MIME. • 2.6.0 (27 settembre 2004): Implementato supporto per i set di caratteri e MySQL 4.1. • 2.7.0 (4 dicembre 2005); Capacità d'importazione migliorate, configurazione semplificata, interfaccia grafica riordinata, e molto altro. • 2.8.0 (6 marzo 2006): Aggiornamenti di compatibilità, database nascosti, limiti di memoria configurabili, setup web-based. • 2.9.0 (20 settembre 2006) • 2.10.0 (27 febbraio 2007): GUI per le relazioni (Designer). • 2.11.0 (22 agosto 2007): Supporto alle viste basate sui risultati di query, gestione di trigger, procedure e funzioni. Interfaccia migliorata per server con gran numero di database e tabelle. Ultima versione a supportare PHP 4. • 3.0.0 (27 settembre 2008): Richiesti PHP 5.2 e MySQL 5. Supporto eventi e trigger. • 3.1.0 (28 novembre 2008): Nuovo meccanismo di installazione. • 3.2.0 (15 giugno 2009) • 3.2.1 (9 agosto 2009) • 3.2.2 (13 settembre 2009) • 3.2.3 (30 ottobre 2009) • 3.3.0 (7 marzo 2010) phpMyAdmin 124</p><p>• 3.4.0 (11 maggio 2011]): AJAX in alcune parti dell'interfaccia, grafici, generatore di query visivo, preferenze per utenti, editor per ENUM / SET</p><p>Note</p><p>[1] (EN) Rilasci del software phpMyAdmin (http:/ / www. phpmyadmin. net/ home_page/ news. php). URL consultato il 15-09-2011.</p><p>[2] http:/ / www. easyphp. org/</p><p>Voci correlate • MySQL • PHP • Webserver • PhpPgAdmin</p><p>Altri progetti</p><p>• Wikimedia Commons contiene file multimediali: http:/ / commons. wikimedia. org/ wiki/ Category:PhpMyAdmin</p><p>Collegamenti esterni</p><p>• Il sito ufficiale di phpMyAdmin (http:/ / sourceforge. net/ projects/ phpmyadmin/ )</p><p>Guide e Tutorial</p><p>• Guida per phpMyAdmin (http:/ / freephp. html. it/ guide/ lezioni. asp?idguida=9)</p><p>• Documentazione ufficiale in italiano (http:/ / www. phpmyadmin. net/ pma_localized_docs/ Documentation-it. html) (parziale)</p><p>• Tutorial in italiano (http:/ / forum. tutorialweb. org/ showthread. php?t=718)</p><p>• Guida in italiano (http:/ / www. risorse. net/ mysql/ phpmyadmin/ )</p><p>• Altra guida su phpMyAdmin (http:/ / php. html. it/ guide/ leggi/ 78/ guida-phpmyadmin/ )</p><p>Risorse</p><p>• EasyPhp (http:/ / www. easyphp. org/ ) pacchetto PhpMyAdmin, Mysql, Php, Apache tutto incluso</p><p>• XAMPP (http:/ / www. apachefriends. org/ it/ xampp. html) pacchetto PhpMyAdmin, Mysql, Php, Apache tutto incluso per Windows o GNU/Linux</p><p>• Web developer Suite (http:/ / www. devside. net/ ) PhpMyAdmin, Mysql, php, Apache e molto ancora tutto in un'unica soluzione, gratuitamente e facile da usare</p><p>• PhpMyAdmin Tutorials (http:/ / www. webhosting. uk. com/ phpmyadmin-tutorials. php) - Learn how to use this database management system to manage the DBs. Fonti e autori delle voci 125 Fonti e autori delle voci</p><p>World Wide Web Fonte:: http://it.wikipedia.org/w/index.php?oldid=49188396 Autori:: .anaconda, 5Y, A7N8X, AKappa, Abisys, Actarux, Adattolo, Aerandir09, Aidosnet, Alfio, Ary29, Assianir, AttoRenato, Avesan, Basilero, Bciaghi, Bellantese, Beta16, Blakwolf, Brownout, Bultro, ChemicalBit, Civvì, Comune mortale, Craig, CristianCantoro, Dommac, DonPaolo, Dread83, Drugonot, Dzag, Energia, Frankthequeen, Frieda, Furret, Gacio, Giuseppe2011solis, Gliu, Hellis, Iron Bishop, Iskander, Jacopo, Koko, Lolo00, Luisa, Lyell01, Macrakis, Marco Calvo, Marco Plassio, Matgio, Mauro Lanari, MaxDel, Mcimichell, Mfprimo, Midnight bird, MikyT, Moloch981, Moongateclimber, No2, Otto Vask, P tasso, Pepato, Pequod76, Phantomas, Pisquik, Porta seriale, Pracchia-78, Reddstain, Richhard, Rojelio, Romero, Sbisolo, Senpai, Sentruper, Siebrand, Simone, Sky, Suisui, Taueres, Template namespace initialisation script, Ticket 2010081310004741, Toobaz, Twice25, Wedgefish, ZioNicco, ppp-179-144.24-151.libero.it, 188 Modifiche anonime</p><p>Suite di protocolli Internet Fonte:: http://it.wikipedia.org/w/index.php?oldid=49134114 Autori:: Abisys, Amux, Ary29, AttoRenato, Braccobaldo92, Castagna, Daniele Forsi, Davide, Domenico De Felice, Giovannigobbin, Guarracino, Hce, Ilario, KeyboardSpellbounder, Lukius, M1CH3L3, Misakiforever, Moongateclimber, NicFer, Nitya Dharma, Ricercatorew76, Tank00, Vdfn, Vulkano, 49 Modifiche anonime</p><p>File Transfer Protocol Fonte:: http://it.wikipedia.org/w/index.php?oldid=48968039 Autori:: 27182, Abisys, Alfio, Anglachel, AnjaManix, Arkanoid80, Ary29, Avesan, Bigboss00, Billiejoex, Blakwolf, Brownout, Cyberuly, Daemon nio, Dega180, Dirigenteitis, DnaX, Eippol, Eumolpo, Frieda, Gabrielemargon, Gauss, Giomol, Guidomac, Harlock81, Hellis, Iron Bishop, Lorenzo Zoffoli, Marcel Bergeret, Marius, Mavericksaur, Maxcip, Mirkop88, Moongateclimber, Moroboshi, Ninja, No2, Orso della campagna, Phantomas, Pracchia-78, Sassospicco, Sbisolo, Shardanaa, Snowdog, Stemby, Template namespace initialisation script, Ticket 2010081310004741, Tomi, Twice25, Vulkano, Wfra, 34 Modifiche anonime</p><p>Hypertext Transfer Protocol Fonte:: http://it.wikipedia.org/w/index.php?oldid=49176945 Autori:: %Pier%, .anaconda, .mau., 5Y, A7N8X, Abisys, Al Pereira, Alfio, Anotherhacktivist, Ary29, Avesan, Azrael555, Brownout, Buggia, Caulfield, Davide21, Derfel74, Elbloggers, Eumolpo, Fabexplosive, Filemon, FollowTheMedia, Frieda, Giacomo Ritucci, Gioppe, Guidomac, Gvf, Harlock81, Hashar, Hellis, Iron Bishop, Iskander, L736E, Lorenzor, M.Costantino, M7, Madaki, Mamo139, Marius, MaxDel, Maxferrario, Mfprimo, Miklee, Moongateclimber, Napy84, Ninja, Phantomas, Rojelio, Rollopack, Salvatore Ingala, Sbisolo, Sentruper, Simone, Suisui, Taueres, Ticket 2010081310004741, TierrayLibertad, Toobaz, Twice25, Unriccio, Vulkano, Wfra, 79 Modifiche anonime</p><p>Simple Mail Transfer Protocol Fonte:: http://it.wikipedia.org/w/index.php?oldid=49175275 Autori:: .anaconda, Abisys, Airon90, Ale2006, Alef.ala, Alfio, Arkanoid80, Avesan, Barbaking, Fbartolom, Frieda, Govoch, Guam, Hashar, Hellis, Iron Bishop, Luckyz, M7, Marcuscalabresus, Mauro742, MikyT, Moongateclimber, Rl89, Sbisolo, Sergio.ballestrero, Simo ubuntu, Sythos, Toobaz, Unriccio, Vanadio, Vulkano, Zhw, 42 Modifiche anonime</p><p>Multipiattaforma Fonte:: http://it.wikipedia.org/w/index.php?oldid=48930704 Autori:: Abisys, Ary29, Avesan, Bellamelll, Buggia, DnaX, DonPaolo, Drizzt, LoStrangolatore, Necromante, No2, Phantomas, PiKey, Piddu, Sbisolo, Sperimentatore, 5 Modifiche anonime</p><p>Browser Fonte:: http://it.wikipedia.org/w/index.php?oldid=48990036 Autori:: A7N8X, AKappa, Abisys, Alfio, Alkalin, Alleborgo, Amux, Apollo13, Ary29, Austro, Balubino, Brunocip, Buggia, ChemicalBit, Claudius18, DarkAp, Daviboz, Dom De Felice, Eippol, Elbloggers, Elborgo, Euka, Eumolpa, Eumolpo, Eustace Bagge, Fabiob, Fale, Fir, Fra150190, G84, Gabrielepx, Gandalf92, Garethjax, Gianfranco, Gusme, Harlock81, Hashar, Hellis, Homer, Iron Bishop, Iskander, Istunix, Kaleido, Kibira, Kiterd, Klemen Kocjancic, L.V., Lornova, Lucas, Marco Teoli, Marcok, Marcuscalabresus, Marenzio, Massic80, Mazz, Mazzo96, Mediano88, Melkor II, MikyT, Moongateclimber, Mrtb, Nelloska, Nemo bis, Nick1915, Nikai, Nikkor5, No2, Olando, Phantomas, Pigr8, Pino alpino, Poweruser, Pullus In Fabula, Qualc1, Rayan, Reo-chan, Restu20, Sabaku The Berserk, SalvoIsaja, Sandro kensan, Sante Caserio, Sbisolo, Shivanarayana, StuxNet, Suisui, Taueres, Tooby, Topwikione, Twice25, UED77, Valepert, Waddle, Ylebru, host143-102.pool212171.interbusiness.it, 152 Modifiche anonime</p><p>Internet Explorer Fonte:: http://it.wikipedia.org/w/index.php?oldid=49082894 Autori:: -Hyde-, .anaconda, Abisys, Alchimista di Cristallo, Alesh84, AlexAlexAlexAlex, Alfio, Alleborgo, Andrea 93, Andreabont, Antilope, AttoRenato, Austro, Avemundi, Azrael555, B3t, Balfabio, Beta16, Billo88, Biopresto, Biscionecanale5, Bixxio, Bladela, Borgolibero, Bronzin, Buzz lightyear, Cant, Carobeppe, Cotton, Dany-85, Davide24, Dbiagioli, Djechelon, Donald450, Edonan, El salvador, EliOrni, Energia, Eumolpo, Fabiob, Fede Reghe, Figiu, Frack, Francescomilione, Frank87, Gabrasca, Gac, Gandalf92, Gennargentu, Giancy, Gibix, Giorasta, Giovannigobbin, Grigio60, Hellis, IUserMac, Ignlig, Incola, Iron Bishop, Iskander, It06, Jalo, Jean85, Kaspo, Kky, Laurentius, Leo45555, Leoman3000, Lolo00, Lornova, LucAndrea, Luca Ghio, LucaDetomi, M7, Mackley, Malemar, Marce79, Marius, Mark250594, Massic80, Mav1983, Mazz, Merto, MikyT, Mimmik, Moongateclimber, Mrtb, Nemesis 92, Neustradamus, Nevermindfc, Nichlaus, No2, Nuovoastro, Olando, Olivercervera, OrbiliusMagister, P tasso, Pavanandrea1, Pegua, Pequod76, Phantomas, Piracmone, Poweruser, Ppalli, Pracchia-78, Przemyslaw Drewnowski, RanZag, Rhadamanth, Rikky, Roberto1974, Rojelio, Rollopack, Salvatore Ingala, Sandr0, Sardanus, Sassospicco, Sasuke89, Senpai, Shaka, Simo ubuntu, Sinigagl, Snowdog, Stemby, Template namespace initialisation script, Tomfox, Tommaso Ferrara, Trixt, Umberto NURS, Una giornata uggiosa '94, Valepert, VincenzoX, Vituzzu, Wizard, Words, Yerul, 292 Modifiche anonime</p><p>Safari (browser) Fonte:: http://it.wikipedia.org/w/index.php?oldid=48346653 Autori:: .anaconda, Abisys, Aimoneale, Alchimista di Cristallo, Ale Cresta, Alessiotto, Anewangelfades, Ant F, Azrael555, Balubino, BdP, Biscionecanale5, Calabash, Dega180, Dome, Donzimm, F l a n k e r, FB020997, Fiol91, G84, GabrixBrown, Gac, Gdevitis, Hellis, IUserMac, Ippocampo89, Kiado, Kky, Krdan, L736E, LazLong, Lolo00, Lorenzov79, Loverdrive, Luca Ghio, Mackley, Mda, Moloch981, Nico-<a href="/tags/MIX_(Microsoft)/" rel="tag">mix</a>, Patrias, Paxxx, Phantomas, Poweruser, Ppalli, Quicksilver, Raik24, Rikky, Senpai, Shaka, Simo ubuntu, SimoneEärendil, Snowdog, Superchilum, TEOtheBIG, Tener, TierrayLibertad, Tommaso Ferrara, Topwikione, Unriccio, WikiKiwi, Windowsuninstall, Xja, 76 Modifiche anonime</p><p>Google Chrome Fonte:: http://it.wikipedia.org/w/index.php?oldid=49265634 Autori:: .anaconda, Abriele93, Adryx, Afnecors, Aimoneale, Andrew 13, Antarino, Antimo1960, Balabiot, Ballyweg, Blakwolf, Bublegam, Buggia, Bultro, Cemg, Claireliz, CristianCantoro, Dad97, Daniele1996, Deniel, Dr.House7, Ermy2, Eumolpo, Fantasma, Fir, FrancescoMori, G84, Gabrasca, Gcrazy, Gdevitis, Gibix, GinkyBiloba, Grifone87, Grigio60, Guidomac, Guybrush Threepwood, Guybrush84, Hebdbzc, Helios, IlPasseggero, Johnp1983, Kibira, Kky, Korez, LazLong, Lecter, Lolo00, Lucas, MLDB, Mackley, Manu9208, Marce79, Marco.parrilla, MarcoGen, Mariosangiorgio, Mark250594, Mark91, Matte92, Mess, Michele-sama, Microtauro, Mind The Gap, Neq00, Nicksoft, Nicolat95, Nubifer, PaleariGabriele, Panz Panz, Patchita, Patrias, Pciarl, Pequod76, Peval27, Pippomone, Poweruser, Ppalli, Pracchia-78, Qbert88, Raik24, Ranma25783, Razzairpina, Reder, Rikky, Rocker85, Rockmoda01, Sabbo91, Sanghino, Sanremofilo, Simo ubuntu, SimoneMLK, Sinigagl, Starwars, Strech, Tanonero, Taueres, Topwikione, Trixt, Ture1989, Una giornata uggiosa '94, Valepert, Valtekken, VittGam, Wisher, Yiyi, Zanzalo, Zzsdf, 351 Modifiche anonime</p><p>Opera (browser) Fonte:: http://it.wikipedia.org/w/index.php?oldid=49237924 Autori:: -Hyde-, A7N8X, Abisys, Affarimiei, Ale-sandro, Alfio, Arcanis, Archenzo, Ary29, Asdalol, Axios, BPsoftware, Basilero, Blues, Bob4, Ciny2, Damidalla, Daniele Caselli, DarkRadeon, Dudo, Ekerazha, Enjoy22, Eros88, Fir, Freepenguin, Fripp, Gastaman, Gdevitis, Genfrusciante, Gibix, GiòGiò, Grizzo94, Gsdefender2, Hashar, Helios, Hellis, Hexaä, Ippatsu, Iron Bishop, Jesstes, Kaspo, KingFanel, Kky, Krdan, L736E, Lbreda, Lecter, Levi4than, Link 16, Lolo00, Lordmarcho, Lornova, LucAndrea, Luckyz, M4tt3o, M7, Mackley, Mando91, Marcuscalabresus, Mazz, Mediano88, Microtauro, MikyT, Mimmik, Mitchan, Mixer1, Mocu, Next, Nick1915, Nicos18, Nijeko, No2, Omashee, Patrias, Pazzotranquillo, PersOnLine, Phantomas, Pracchia-78, Qualc1, Quicksilver, Rael, RaminusFalcon, RanZag, Remember the dot, Rikky, Roberto.catini, Romero, Sante Caserio, Sassospicco, Sasà anarchia, Schickaneder, Senpai, Simo ubuntu, Smark, Snowdog, Sonic89, Stefano Nesti, Suisui, Sumail, Svante, Taueres, Tenebroso, The nuts, Tmm360, Topwikione, Twice25, Vale maio, Valepert, Viipuri, VincenzoX, WOFall, Wizard, Zinn, 152 Modifiche anonime</p><p>Server web Fonte:: http://it.wikipedia.org/w/index.php?oldid=47929888 Autori:: .anaconda, Abisys, Alessio Ganci, Alfio, Apollo13, Arriano60, Ary29, Avesan, Brownout, CavalloRazzo, DnaX, Giomol, Hellis, Iron Bishop, Jalo, Kevinoo, Luckyz, Marcok, Moongateclimber, Puppybarf, R.niccolai, Ramac, Sentruper, Snowdog, Stefa.rossi, TerenceHill, Viames, Vituzzu, Zafferania, 55 Modifiche anonime</p><p>Apache HTTP Server Fonte:: http://it.wikipedia.org/w/index.php?oldid=48535306 Autori:: .anaconda, .snoopy., Abisys, Actam, Ale-sandro, Alec, Art3K, Avesan, Awd, B3t, Basilero, Beatrice, Bla, Bonand, Caccia di conoscenza, Danyela, DocteurCosmos, Dommac, Elbloggers, Fabiogremo, Fale, FiloSottile, Frasurf, Freepenguin, Frieda, Giomol, Gionnico, Hashar, Hawk, Helios, Hellis, Infopingus, Iron Bishop, Iskander, Issproevolution, Jacklab72, Kucebe, L736E, Light, LucAndrea, Marc-André Aßbrock, Marius, Mauro742, Moongateclimber, No2, Patafisik, Pigr8, Poweruser, Purodha, Rquaglia, Sbisolo, Snowdog, Square87, Suisui, 48 Modifiche anonime</p><p>XAMPP Fonte:: http://it.wikipedia.org/w/index.php?oldid=47346561 Autori:: Abisys, Alec, Antonell, Avesan, Buggia, Causa83, Deca, DnaX, Dr Zimbu, Elbloggers, Freepenguin, Gh0stNerd, Gig, LoStrangolatore, Luxo, Retaggio, Rollopack, Shaitan, Sonic89, Stefano-c, TerenceHill, Tomchen1989, Tommaso Ferrara, Zenny.zoccar, 31 Modifiche anonime</p><p>HTML Fonte:: http://it.wikipedia.org/w/index.php?oldid=48703532 Autori:: .anaconda, .snoopy., 213.26.250.xxx, 5Y, 9peppe, A7N8X, AKappa, Abisys, Ale2006, Alearr, Alec, Alexsergio, Alfio, Alkalin, Amarvudol, AmonSûl, Archenzo, Ask21, Beta16, Blakwolf, Bouncey2k, Calabash, Cloc3, Costadilevante, Daniele Gallesio, Davide Giacobino, Diablo, Dj ture, DnaX, Dorian, Elwood, F. Cosoleto, Fabio.michele, Filnik, FrAnCiS, Frankthequeen, Franz Liszt, Frieda, Frigotoni, Gacio, Gianfranco, Grigio60, Guaka, Guidomac, Guignol, Hashar, Hazmat2, Hellis, Hill, Hrundi V. Bakshi, Iakopo, Ildebocci, Iron Bishop, Jacopo, Jojos, Kal-El, Kibira, L736E, Laiten, LazLong, Lilja, Lolo00, LovDesArt, Lucas, Lumacorno, MaEr, Marco Perticarini, Marcok, Melkor II, Mepple, Mikelima, Moongateclimber, Moroboshi, Mtt, Neq00, Nevermindfc, No2, Number 21, Oruam, P tasso, Pbrenna, Phantomas, Piero, Ppalli, Purodha, Raenkrus, Rfp, Roberto82, Rollopack, Rossa1, Rufous, Sailor-Sun, Sassospicco, Sbisolo, Scusatesonoio, Senpai, Sentruper, Seveso, Shivanarayana, Simone, Snowdog, Stiv, Suisui, SuperVirtual, Supernino, Tank00, Taueres, Tenebroso, Tiaderewith, Topgear93, Twice25, Ucianci, Una giornata uggiosa '94, Valepert, W1k1p3d14an, Webkid, 168 Modifiche anonime Fonti e autori delle voci 126</p><p>CSS Fonte:: http://it.wikipedia.org/w/index.php?oldid=48917069 Autori:: A7N8X, AmonSûl, Angus73, AnjaManix, Aojnews, Ary29, Ask21, Banus, Codicorumus, ColdShine, Colom, Dario2994, Diablo, Edo, El salvador, El1073, Elbloggers, Eskimoeskimo, Eumolpo, F l a n k e r, Francesco Terenzani, Frieda, Gabrielepx, Gildos, Grifone87, Guidomac, Hellis, Jacopo, L736E, Laurusnobilis, Lepido, LoStrangolatore, Lucas, Marcok, Mark91, Moongateclimber, Mpitt, Neq00, No2, Obsidianart, Paginazero, Pequod76, Pietrodn, Raoli, Ricky80milano, Rollopack, Sassospicco, Satanasso, Sentruper, Smart, Stemby, SuperVirtual, Tommaso Ferrara, Totosl85, Una giornata uggiosa '94, Updown, Wim b, Wiso, Xno, 75 Modifiche anonime</p><p>PHP Fonte:: http://it.wikipedia.org/w/index.php?oldid=49009531 Autori:: .anaconda, .snoopy., 12-210-196-189.client.attbi.com, Abisys, Actarux, Alberto da Calvairate, Alecos71, Alescan, Alessandro Astarita, Alessio.dipaola, Alfio, Amux, AnyFile, Archenzo, Arpyone, Ary29, Ask21, Auro, Avesan, Azullino, Balabiot, Beta16, Biopresto, Caccia di conoscenza, Camelia.boban, Chronos92, Claudio.M, Clovepower, Codas, Contezero, Demart81, Devon, Diablo, Djdomix, Djechelon, Drugonot, Dsmcg21, Elbloggers, Ettos, Eugesoft, Fain182, Fede Reghe, Fidech, Filnik, Frankthequeen, Freepenguin, Frieda, Fstab, G84, Gabriele79, Gabrielepx, Galessandroni, Garak, Genuzzu, Gianni T, Gionnico, Giovdi, Guaka, Guidomac, Guidoz, Hellis, Iaga, Ilario, Iron Bishop, Kiam, Laurentius, Lilja, LkMsWb, LoRdHaCk, LoStrangolatore, Lucagiaca, Lucas, Luisa, Luke94, M7, MIX, MaEr, Marcok, Massic80, Mastazi, Mauro742, Max Rebus, Moongateclimber, Mrtb, Nitya Dharma, No2, Noiz, Patafisik, Phantomas, Pickblack, Pigr8, Piracmone, Ppalli, Pr, Probid, Punkettaro, Qualc1, Raffaespo, Ramac, Rdocb, Rikky, Rinoworld, Rollopack, Salvorapi, Sandcreek, Sante Caserio, Sassospicco, SbiellONE, Sbisolo, Seics, Seveso, Sevy, Siggy, Simone, Snake79, Snowdog, Square87, Suisui, SuperAlberT, Taueres, The Polish, Totosl85, Ttan, Valepert, VincenzoX, Vulkano, Webguide, Wikit2006, Wikivideo, Wizard95, Xoen, 194 Modifiche anonime</p><p>Database Fonte:: http://it.wikipedia.org/w/index.php?oldid=49253082 Autori:: .snoopy., Abisys, Addispy, Airon90, Alberto da Calvairate, Antonell, Ary29, Austro, Avesan, B3t, BMF81, Bladerun, Blakwolf, Bultro, Cardo89, Carlo.milanesi, Ciampix, Cisco79, Civvì, Coyote83, Cryngo, Daniele Forsi, Dante78, Deliaviola, Demostene119, Digitaljail, Djdomix, Dp, Dsmcg21, Eippol, Elwikipedista, ErBabbuino, Eynar, Fabuio, Filippof, Flocca, Franks59, Freddyballo, Gac, Giovannigobbin, Guidomac, Gvf, Hashar, Hellis, Iron Bishop, Iskander, Kal-El, Kallsuh, Kaus, LaseriumFloyd, LoStrangolatore, M7, Mangiucugna, MapiVanPelt, Marcuscalabresus, Marius, Mauro742, Merlinox, Mizardellorsa, Moongateclimber, Morillo, Nemo bis, Neperiano, No2, Paroledipolvere, Piera Daraio, Pil56, Roberto82, Roh, Ronchet, Sante Caserio, Sassospicco, Sbisolo, Sd, Sentruper, Sil84, Simo771, Simone, Snowdog, Stefanoneri, Stemby, Taueres, Tenebroso, Ticket 2010081310004741, Timetwister, Tooby, Twice25, Valepert, Vituzzu, 183 Modifiche anonime</p><p>Database management system Fonte:: http://it.wikipedia.org/w/index.php?oldid=48356900 Autori:: 5Y, Alessandroraffa, Archenzo, Avesan, BMF81, Basilero, Contezero, Coyote83, Cubrid-guy, Djdomix, Domenico De Felice, Dp, Eippol, Elwikipedista, Emme.pi.effe, Gac, Glbuganz, Hellis, Ilpirata, Indaco1, Joana, Kaus, Laki85, M.Manuel, M7, Marius, Moongateclimber, NicFer, No2, Phantomas, Pietrodn, Pigr8, Pojus, Pracchia-78, Roh, Sante Caserio, Sbisolo, Snowdog, Suisui, TierrayLibertad, Unriccio, Vaccaricarlo, Valepert, 71 Modifiche anonime</p><p>MySQL Fonte:: http://it.wikipedia.org/w/index.php?oldid=48884734 Autori:: .anaconda, 4ndr34, Abisys, Abyssadventurer, Airon90, Aka-Red, Ale-sandro, Alfo90, Alkalin, Alleborgo, Amux, Ask21, Avesan, Bob27, Chpfeiffer, Cionfs, DanyUP, DonPaolo, Dread83, Dsmcg21, Elbloggers, Emme.pi.effe, Exorcist Z, Fale, Flea, Flyingstar16, Frack, Freepenguin, Frieda, Galessandroni, Gianluca Varisco, Gigaster, Gmaxia, Hashar, Hellis, Henrykus, Ignlig, Ilario, Iron Bishop, Iskander, Jacklab72, Lanciano, Laurentius, M7, Marco.tonchella, Marfio82, Mastazi, Maulattu, Maxgrante, Mbg, Mippo, Mkr77, Moloch981, Moongateclimber, Nanae, Nemo bis, Nihil, Orsogrigioita, Patrias, Pegasos2, Poweruser, Pr, Purodha, Qualc1, Raffaespo, Ramac, Ramatteo, Raysonho, Rollopack, Ryuujin, Salvatore Ingala, Sante Caserio, Sbisolo, Smart, Snowdog, Spinot, Suisui, SuperProf, Tomi, Valepert, Whiteillidan, metis02.abnamro.nl, pppfree166-90-bz.aknet.it, 101 Modifiche anonime</p><p> phpMyAdmin Fonte:: http://it.wikipedia.org/w/index.php?oldid=46452075 Autori:: -Hyde-, Alexamici, Andrea09falco, Andrew w, Antonell, Archenzo, Asterisco, Avesan, B3t, Casell, DocteurCosmos, Dsmcg21, Elbloggers, Fale, Federiconet, Frieda, Gianluca Varisco, Grifone87, Gvf, Hashar, Incola, LkMsWb, LoStrangolatore, Lukius, M7, Marc-André Aßbrock, Marco Plassio, Marte81, MitRouting, Mtt, Nitya Dharma, Patrias, PersOnLine, Pietrodn, Roccivic, Shaitan, Simone, Stiv, Taueres, Tommaso Ferrara, 19 Modifiche anonime Fonti, licenze e autori delle immagini 127 Fonti, licenze e autori delle immagini</p><p>File:Prima pagina del Web.jpg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Prima_pagina_del_Web.jpg Licenza: sconosciuto Autori:: Hellis, Valepert File:WorldWideWebAroundWikipedia.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:WorldWideWebAroundWikipedia.png Licenza: GNU Free Documentation License Autori:: User:Chris 73 File:First Web Server.jpg Fonte:: http://it.wikipedia.org/w/index.php?title=File:First_Web_Server.jpg Licenza: sconosciuto Autori:: User:Coolcaesar at en.wikipedia Immagine:Wikinews-logo.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Wikinews-logo.svg Licenza: logo Autori:: Vectorized by Simon 01:05, 2 August 2006 (UTC) Updated by Time3000 17 April 2007 to use official Wikinews colours and appear correctly on dark backgrounds. Originally uploaded by Simon. Immagine:Wikiquote-logo.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Wikiquote-logo.svg Licenza: Public Domain Autori:: -xfi-, Dbc334, Doodledoo, Elian, Guillom, Jeffq, Krinkle, Maderibeyza, Majorly, Nishkid64, RedCoat, Rei-artur, Rocket000, 11 Modifiche anonime Immagine:Commons-logo.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Commons-logo.svg Licenza: logo Autori:: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version, created by Reidab. File:Modello FTP.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Modello_FTP.png Licenza: Creative Commons Attribution 2.5 Autori:: Fale, No2, Sbisolo, 3 Modifiche anonime File:Timeline of web browsers.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Timeline_of_web_browsers.svg Licenza: Creative Commons Attribution-ShareAlike 3.0 Unported Autori:: ADeveria File:Internet explorer logo.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_explorer_logo.png Licenza: sconosciuto Autori:: Gibix File:Internet explorer 9.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_explorer_9.png Licenza: logo Autori:: Gibix, Luca Ghio File:Internet Explorer - Linea del tempo Panoramica.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_Explorer_-_Linea_del_tempo_Panoramica.png Licenza: Creative Commons Attribution-Sharealike 3.0,2.5,2.0,1.0 Autori:: Utente:Luca Ghio File:IEMac.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:IEMac.png Licenza: sconosciuto Autori:: Luca Ghio File:Oe-Ie5-unix.jpg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Oe-Ie5-unix.jpg Licenza: sconosciuto Autori:: Luca Ghio, No2 File:Internet Explorer Mobile 9.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_Explorer_Mobile_9.png Licenza: sconosciuto Autori:: Utente:Luca Ghio File:Internet Explorer - Linea del tempo 94-97.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_Explorer_-_Linea_del_tempo_94-97.png Licenza: Creative Commons Attribution-Sharealike 3.0,2.5,2.0,1.0 Autori:: Utente:Luca Ghio File:Internet Explorer 1.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_Explorer_1.png Licenza: sconosciuto Autori:: Gibix, Luca Ghio File:Internet explorer 2.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_explorer_2.png Licenza: sconosciuto Autori:: Gibix, Luca Ghio File:Internet Explorer 3.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_Explorer_3.png Licenza: sconosciuto Autori:: Gibix, Luca Ghio File:Internet Explorer - Linea del tempo 97-01.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_Explorer_-_Linea_del_tempo_97-01.png Licenza: Creative Commons Attribution-Sharealike 3.0,2.5,2.0,1.0 Autori:: Utente:Luca Ghio File:Internet Explorer 4.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_Explorer_4.png Licenza: sconosciuto Autori:: Gibix, Luca Ghio File:Internet Explorer 5.5.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_Explorer_5.5.png Licenza: logo Autori:: Utente:Guybrush Threepwood File:Internet Explorer 6.PNG Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_Explorer_6.PNG Licenza: logo Autori:: Leo45555 File:Internet Explorer - Linea del tempo 06-oggi.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_Explorer_-_Linea_del_tempo_06-oggi.png Licenza: Creative Commons Attribution-Sharealike 3.0,2.5,2.0,1.0 Autori:: Utente:Luca Ghio File:Internet Explorer 7 Windows Vista.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Internet_Explorer_7_Windows_Vista.png Licenza: logo Autori:: Billo88, Larry Yuma, Stand by Me, 1 Modifiche anonime File:IE 8.PNG Fonte:: http://it.wikipedia.org/w/index.php?title=File:IE_8.PNG Licenza: logo Autori:: Leo45555, Luca Ghio File:Safari 4.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Safari_4.png Licenza: logo Autori:: Azrael555, GabrixBrown, Krdan, Paxxx File:Google Chrome 2011 Logo.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Google_Chrome_2011_Logo.svg Licenza: Public Domain Autori:: Ahmad Alharbi, MBisanz, Papatt, Stefan4, Truu File:Google Chrome 17.0.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Google_Chrome_17.0.png Licenza: sconosciuto Autori:: Dad97, Narayan89 File:Opera O.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Opera_O.svg Licenza: Trademarked Autori:: Opera Software ASA File:Opera10.50.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Opera10.50.png Licenza: logo Autori:: Utente:The nuts File:Opera Release Timeline.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Opera_Release_Timeline.svg Licenza: Creative Commons Attribution-Sharealike 2.5 Autori:: WOFall (talk) Using as Template: Timeline_of_web_browsers.svg by ADeveria Immagine:Opera Mini logo.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Opera_Mini_logo.svg Licenza: Public Domain Autori:: Original uploader was Vargklo at en.wikipedia Immagine:Opera mini.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Opera_mini.png Licenza: GNU General Public License Autori:: Boris23, KKPCW, Serdelll, 2 Modifiche anonime Immagine:Opera Mobile logo.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Opera_Mobile_logo.png Licenza: Public Domain Autori:: Opera Software Immagine:OperaMobile11.10 on Android 3.1.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:OperaMobile11.10_on_Android_3.1.png Licenza: Creative Commons Attribution-Sharealike 3.0 Autori:: User:Gp752002 File:ASF-logo.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:ASF-logo.svg Licenza: Apache Autori:: Apache Software Foundation (ASF) Immagine:Apache architettura.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Apache_architettura.png Licenza: Public domain Autori:: Kucebe File:Xampp logo.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Xampp_logo.svg Licenza: GNU General Public License Autori:: Tomchen1989 File:HTML <a href="/tags/Source_code/" rel="tag">source code</a> example.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:HTML_source_code_example.svg Licenza: GNU General Public License Autori:: Html-source-code3.png: Reisio derivative work: Hazmat2 (talk) File:Struttura html.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Struttura_html.svg Licenza: Public Domain Autori:: Ricordisamoa Immagine:Wikibooks-logo.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Wikibooks-logo.svg Licenza: logo Autori:: User:Bastique, User:Ramac et al. File:Crystal Clear app stylesheet.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Crystal_Clear_app_stylesheet.svg Licenza: sconosciuto Autori:: Cirt, Derbeth, Jackl, Radio Taxi, Ricvelozo, Rocket000, Ysangkok File:Crystal Project stylesheet.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:Crystal_Project_stylesheet.png Licenza: GNU Lesser General Public License Autori:: Everaldo Coelho ( YellowIcon) File:CSS.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:CSS.svg Licenza: Creative Commons Attribution-Sharealike 2.5 Autori:: Dreftymac File:PHP-logo.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:PHP-logo.svg Licenza: Public Domain Autori:: Biktora Immagine:Wikiversity-logo-It.svg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Wikiversity-logo-It.svg Licenza: sconosciuto Autori:: - File:Mysql-hires.<a href="/tags/GIF/" rel="tag">gif</a> Fonte:: http://it.wikipedia.org/w/index.php?title=File:Mysql-hires.gif Licenza: Free Art License Autori:: MySQL AB, 2008-2009 Sun Microsystems, Inc. Immagine:php myAdmin.jpg Fonte:: http://it.wikipedia.org/w/index.php?title=File:Php_myAdmin.jpg Licenza: sconosciuto Autori:: Utente:Dsmcg21 Image:PhpMyAdmin logo.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:PhpMyAdmin_logo.png Licenza: GNU General Public License Autori:: The phpMyAdmin Project Immagine:PhpMyAdmin-main-it.png Fonte:: http://it.wikipedia.org/w/index.php?title=File:PhpMyAdmin-main-it.png Licenza: Creative Commons Attribution-Sharealike 3.0 Autori:: User:Roccivic Licenza 128 Licenza</p><p>Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/</p> </div> </div> </div> </div> </div> </div> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="/js/details118.16.js"></script> <script> var sc_project = 11552861; var sc_invisible = 1; var sc_security = "b956b151"; </script> <script src="https://www.statcounter.com/counter/counter.js" async></script> <noscript><div class="statcounter"><a title="Web Analytics" href="http://statcounter.com/" target="_blank"><img class="statcounter" src="//c.statcounter.com/11552861/0/b956b151/1/" alt="Web Analytics"></a></div></noscript> </body> </html>