









Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
appunti presi a lezione di Informatica di Base al DAMS, Università di Bologna
Tipologia: Appunti
1 / 17
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!










Che cos’è un computer?
Definizione Macchina per l’elaborazione di dati rappresentati da caratteri alfanumerici variamente codificati che vengono sottoposti a procedimenti aritmetici e logici, memorizzati in archivi reperibili e trasmissibili. Termine generico Qualsiasi agente che è in grado di fare calcoli e produrre una risposta ( Output ) a partire da qualche informazione iniziale ( Input ).
I computer “umani” sono stati impiegati: per calcolare le coordinate di oggetti extraterrestri (come i calcoli effettuati da Alexis Claude e colleghi per comprendere i vari passaggi della cometa Haley) per creare tabelle di conversione verso il nuovo sistema metrico (Napoleone Bonaparte) Problema calcoli lunghi e facilità di incorrere in errore 1641 Blaise Pascal inventa la “ Pascolina ” che è una calcolatrice meccanica a raggi per eseguire addizioni e sottrazioni. Fu la prima calcolatrice ad essere brevettata e commercializzata. 1671 Gattfried Leibniz migliora la “Pascolina” e crea la prima calcolatrice ( Cilindro di Liebniz ) in grado di eseguire le quattro operazioni aritmetiche. La calcolatrice ha un cilindro provvisto di manovella e di una serie di dentini che ingranavano in ruote per il calcolo.
1822 Charles Babbage sviluppa la Macchina Differenziale. L’Idea era quella di avere a disposizione una macchina che potesse gestire operazioni simili a quelle effettuate dai computer umani, ma in modo che fossero eseguite automaticamente, velocemente e senza errori. Fu in grado di costruire solo un prototipo parziale della macchina e, dopo l’entusiasmo iniziale, fu demoralizzato dalla limitata flessibilità che offriva. La Macchina non era programmabile e, di conseguenza, era in grado di utilizzare solo un numero limitato di operazioni sull’input ricevuto (specificato, fisicamente, cambiando specifiche configurazioni della macchina).
1837 Charles Babbage progetta la Macchina Analitica. Avrebbe dovuto permettere la creazione di qualunque calcolo procedurale, rendendola il primo computer meccanico e general purpose della storia. Contrariamente alla Macchina Differenziale, la Macchina Analitica era in grado di ricevere, in Input, istruzioni e dati mediante l’uso di schede perforate, senza obbligare l’utilizzatore a compiere manipolazioni fisiche della macchina stesa per farla funzionare.
La Macchina Analitica è programmabile ed esegue ogni genere di calcolo, non solo quelli relativi alle equazioni polinomiali. Il progetto era basato sul Telaio ( 1801 ) di Joseph Marie Jacquard che usava schede perforate per determinare come dovesse essere la trama del tessuto.
Tommy Flowers sperimenta le valvole termoioniche George Stibitz (Laboratori Bell) propone un calcolatore basato su un circuito elettrico Claude Shannon spiega come eseguire operazioni di Algebra Booleana con un circuito di interruttori Howard Aiken propone la costruzione di grandi calcolatori digitali e scopre a Harward un pezzo della macchina differenziale di Babbage 1938 : William Hewlett e David Packard fondono la loro società in un garage di Palo Alto 1937-1939 : John Vincent Atanasof sviluppa l’idea e completa il modello di un calcolatore elettronico 1941 : Kanrad Zuse completa un calcolatore digitale elettromagnetico programmabile pienamente funzionale
1946 Electronic Numerical Integrator and computer ( Eniac ) Il primo computer interamente digitale sviluppato negli Stati Uniti d’America. Eniac è il secondo computer elettronico Turing completo della storia e il primo computer elettronico General Purpose della storia: Completamente programmabile attraverso l’uso di cavi e interruttori Punto fisso nel tempo da cui tutti i moderni computer sono poi stati creati Utilizza 18.000 valvole termoioniche.
Programmare un computer ok se ci riferiamo a un computer elettronico, ma se ci riferiamo a un computer umano non possiamo parlare di programmare perchè possiamo programmare una persona? Casomai, diciamo che parliamo con una persona per istruirla sull’esecuzione di specifiche azioni attraverso l’uso di un particolare linguaggio (in questo caso naturale) che viene usato come canale di comunicazione. Si dovrebbero utilizzare gli stessi verbi, ovvero parlare e istruire, anche quando ci si riferisce a un computer elettronico. Scrivere un programma comunicare ad un computer elettronico utilizzando un linguaggio (in questo caso formale) che sia l’istruttore umano sia il computer stesso possano comprendere.
Approccio per risolvere problemi, sviluppare sistemi e capire il comportamento umano che riprende i concetti fondamentali della computazione ( = calcolo ). Definisce i processi mentali che coinvolgiamo quando formuliamo un certo problema ed esprimiamo le relative soluzioni usando un linguaggio che un computer (sia esso umano o macchina) può comprendere e, conseguentemente, eseguire. Astrazione processo di rimozione dei dettagli trascurabili di una situazione in modo da semplificarla, per così focalizzare l’attenzione sulle sue caratteristiche principali. Quando usiamo le Astrazioni? Usiamo queste astrazioni in modo intenzionale o inconscio nella vita quotidiana.
Dare nuovamente forma alle estrazioni che abbiamo già immagazzinato in passato come conseguenza della nostra esperienza personale e che, spesso, riutilizziamo inconsciamente. Ciò richiede, a volte, una notevole capacità d’introspezione e di riflessione sulle caratteristiche più importanti di un oggetto, di un discorso o di una situazione, non troppo diversamente da ciò che avviene nel pensiero filosofico e semiotica, ma sempre garantendo precisione e adeguatezza alla risoluzione di problemi e alla rappresentazione del loro contenuto, indipendentemente dal fatto che vogliamo risolvere il problema di come elaborare un testo digitale, di come organizzare i dati relativi a un’indagine archeologica, o di come trovare il modo migliore per raccomandare un prodotto o un servizio. Essere nuovamente e interamente coscienti di queste astrazioni significa doverle ridefinire usando un linguaggio appropriato per renderle comprensibili ad un computer. Obiettivo principale dell’insegnamento del pensiero computazionale è quello di permettere alle persone di pensare come se fossero computer scientist , anche quando bisogna affrontare attività del quotidiano.
Fa parte del processo di astrazione il descrivere l’informazione presente in una certa situazione secondo un’organizzazione generica e riutilizzabile in più contesti. Si usano quelle che comunemente sono chiamate strutture dati una sorta di contenitore dove possano posizionare alcune informazioni e che fornisce dei metodi specifici per aggiungere e richiedere pezzi di questa informazione: o Lista è una sequenza di elementi ordinati e potenzialmente ripetibili che si possono contare, perché si può sapere quanti elementi essa contiene in un dato momento o Coda è una specie di lista vista da un’altra prospettiva e con uno specifico insieme di operazioni che possono essere effettuate sugli elementi che contiene. Le operazioni di aggiunta e rimozione seguono una strategia First in First Out (FIFO) il primo elemento che viene aggiunto è anche il primo che viene rimosso a seguito di una richiesta. o Pila è una specie di lista vista da un particolare punto di vista, ovvero dal basso verso l’alto, con uno specifico insieme di operazioni che si possono effettuare sugli elementi della pila. Le operazioni di aggiunta e rimozione seguono una strategia Last in first out (LIFO) l’ultimo elemento che viene inserito è il primo ad essere rimosso se richiesto. o Insieme è una collezione di elementi non ordinati e non ripetibili che si possono contare. I suoi elementi non sono ordinati perché l’ordine di inserimento non prescrive nessuna relazione di cardinali tra loro e, inoltre, non sono ripetibili perché lo stesso valore non può essere incluso duo o più volte. o Dizionario è una collezione non ordinata di elementi definiti da coppie chiave-valore che si possono contre (?) dove la chiave non è ripetibile. I suoi elementi non sono ordinati perché l’ordine di inserimento non prescrive nessuna relazione di cardinali tra gli elementi (come gli insiemi). Le chiavi di ogni coppia non sono ripetibili perché la stessa chiave non può essere usata duo o più volte nel dizionario. o L’ Albero è una struttura dati composta da un insieme di nodi collegati tra loro da una relazione gerarchica genitore-figlio. I nodi di questa struttura dati vengono disposti dall’alto verso il basso, contrariamente all’organizzazione dell’albero che siamo abituati ad osservare in natura. o Grafo è un insieme di nodi di una rete collegati da archi che possono essere orientati. Sono usati per descrivere, in termini astratti, molte situazioni del mondo reale (tragitti tra città, relazioni tra persone nei social network, l’organizzazione dei collegamenti ipertestuali tra pagine web e le relazioni concettuali nelle basi di dati). I grafi sono una delle principali strutture dati in informatica e, in generale, del pensiero computazionale. Un albero con la tipica nomenclatura dei suoi nodi a partire dal nodo centrale: Il bordo in grassetto è usato per identificare il nodo radice dell’albero (Root Nodes), che è l’unico senza alcun genitore. Il bordo tratteggiato è usato per indicare i nodi foglia dell’albero (Leaf Nodes), ovvero i nodi sprovvisti di figli. Nota Bene I nodi che terminano l’albero, chiamati nodi foglia, sono posizionati in basso nell’albero rispetto al nodo radice. ALGORITMI E COMPUTABILITÀ
Algoritmo un’ astrazione di una procedura passo, passo che prende qualcosa come input e produce un certo output scritta in un linguaggio specifico in modo che le istruzioni che definisce possano essere comunicate e comprese da un computer in modo da ottenere qualcosa come conseguenza dell’elaborazione di qualche materiale di input. Programmatore è una persona che crea algoritmi e li specifica in programmi usando uno specifico linguaggio comprensibile dal computer (elettronico). Nota Bene Gli algoritmi accompagnano sistematicamente le nostre attività quotidiane. Il termine algoritmo è una combinazione della parola latina Algorismus e della parola greca Arithmos (numero).
Non esiste un linguaggio standard per descrivere un algoritmo in modo che possa essere immediatamente comprensibile da un qualunque computer. Di solito, si usa uno pseudocodice (un linguaggio informale utilizzato per descrivere i passi principali di un algoritmo ad un umano anche se non è direttamente eseguibile da un computer elettronico). Ciò può avvenire, anche, se i suoi costrutti sono strettamente connessi con quelli tipicamente definiti nei linguaggi di programmazione.
Ada Lovelace ( 1815-1852 ), “in cantatrice dei numeri ”, era una matematica inglese. Capacità di applicare l’immaginazione al regno della scienza tratto distintivo della rivoluzione Industriale come della Rivoluzione Informatica. Il rinnovato impegno in campo matematico stimola la sua creatività determinando un immenso sviluppo dell’immaginazione. 1833 Partecipa ad una festa organizzata da Charles Babbage per presentare la Macchina Differenziale e ne fu cos’ capita che iniziò una corrispondenza epistolare con lui che durò ventisette anni. 1842 durante una conferenza a Torino dello stesso Babbage, la Macchina Differenziale cattura l’attenzione di un matematico italiano, Luigi Federico Menabrea , il quale pubblicò in francese un saggio sull’argomento. Ada traduce in inglese il saggio di Menabrea, arricchisce le teorie di Babbage con le sue osservazioni e, così, le Note di Ada, diventano il doppio della lunghezza del saggio stesso. 1843 pubblica le Note di Ada sulla rivista Taylor’s Scientific Revew, che divennero più famose del saggio e fecero di Ada la “prima programmatrice della storia”.
Ada Lovelace firma Le note di Ada con le sole iniziali A.A.L (Augusta Ada Lovelace) perché alle donne non venivano riconosciute unanimemente le stesse capacità intellettuali degli uomini. Tre concetti : Una macchia polifunzionale capace di essere programmata e riprogrammata per compiere una gamma illimitata e mutevole di operazioni Una macchina con la possibilità di archiviare, manipolare, processare e presentare ogni realtà esprimibile in termini simbolici: le parole, la logica, la musica e qualsiasi altra cosa per comunicare la quale ci serviamo di simboli
Noam Chomsky è uno dei padri della linguistica moderna, le cui ipotesi di ricerca principali sul linguaggio umano sono:
1. la sua struttura sintattica di base è rappresentabile mediante una teoria matematica 2. tale struttura è determinata biologicamente in tutti gli umani (è già presente in noi sin dalla nascita)
Ha realizzato la classificazione delle grammatiche formali in una gerarchia di crescente potere espressivo che rappresenta uno dei suoi più importanti contributi, considerando il suo impatto anche al di fuori della linguistica tradizionale (nel dominio dell’informatica teorica e nei linguaggi di programmazione).
Un insieme di regole di produzione forma , dove la presmessa e l’espressione possono contenere uno o più: simboli terminali (specificati tra virgolette) che identificano tutti i simboli elementari del linguaggio in considerazione (come nomi, verbi, etc.) simboli non terminali (specificati tra parentesi angolari) che identificano tutti i simboli di una grammatica formale che possono essere sostituiti da una combinazione di simboli terminali e non terminali. L’applicazione di una regola di produzione riguarda la sostituzione dei simboli nella premessa con quelli specificati nell’espressione finchè non si raggiunge una sequenza che include soltanto simboli terminali. Ogni grammatica formale deve specificare un simbolo di inizio che deve essere non terminale.
Chomsky ha proposto una gerarchia per descrivere formalmente le relazioni che possono esistere tra diverse grammatiche in termini delle loro possibili strutture sintattiche che sono in grado di generare. Queste tipologie sono caratterizzate dal tipo di simboli che possono essere usati nella premessa e nell’espressione delle regole di produzione. Autonoma un sistema dinamico e discreto. Sono utilizzati in informatica per descrivere i linguaggi formali. L’insieme dei simboli possibili forniti ad un autonoma costituisce il suo alfabeto. Autonoma a stati finiti sono dotati di un insieme finito di stati. Scandiscono una stringa di simboli in ingresso in maniera ordinata per decidere se appartenga o meno il al linguaggio. Autonomi a pila possono essere dotati di memoria supplementare. Tali autonomi sono in grado di riconoscere una classe più ampia di linguaggi. Autonomi lineari sono una particolare macchina di Turing non deterministica, nella quale la lunghezza del nastro è funzione lineare della dimensione dell’input. Macchina di Turing il massimo livello di complessità raggiunto da un automa. Generalizza gli autonomi a pila. Esistono diverse tipologie di grammatiche:
- regolari - libere dal contesto - dipendenti dal contesto - ricorsivamente numerabili
1637 Cartestio nel V discorso sul metodo scrive: “se vi fossero macchine che somigliassero al nostro corpo e imitassero quanto più è possibile le nostre azioni, avremmo sempre due mezzi sicurissimi per riconoscere che, comunque, non sarebbero veri uomini. Il primo è che non potrebbero mai servirsi di parole né di altri segni, componendoli per rispondere al senso di tutto quello che si dirà in sua presenza, come gli uomini più ebeti possono fare. Il secondo è che, se anche facessero molte cose altrettanto bene, essere non agiscono con cognizione di causa”. Maggio 1816 Mary Shelley è in vacanza sul lago di Ginevra insieme al marito, a Lord Byron e alla sua compagna, per rimediare alla noia causata da giornate di pioggia incensante, su proposta di Byron, scrivono racconti di terrore. Mary abbozza l’idea di quello che sarà Frankstein or the modern prometheus (pubblicato nel 1818 ). Il romanzo narra di uno scienziato che trasforma un corpo umano, assemblato con dei macchinari, in un essere pensante. 1843 Ada Lovelace alla domanda “le macchine possono parlare?” risponde: no. 1950 Alan Turing nell’articolo Computing machinery and intelligence pubblicato nella rivista Minde, per ripondere alla domanda: “le macchine possono pensare?” descrive quello che è conosciuto come Test di Turing. Turing per termine “ macchina intelligente ” intende una macchina in grado di pensare : capace di concatenare idee e di esprimerle.
1956 John McCarty durante un seminario iterdisciplinare nel New Hampshire, conia il termine “Artif icial Intelligence (AL) ”. Scopo di questa nuova disciplina è quello di far fare alle macchine delle cose che richiederebbero l’intelligenza se fossero fatte dagli uomini. Alcuni settori dell’intelligenza artificiale: Apprendimento automatico (macchine learning) utile in contesti quale il gioco degli scacchi Cooperazione tra agenti intelligenti: software e hardware (robot) Elaborazione del linguaggio naturale (Natural Language Processing) Rappresentazione della conoscenza e ragionamento automatico in maniera simile a quello della mente umana Pianificazione Simulazione della visione e dell’interpretazione di immagini
Un linguaggio di programmazione è un linguaggio formale che obbliga l’uso di specifiche regole sintattiche sviluppate in modo tale da evitare possibili istruzioni ambigue. Solitamente l’ espressività del linguaggio è ridotta ma tutte le “frasi” componibili trasmettono un solo possibile significato. I linguaggi di programmazione sono solitamente basati su grammatiche libere dal contesto e possono distinguersi per un passo o elevato livello di astrazione dal linguaggio propriamente in uso da un elaboratore elettronico per eseguire le operazioni.
Un insieme di istruzioni che possono essere eseguite direttamente dalla CPU (central processing unit o processore) di un computer elettronico. Basato sul codice binario (una sequenza di 0 e 1) rivisitato da Leibniz alla fine del diciassettesimo secolo.
1957 Karl Steinbuch utilizza il termine “Informatik” nel suo libro “Informatik:Automatische, Informationscerarbeitung”. 1962 Philippe Dreyfus (ingegnere francese) pubblica il libro “Informatique” Il termine Informatica è originato dalla contaminazione di due termini: informazione e automatica. È la disciplina teorica che si occupa della progettazione e della costruzione di macchine in grado di trattare ed elaborare in modo automatico l’informazione. Quindi, l’ingrediente principale dell’informatica è l’informazione.
Dato : insieme di simboli che rappresentano fatti oggettivi o eventi
Informazione : rappresentazione dei dati organizzati in modo da essere comprensibili e significativi per il destinatario. Dati messi in relazione e inseriti in un contesto di riferimento. Conoscenza : insieme di informazioni organizzate ed elaborate per diffondere comprensione ed esperienza
L’informatica si occupa prevalentemente della manipolazione di informazioni codificate in forma binaria. Nei calcolatori/computer l’informazione è codificata in bit per la semplicità con la quale i suoi simboli possono venire rappresentati da dispositivi bistabili (dispositivi fisici in grado di assumere due configurazioni): Presenza/assenza di un foro in una scheda Presenza/assenza di carica elettrica in una sostanza Passaggio/non passaggio di corrente in un conduttore (ad esempio cavo elettrico) Bit = Binary digit (cifra binaria) e unità di misura della quantità di informazione Il Bit è un concetto introdotto dalla teoria dell’informazione del 1948 di Claude Elwood Shannon (A mathematical Theory of Communication).
Forniscono un livello di astrazione sopra il linguaggio macchina. Permettono di scrivere programmi in modo che siano un pochino più intellegibili dagli umani. Il più famoso linguaggio di questo tipo è l’ Assemblly, anche se introduce simboli più comprensibili. Di solito una linea di codice in Assembly rappresenta una specifica istruzione in linguaggio macchina.
Caratterizzati da un forte livello di astrazione dal linguaggio macchina (esempio Pyton). Possono usare parole proprie del linguaggio naturale per definire costrutti specifici, così da essere di più facile comprensione per un umano. Più astrazione da un linguaggio di programmazione a basso livello è fornita più comprensibile è il linguaggio.
Grace Brewster Murray Hopper è tra i più grandi pionieri di programmazione. È la prima programmatrice dell’Harvard Mark I , cioè un computer elettromeccanico general-purpose usato durante la seconda guerra mondiale. Hopper è una matematica, un ammiraglio e una pioniera della programmazione informatica. 1943 ha lavorato sul primo computer digitale della Marina: l’Harvard Mark I. Hopper era fermamente convinta della necessità di avere linguaggi di programmazione che fossero indipendenti dalle macchine su cui erano utilizzati che l’ha portata allo sviluppo del COBOL (linguaggio ad alto livello).
COBOL ( Common Business Oriented Language ) è un linguaggio di programmazione sviluppato per uso industriale che utilizza largamente termini propri alla lingua inglese per descrivere le varie istruzioni dei programmi. L’idea di adottare, per la prima volta, comandi in lingua inglese ha reso il linguaggio un po’ più verboso ma anche molto più leggibile e chiaro.
In modo da facilitare l’avvicinamento all’iso dei linguaggi di programmazione tradizionali, negli ultimi anni sono stati sviluppati diversi linguaggi di programmazione visuali che permettono lo sviluppo di piccoli programmi per risolvere problemi computazionali specifici. Alcuni sono proposti sotto forma di gioco e permettono l’introduzione dei costrutti principali propri dei linguaggi di programmazione mediante l’utilizzo di oggetti grafici.
Il linguaggio di programmazione visuale proposto finora è stato sviluppato specificamente per risolvere un particolare problema computazionale. Esistono anche altri linguaggi di programmazione visuale che sono più general-purpose (Blockly di Google). Questo linguaggio mette a disposizione diversi costrutti propri dei linguaggi di programmazione tradizionale, ma li propone sotto forma di blocchetti che si possono incastrare uno sull’altro o uno dentro l’altro per definire le sequenze di operazioni di un algoritmo.
La successione di Fibonacci , detta anche successione aurea, (indicata con Fn o Fib(n)) in matematica indica una successione di numeri interi in cui ciascun numero è la somma dei due precedenti, eccetto i primi due che sono, per definizione F0=0 e F1=1. Questa successione è definita ricorsivamente secondo la seguente regola: F0 = 0 F1 = 1 Fn = Fn + Fn-2 (per ogni n > 1) Gli elementi F sono anche detti numeri di Fibonacci. I primi termini della successione di Fibonacci, che prende il nome dal matematico pisano del XIII secolo Leonardo Fibonacci , sono: 0,1,2,3,5,8,13,21,34,55,89,144,…
È un linguaggio di programmazione ad alto livello general-purpose ed è correntemente uno dei linguaggi più usati per il web e per attività di analisi automatiche di dati e del linguaggio natuarale. Tra i vantaggi, Pyton è uno dei linguaggi più semplici con cui iniziare a studiare come programmare e creare applicazioni. IL WORLD WIDE WEB
Definizione un corpo di materiale scritto interconnesso in modo così tanto complesso che non è conveniente presentare su carta.
Douglas Engelbart aveva iniziato l’implementazione di un sistema rivoluzionario che di fatto permetteva per la prima volta la creazione di ipertesti su un computer –tra le tante cose. Questo sistema, chiamato Online System ( NLS ), fu mostrato in una sessione dimostrativa nella Fall Joint Computer Conference del 1968 , suscitando commenti entusiastici da parte di tutta la comunità, tanto da aver poi etichettato quella sessione come la madre di tutti i demo ( The mother of all Demos ).
9 dicembre 1968 Douglas Engelbart dimostrazione pubblica di NLS (Online sYstem): un’ interfaccia per la fruizione di ipertesti Per “seguire” i link interni di un documento non sono sufficienti le schede perforate, le telescriventi e i costosi terminali video a linea di testo. Engelbart risolve il problema con un’idea geniale: inventa un piccolo strumento per puntare sullo schermo. È nel corso di quella (famosa) dimostrazione nel 1968 che fa la sua comparsa, per la prima volta, il mouse.
Software le applicazioni e i programmi a disposizione di un computer: Finestre come meccanismo visuale per l’organizzazione di contenuti Ipertesto Un sistema di videoscrittura (o word processor in inglese, tipo Microsoft Word) Meccanismi per il controllo delle versioni dei documenti Editor collaborativo in tempo reale (tipo Google Docs) Hardware la parte fisica di un computer Sistema di videoconferenza Mouse
1989 Tim Bernes-Lee , un giovane scienziato del CERN di Ginevra, propone un progetto chiamato World Wide Web. Inizialmente respinto da parte dei suoi superiori con il famoso commento “vago, ma eccitante”. Venne accettato come progetto collaterale per testae le potenzialità di un nuovo computer (in NeXT) che era stato appena comprato dal CERN.
30 aprile 1993 il CERN rende pubblica la tecnologia alla base del World Wide Web, rinunciando ad ogni diritto d’autore o proprietà intellettuale. 1 luglio 1953 Cern Convention Dal 1989 al 1994 Carlo Rubbia è direttore generale del CERN A tale decisione fa seguito un immediato e ampio successo del World Wide Web in virtù della possibilità offerta a chiunque di diventare editore della sua efficienza e non ultima della sua semplicità. Con il successo del World Wide Web ha inizio la crescita esponenziale e inarrestabile di internet ancora oggi in atto, nonché la cosiddetta “Era del Web”.
Un ipertesto che potesse descrivere una varietà di risorse eterogenee (documenti, persone, concetti, astratti, …) collegabili tra loro mediante l’uso di collegamenti ipertestuali etichettati , in modo da poter specificare la semantica del collegamento come parte esplicita del link. Semplificazione rispetto a Nelson collegamenti ipertestuali del Web dovevano essere percorribili in un’ unica direzione.
Il computer NEXT di Berners Lee è utilizzato come server web Adesso è esposto al museo Microcosm del CERN.
Un ulteriore semplificazione soltanto una tipologia di risorse (la pagina Web) e una sola tipologia di collegamento ipertestuale, ovvero il semplice riferimento (il documento A fa riferimento al documento B). Sviluppò una serie di tecnologie che permettessero agli utenti:
Il computer non mostra tutto quello che conosce sui link ipertestuali presenti in quella pagina. Dentro quel frammento di testo sottolineato e solitamente colorato in blu (o in viola nel caso sia stato già visitato) che può essere cliccato, c’è nascosto un oggetto invisibile che inizia per “Http://” (o , a volte, Https://). Quell’oggetto è un Uniform Resource Locator , o URL , rappresenta una sorta di nome (o più propriamente un indirizzo ) della pagina web a cui il link punta e permette di accedere cliccandoci sopra.
La forma di un qualunque URL presente nel Web è conforme con la struttura (ove gli elementi tra parentesi quafre sono opzionali):
- schema mezzo di trasporto usato per raggiungere la casa - host indirizzo della casa da raggiungere - porta ingresso da utilizzare per entrare nella casa - percorso sequenza dei locali da percorrere per arrivare in quello di interesse - interrogazione chiedere alla casa di eseguire azioni in quel locale - frammento oggetto specifico dentro il locale raggiunto
Un’applicazione software che permette di accedere e ottenere le informazioni presenti nel Web, così da poterlo “navigare”. Il primo Browser sviluppato da Tim Barners Lee si chiamava World Wide Web.
Il browser permette di specificare un URL della risorsa a cui siamo interessati in un apposito campo della sua interfaccia, solitamente in alto. A seconda del tipo di risorsa, permette di visualizzarla all’interno della finestra browser o di salvarla in uno specifico documento nel proprio computer. Nel primo caso, la pagina web visualizzata è un documento ipertestuale a tutti gli effetti: può contenere dei link che se cliccati indicano al browser di richiedere e scaricare la risorsa identificata dall’URL del link stesso così da visualizzarla.
La navigazione nel web è solo metaforica siccome non ci si sposta fisicamente da una pagina web ad un’altra come se prendessimo un autobus.
Plug in è un software del browser in grado di arricchirne e potenziarne le capacità del browser di gestire documenti in formati speciali. Un plug-in anche se prodotto da un’azienda diversa rispetto a quella che ha prodotto il browser, è una parte integrale del browser. I plug-in sono programmi disponibili in rete, solitamente viene chiesta la loro installazione o vengono anche caricati automaticamente dal browser, per aprire risorse in formati particolari. Tutti i Browser forniscono la possibilità di controllare i Plug-in installati e, se vuoi, disattivarli.
Le estensioni consentono di aggiungere nuove funzioni al browser, ovvero di estenderne le funzionalità. Puoi personalizzare il browser con le funzioni che ritieni più importanti e utili.
Il browser che hai nel tuo dispositivo conosce molto di te, ad esmpio:
- nome utente e relativa password - siti preferiti - storia (o cronologia) dei siti che hai visitato
Inoltre, essendo un’ applicazione che “gira sul tuo dispositivo, in linea di principio ha accesso ai tuoi dati, e-mail, file, ecc. Importante a meno che l’azione non sia richiesta da te, il browser non comunica i dati relativi a nome-utente e password, ne alcunché relativo ai file presenti sul tuo dispositivo. Per ogni risorsa chiesta dal browser al server, il server ricorda: a. data e ora della richiesta b. tipo di browser Chrome, firefox, internet explorer, safari, ecc. c. sistema operativo Android, linux, mac os, windows, ecc d. indirizzo IP da cui proviene la richiesta e. pagina precedentemente visitata Un documento HTML può contenere dei programmi (applet e Javascript) che vengono trasemssi dal server ed eseguiti sul browser. I browser sono costruiti in modo da eseguire gli applet e i javascript all’interno di una capsula di sicurezza che impedisce loro di accedere alle risorse dell’utente. Talvolta ci sono delle “falle” nella sicurezza del browser che possono essere sfruttate da script (applet e javascript) “malevoli” per accedere alle risorse del tuo dispositivo. Se hai un dubbio puoi disabilitare questi programmi andando nelle preferenze ,opzioni o impostazioni del browser.
Usando il protocollo http non c’è modo per un server di riconoscere che uno stesso utente sta chiedendo alcuni servizi (ricorda che il server http vede solo l’indirizzo IP del cliente). Le caselle postali sul web, servizi di notizie, negozi on-line, ecc. utilizzano i cookies. Un cookie è un piccolo file che il server chiede al browser di memorizzare sul tuo hard disk Spesso questo file contiene un numero, diverso per ogni utente che si collega col server. Ogni volta che il browser si collega di nuovo col server, trasmette anche il cookie, così il server sa che sei tu o che si tratta di quell’utente che aveva richiesto determinate risorse. Nel cookie possono essere memorizzate solo informazioni in possesso del server ad esempio se al server hai comunicato informazioni personali (nome, cognome, indirizzo di posta elettronica, ecc) queste informazioni possono venire associate al cookie. I cookies possono essere: o temporanei creati nel momento in cui inizia una sessione con un server e vengono cancellati al termine della sessione stessa. Sono usati per riconoscere lo stesso utente via via che naviga fra le pagine. o Permanenti creati al primo collegamento con un server e rimangono sul nostro hard disk anche dopo la chiusura della sessione. Nota bene si possono disattivare tramite i browser che permettono di disattivare la ricezione di cookie. Attenzione la disattivazione completa spesso non consente l’accesso a siti che usino in modo essenziale i cookies per il controllo degli account ed erogare servizi. I PROTOCOLLI DI COMUNICAZIONE
Un insieme di regole che due entità, parte di un sistema di comunicazione, devono seguire per scambiarsi informazioni.
o Una sintassi da seguire per costruire i messaggi o Delle regole interpretative del messaggio così da definire la semantica dei messaggi o Dei meccanismi per sincronizzare la comunicazione o Dei meccanismi per correggere e/o gestire eventuali errori che possono intercorrere nello scambio dei messaggi
Nella vita di tutti i giorni quando vogliamo comunicare con qualcuno. Sintassi definita da regole, semantica derivata dall’apprendimento della lingua, mentre le altre componenti definite da regole sociali e/o esperienza.
L’ Hypertext Transfer Protocol ( HTTP ) è un protocollo di comunicazione inizialmente sviluppato da Tim Berners-Lee per facilitare l’implementazione del Web. Basato su metodi di comunicazione di richiesta-risposta. Esteso negli anni successivi un’estensione di HTTP che implementa un protocollo di comunicazione più sicuro sul Web, utile quando è necessario trasmettere dati di autenticazione come nomi utenti e password.
HTTP (HyperText Transfer Protocol) è il protocollo mediante il quale avviene la comunicazione tra un browser e un web server per la fornitura di una risorsa (pagina Web, video, audio, ecc). È standard RFC 2616 dal 1999. HTTP/2 (Hypertext transfer protocol 2 originariamente chiamato HTTP/2.0) è la nuova versione del protocollo di rete HTTP usato dal World Wide Web È basato su SPDY. HTTP/2 è stato sviluppato dal Working Group Hupertext Transfer Protocol ( htttpbis ) dell’ Internet Engineering Task Force.
È un computer “speciale” che esegue un software specifico che permette di ricevere, gestire e soddisfare richieste HTTP provenienti da un client, (esempio un browser). Il nome del server web è incluso nell’URL che identifica la risorsa di cui si vuole ottenere informazioni nella parte host. La richiesta HTTP da mandare al server è molto più strutturata rispetto al semplice URL.
Quando un client richiede informazioni su una specifica risorsa utilizzando l’URL relativo: http://it.wikipedia.org/wiki/Uniform_resource_Locator La richiesta che viene davvero effettuata ha la seguente forma: GET /wiki/Uiform_Resouce_locator HTTP/1. Host: it.wikipedia.org o Metodo HTTP o Percorso o Nome del server web da contattare o protocollo e versione
Una volta che il server web riceve una richiesta fatta come indicato in precedenza, cerva localmente informazioni del documento indicate nel percorso della richiesta. Se trova la risorsa, ne fa una copia che viene impachettata nel payload in un nuovo messaggio http di risposta e la invia al mittente originale, specificando “200 OK” come stato. Se non trova la risorsa, associa il codice di errore relativo nello stato e opzionalmente potrebbe anche specificare nel payload un qualche messaggio per specificare meglio l’errore o, in generale, la situazione occorsa.
Seppur noi, utilizzatori di client come i browser, cerchiamo di accedere ad una risorsa a disposizione in un certo server web usando il nome di quest’ultimo, in realtà il server web non è direttamente raggiungibile usando il suo nome ma attraverso un indirizzo specifico. Un qualunque server web è identificato in modo univoco da una sequenza di quattro numeri separati da punti ove ogni numero può essere un valore che va da a 255. Questo numero si chiama indirizzo IP , dove “IP” è l’acronimo di “Internet Protocol”. INTERNET
Web ≠ Internet Il web è uno dei più famosi servizi di internet perchè si basa interamente sulle tecnologie messe a disposizione da internet. Internet in realtà è una conreazione di interconnected network (rete interconnessa), ovvero una rete composta da tante altre reti più piccole di dispositivi in qualche modo interconnessi tra loro mediante l’uso di specifici protocolli di comunicazione. È un’infrastruttura generale che permette la creazione di nuove applicazioni.
Motivazione (Guerra fredda Usa vs. Russia) provvedere ad una creazione di una rete di comunicazione che fosse abbastanza robusta da continuare a garantire la comunicazione tra tutti gli stati anche in seguito ad un attacco missilistico molto rilevante da parte della Russia. 1958 Advanced Research Projects Agency ( ARPA ) per la ricerca e lo sviluppo di tecnologie emergenti con forte applicabilità a livello militare.
Anni Sessanta ad ARPA , o meglio all’IPTO (Information Proccessing Techniques Office), lavorano, con incarichi direttivi, Licklider e Robert Taylor. 1968 Licklider e Taylor pubblicano l’articolo The Computer as Comunciation Device dove danno una chiara e lucida anticipazione di quello che attualmente chiamiamo Social Network (reti sociali, comunità virtuali, persone intente a collaborare “face to face through a computer”). L’ idea è quella di un dispositivo utile all’interazione e non solo al trasferimento di informazioni.
1966 Taylor , direttore dell’IPTO , focalizza l’attenzione su tre problemi:
ricerche quasi in “tempo reale”.
Taylor , sfruttando l’intuizione di Licklider sulle “reti intergalattiche”, immagina di poter connettere diversi centri e laboratori fra loro attraverso una rete che parlasse una lingua comune a tutti con la quale tutti potessero interagire con le machine degli altri e fra loro. Si reca al Pentagono per proporre il progetto a Hertzfeld ( direttore dell’ARPA ). Hertzfeld, entrusiasta (anche lui lo stava studiando),stanzia il milione di dollari neccessario.
L’Advanced Research Projects Agency Network ( ARPANET ) è stato il precursore di Internet. 1958 ARPA viene creata dal Governo USA con l’obbiettivo di studiare e sviluppare tecnologie innovative e all’avanguardia rispetto a quelle che potevano sviluppare i sovietici. Fra gli incarichi dell’ARPA c’è quello di trovare una soluzione alle problematiche legate alla sicurezza e disponibilità di una rete di telecomunicazioni.
Sessantun nodi nel luglio del 1977. La rete venne ufficialmente e pubblicamente mostrata nel 1972 durante la prima International Computer Communication Conference a Washington (una delle prime applicazioni è Electronic mail o e-mail). Sviluppo della tecnica a commutazione di pacchetto per trasportare dati su reti. Nuovi reti: o Computer Science Network (CSNET) o National Science Foundation Network (NSFNET) o NASA Science Network (NSN) La nascita di Internet avviene alla fine degli anni Ottanta , quando ARPANET e NSFNET vengono intercollegate tra loro.
Un problema rimane aperto la comunicazione fra i nodi. Sarebbe stato meglio se la comunicazione fra due nodi del network avvenisse: o Su una linea dedicata come avveniva per la telefonia commutazione di circuito o Sulle stesse linee in modo che viaggiassero simultaneamente più flussi dati
Viene stabilito un circuito virtuale unico di comunicazione tra mittente e destinatario, ovvero una sequenza finita e sequenziale di nodi riservati a mittente destinatario. Viene usata tutta la banda a disposizione che occupa in modo esclusi ovo i suddetti nodi fino al termine della comunicazione. La comunicazione resta aperta, quindi il circuito rimane “occupato” anche durante lunghe pause finché la conversazione non viene chiusa.
Pacchetto unità atomica in formazione formata solitamente de l’header e il playload. Dimensione massima in termini di informazione che possono contenere: un messaggio viene spezzato in diversi pacchetti trasmessi sulla rete senza occupare l’intera banda e instradati dal mittente al destinatario seguendo, potenzialmente, percorsi diversi. Vantaggio tolleranza ai guasti.
1965 prima connessione mediante commutazione di circuito tra le due coste degli Stati Uniti 29 ottobre 1969 primo messaggio e comunicazione a commutazione di pacchetto sulla rete nascente ARPANET tra due università che distano circa 600 chilometri l’una dall’altra: o UCLA(University of California and Los Angeles) con Leonard Kleinrock o SRI (Stanford Research Institute) con Douglas Engelbart 5 dicembre 1969 i nodi connessi sono quattro e si aggiungono: o University of California, Santa Barbara o University of Utah La rete è in funzione! da questo momento cresce e moltiplica i suoi nodi e i suoi servizi.
Obbiettivo interconnessione: collegare a ARPANET la rete satellitare SATNET e la rete radio PRNET (finanziate da DARPA). Fine del 1971 ARPANET conta quindici nodi 1972 ne conta 37 nodi e da questo momento la sua crescita avviene a velocità esponenziale. L’interconnessione di reti (inter-networking) doveva essere resa più semplice possibile. Problema il protocollo di comunicazione NCP (Network Control Protocol) usato su ARPANET, demandava alla rete tutta la responsabilità della consegna dei pacchetti. Se un pacchetto non arriva, la rete si blocca questo è inaccettabile su una rete dove le mancate connessioni e le congestioni sono la regola, non l’eccezione.
ARPANET , successivamente Internet e il World Wide Web si basano su protocolli. In informatica un protocollo è un insieme di regole e formati condivisi tra due o più entità - siano essi programmi (software) e/o prodotti fisici (hardware) - formalmente descritti, uniti a garantire una corretta comunicazione. Esistono varie tipologie di protocolli ciascuno con precisi compiti e finalità seconda delle entità interessate e del mezzo di comunicazione utilizzato. Ad esempio un protocollo di comunicazione è un insieme di regole che definiscono il formato e l’ordine dei messaggi spediti tra due parti.
1973 Robert Kahn (ARPA) e Vinton Cerf (Standord University) mettono per iscritto la struttura di Internet. Nello stesso anno progettano il TPC (Transmission Control Portocol), in italiano protocollo di controllo trasmissione: uno standard indispensabile per la comunicazione fra reti di computer. 1978 Cerf, Postel e Crocker aggiungono un ulteriore protocollo IP (Internet Protocol) fra rete e rete, mettendo a punto il definitivo protocollo TCP/IP sul quale ancor oggi opera Internet. Grazie all’accoppiata TCP/IP : o Ogni rete interconnessa continua a funzionare e esistere per proprio conto o La comunicazione avviene sulla base del principio Best Effort (miglior sforzo) o La connessione alla rete è assicurata da Router o Non avviene nessun controllo globale della rete a livello della sua operatività.
Novembre/dicembre 1971 Ray Tomlinson scrive la prima applicazione per lo scambio di posta elettronica. Utilizza (non inventa) il simbolo @ (at) che significa “presso” la @ separa il nome del destinatario/mittente dal nome dell’host (computer server) al quale si accede per utilizzarne i servizi. La posta elettronica nasce per far scambiare velocemente messaggi tra i ricercatori di ARPANET.
Anni Settanta espansione della rete prosegue sempre più rapidamente. Altre comunità di ricerca si dotano di reti indipendenti: o HEPNET per la fisica delle alte energie o MEFNET per le ricerca sulla fusione magnetica o SPAM per la ricerca della NASA o CSNET per la ricerca accademica e industriale Non solo gli USA, ma anche in Europa si hanno reti: o Francia CYCLADES o Norvegia NORSAR permette il collegamento di ARPANET conUniversity College di Londra Altre reti:
1. Proprietarie
o DECnet della DIgital Equipmenti Corporation
ICANN ( Internet Corporation for Assigned Names and Numbers ), un ente sotto il diretto controllo del Ministero del commercio degli Stati Uniti, è storicamente deputata all’assegnazione degli indirizzi IP a livello internazionale e alla gestione operativa dei DNS. Lo IANA (Intenet Assigned Numbers Authotity) emanazione dell’ICANN, è un organismo che ha la responsabilità nell’assegnazione degli indirizzi IP. La Registration Authority (RA) italiana è responsabile dell’assegnazione dei nomi a dominio nel country code “IT” Le attività della RA sono svolte dall’ Istituto di informatica e telematica del consiglio nazionale delle ricerche (IIT-CNR). Il ruolo di Registration Authority deriva al CNR dalla posizione che esso ricopre nella comunità scientifica nazionale ed internazionale quale Ente pubblico di ricerca. È stato affidato ai tecnici dell’IIT con l’accordo della IANA (Internet Assigned Number Authority) sulla base di riconosciute competenze acquisite dal suddetto personale che, a partire dalla metà degli anni Ottanta, ha diffuso il protocollo IP nell’ambiente della ricerca italiana.
Ogni nodo è uno specifico computer che può avere uno o più ruoli. I nostri computer personali, i server Web e i server DNS sono tutti computer parte della rete e identificati da uno specifico indirizzo IP. C’è almeno un altro computer speciale, fondamentale per il corretto funzionamento della rete il router.
Dispositivo di rete dedicato a svolgere un compito molto peculiare e preciso l’ instradamento dei pacchetti IP dal mittente fino al destinatario. Esistono diversi tipi di Router usati in rete dipendentemente dal ruolo che svolgono: o Il router che abbiamo a casa che permette al nostro computer di connettersi a Internet mettendoci in contatto con il nostro Internet Service Provider (ISP) ovvero l’operatore che ci permette di usufruire dei vari servizi di Internet o Router di collegamento tra sottoreti diverse ma sempre facenti parte di Internet
I router agiscono principalmente sullo strato di rete, svolgendo il ruolo di vigile urbano di Internet veicolano il traffico dei pacchetti IP verso il percorso più appropriato dal mittente al destinatario. Quando un Router riceve un pacchetto IP controlla qual è il prossimo nodo a cui il pacchetto deve essere trasmesso in modo da avvicinarlo al destinatario e, una volta identificato l’indirizzo IP del prossimo nodo, questa informazione viene incapsulata in un nuovo pacchetto dello strato di accesso alla rete, così che venga recapitato al nodo identificato. Un Router non: o entra mai nel merito del payload del pacchetto IP o ne tiene traccia.
LAN ( Local Area Network)/ WLAN ( Wireless Local Area Network ) è una rete informatica di collegamento tra più computer, estendibile anche a dispositivi periferici condivisi, che copre un’area limitata (come un’ ambientazione, una scuola, un’azienda o un complesso di edifici adiacenti). Le tecnologie più utilizzate per realizzare una LAN e una WLAN sono rispettivamente Ethernet e il WI-FI. + Router (o instradatore) un dispositivo elettronico che, in rete informatica a commutazione di pacchetto, si occupa di instradare i dati, suddivisi in pacchetti, fra reti diverse.
È una rete locale (LAN), o un raggruppamento di reti locali, usata all’interno di un’organizzazione per facilitare la comunicazione e l’accesso all’informazione. Può essere ad accesso: o ristretto o limitato o riservato per gli utenti A volte il termine è riferito solo alla rete di servizi più visibile il sistema di siti che formano uno spazio web interno. In altre accezioni il termine può essere inteso come il sistema di informazioni e servizi di utilità generale accessibili dalla rete interna. La concezione più comune di Intranet è quella di un “Corporate Portal” (Portale aziendale) un punto di ingresso ad applicazioni specifiche quali:
correlazione e ricerca
Wide Area Network è una tipologia di rete di computer che si contraddistingue per avere un’estensione territoriale pari a una o più regioni geografiche. È una rete di trasporto che può connettere fra loro più reti locali e/o metropolitane ( Metropolitan Area Network ) collegate fra loro da backbones (dorsali). Molte WAN sono costruite per una particolare organizzazione e sono private. TRASFERIRE INFORMAZIONI SU INTERNET
La scorsa lezione abbiamo accennato al fatto che un particolare messaggio debba essere spezzato in uno o più pacchetti IP prima che questi vengano instradati in rete. Due diversi fattori:
Byte unità minima di informazione su un computer che storicamente corrisponde al numero di Bit necessari Bit (contrattura di Binary Digit) l’unità di informazione che si può scambiare e può assumere solo uno di due valori: 0 o 1. 1 Byte = 8 Bit Il concetto di bit è stato usato da diversi studiosi del passato (ad esempio Babbage con le schede perforate), ma introdotto come temine formalmente da Claude Shannon nel 1948.
Nell’articolo che introduce il Bit, Shannon in realtà mette le basi di uno specifico campo di ricerca e studio chiamato teoria dell’informazione. La teoria dell’informazione si occupa di studiare come quantificare, memorizzare e scambiare informazione che ha tuttora svariate applicazioni pratiche, oltre che aver caratterizzato e veicolato l’invenzione di diverse tecnologie del passato, incluso lo sviluppo di Internet.
Ogni carattere, numero, programma, applicazione all’interno di un computer, cos’ come un qualunque messaggio da scambiare in Internet, è codificato una sequenza di bit che , in qualche modo, vengono poi decodificati con la sequenza di caratteri corretta dalla particolare applicazione che riceve ed interpreta quell’informaizione.
Sono definiti mediante l’uso di 4 Byte, uno per ogni numero. Ogni Byte, ovvero 8 Bit, permette di definire un numero intero da 9 A 255. Codifica/decodifica binaria: ognuno degli otto bit di un numero facente parte dell’indirizzo IP ha assegnato uno specifico valore il valore 1 è associato al bit più a destra, mentre quello successivo verso sinistra è assegnato un valore doppio rispetto al precedente (in questo caso 2), e così via.
Un qualunque messaggio e/o pacchetto spedito attraverso Internet è di fatto codificato usando una sequenza di bit. Una parte di questi bit corrispondono a informazioni relative all’Header del pacchetto, mentre le altre sono relative al payload. Normalmente la dimensione massima dell’Header e del Payload è fissata a priori.
Sia il riordino dei pacchetti sia lo spezzare il messaggio originale in più pacchetti è gestito dallo strato di trasporto. Protocollo principale Trasmission Control Protocol (TCP) proposto da Vinton Cerf e Robert Kahn nel 1974 per ARPANET.
Il TCP permette la consegna affidabile, ordinata e esente da errori di un flusso di Byte tra due computer in comunicazione tra loro attraverso una rete basata sul protocollo Ip e gestisce tutti quei processi che garantiscono la ritrasmissione di un pacchetto nel caso in cui non sia stato recapitato al destinatario entro un certo tempo limite: o L’ Header di un pacchetto TCP contiene informazioni relative alla comunicazione a livello trasporto tra i due computer mittente e destinatario le port e usate per la comunicazione e un numero di sequenza che indica l’ordine dei vari pacchetti TCP) o il payload contiene le informazioni che devono essere scambiate tra i partecipanti alla comunicazione.
Il mittente e il destinatario si mettono d’accordo di iniziare una comunicazione in modo esplicito prima di scambiarsi i dati e dichiarano altrettanto esplicitamente quando questa comunicazione si può ritenere conclusa: o Il processo di inizio della comunicazione è regolato dal meccanismo del three-way-handshake o Il processo di chiusura della comunicazione è regolato dal meccanismo del four-way-handshake
Il Simple Mail Transfer Protocol (SMTP) è il principale protocollo di comunicazione dello strato applicativo per spedire email. Ogni volta che si spedisce una mail, in realtà, non viene recapitata direttamente al destinatario, ma viene raccolta da un server di posta di competenza del dominio della mail del destinatario. Dominio identificativo della parte dell’indirizzo email che segue il carattere @. Questo server è come un server web ed è in grado di ricevere email attraverso il protocollo SMTP per poi inoltrarle ai relativi destinatari quando questi ne fanno richiesta mediante l’uso del protocollo POP o IMAP.
Sono entrambi utilizzati per richiedere e ricevere e-mail da un server di posta. Con il Post Office Protocol (POP) il server di posta consegna tutti i messaggi precedentemente inviati a quel particolare destinatario e, una volta consegnati, li cancella da quel server. L’ Internet Message Access Protocol (IMAP) è stato esplicitamente sviluppato per facilitare la gestione di una stessa casella di posta elettronica da parte di più dispositivi infatti i messaggi di posta elettronica non vengono eliminati automaticamente dal servere anche se sono stati già recapitati ai rispettivi destinatati a seguito di una loro richiesta, ma devono essere eliminati esplicitamente dall’utente.
Il File Trasnfer Protocol (FTP) è un protocollo che permette il trasferimento di un qualunque file da un computer ad un server e viceversa. È uno dei protocolli più adottati di Internet per permettere lo scaricamento di una grossa mole di dati, mentre è poco adatto per scaricare documenti molto piccoli (pagine web).
L’E-mail (o posta elettronica) è un servizio di Internet (di tipo client –server) che consente lo scambio di messaggi tra due o più utenti. La comunicazione tramite posta elettronica è asincrona non è necessario che il destinatario del messaggio di posta elettronica sia collegato a Internet nel momento in cui il mittente gli invia un messaggio. Ogni messaggio ha un mittente e uno o più destinatari. Che cosa è necessario per spedire o ricevere un e-mail? - è necessario un indirizzo e-mail (e-mail address). L’indirizzo e-mail ri viene assegnato dal tuo fornitore di connettività (ISP) oppure da un altro fornitore di servizi (Hotmail, Google, Yahoo!, Virgilio, Amazon, ecc). La @ (at che significa “presso”) separa il nome del destinatario/mittente dal nome dell’host (computer-server) al quale accedi per utilizzarne i servizi. La parte d’indirizzo alla sinistra del simbolo @ identifica l’utente in maniere univoca all’interno del mail server che ospita la sua mailbox Spesso sarà il tuo cognome e/o nome, oppure un codice, o un nickname che ti sei scelto. L’importante è che non ci siano due utenti di quel sistema con lo stesso identificativo. La parte d’indirizzo a destra del simbolo @ identifica in maniera univoca, all’interno dell’intera rete Internet, il particolare mail server presso il quale l’utente è ospitato.
La struttura standard di un messaggio e-mail include alcuni campi di intestazione, una linea bianca e poi il corpo del messaggio. Campi di intestazione : o To indirizzo del destinatario primario o Cc indirizzo del destinatario secondario al quale inviare il messaggio per conoscenza
Negli anni successivi al 1990, durante la cosiddetta prima guerra dei Browser tra Netscape e Microsoft, le definizioni di nuove specifiche del linguaggio HTML si susseguono, rincorrendo le estensioni e le modifiche proposte dai produttori dei Browser che cercano di accaparrarsi quote di mercato. Vengono rilasciate diverse versioni di HTML, fino ad arrivare alla versione 4.01 del 1999, che era piuttosto caotica alcuni marcatori funzionavano soltanto su alcuni browser o su versioni specifiche di questi, mentre le indicazioni per gestire gli errori di sintassi erano molto generiche e per nulla chiare.
Il W3C decide di iniziare a lavorare ad una nuova versione di HTML basata interamente sulla sintassi XML, chiamata XHTML, pubblicata ufficialmente nel 2000. Migliora l’interoperabilità con altri linguaggi basati su XML della stessa famiglia (SVG e MathML su tutti), ma sacrificando la piena compatibilità con HTML. Giugno 2004 W3C decide di non mantenere retro compatibilità con HTML scatenando l’ira dei vendors dei browser che formano il Web Hypertext Application Technology Working Group (WHATWG) per proseguire il lavoro di miglioramento di HTML al di fuori del W3C.
2006 Tm Berners-Lee annuncia la creazione di un nuovo gruppo di ricerca nel W3C orientato ad HTML e a quello che sta facendo il WHATWG. Da quel momento in avanti il W3C e il WHATWG collaborano fino al 2011, ma continuano ad avere obiettivi inconciliabili: o W3C vuole cristallizzare e pubblicare la specifica della nuova versione di HTML5 (quella in uso correntemente nel Web) in un documento ufficiale e definitivo o WHATWG non vuole la pubblicazione di una specifica versione ma piuttosto un living standard in evoluzione continua. In breve, HTML è un “dialetto” di SGML e ha una DTD (Document Type Definition) standard definita dal W3Ce WHATWG. Una DTD definisce: o Vocabolario gli elementi leciti e che si possono utilizzare l’interno della pagina HTML o Grammatica la struttura che indica cosa può contenere ciascun elemento, l’ordine, la quantità di elementi che possono comparire e se sono opzionali o obbligatori o Una serie di attributi per ogni elemento e che valori possono o devono assumere questi attributi o Permette di realizzare documenti ipertestuali pagine web o È di facile utilizzo o Lavora su tutti i computer e dispositivi mobili Una pagina HTML è un file di testo (con estensione. Html) che contiene indicazioni su: o Markup o Posizione delle immagini o altri oggetti multimediali
Il primo elemento con il quale inizia un documento HTML non è un elemento HTML ma è la Document Type Declaration (). È la dichiarazione che indica al browser che il documento in questione utilizza le regole di marcatura di HTML5. Il primo elemento, la radice dell’albero, di un documento HTML è html contiene tutti gli altri elementi che descrivono la pagina HTML e può definire molti attributi, tra cui l’attributo Lang per definire la lingua principale dei contenuti. L’elemento html contiene direttamente due elementi per distinguere due sezioni importanti della struttura base di un documento HTML:
Struttura: o Titoli Il contenuto testuale di un documento HTML è contenuto dentro l’elemento body e può essere organizzato mediante l’uso di appropriati elementi HTML che veicolano una precisa semantica. o Paragrafi o Enfasi enfatizzare porzioni di testo in HTML si specifica mediante i8 seguenti elementi
- per enfasi leggera - per enfasi forte
o Citazioni tre differenti elementi per specificare le citazioni in un testo:
- cite titolo di un lavoro citato - q citazione in linea - block quote citazione come blocco a sestante
In HTML esistono due elementi che permettono di creare una lista: o ol per la lista ordinata o ul per la lista non ordinata Le singole voci della lista vengono indicate usando l’elemento li. Una tabella (elemento table ) è composta da una sequenza di righe (elemento tr ), ognuna delle quali contiene una o più celle che possono essere di due tipi:
1. celle contenenti dati elemento td 2. celle che definiscono intestazioni per le righe o le colonne identificate dalla tabella elemento th.
L’elemento HTML per specificare un’immagine è img un elemento che non contiene alcun testo, ma che deve specificare i seguenti due attributi:
L’elemento video usato insieme all’elemento source permettono di inserire un video in un documento HTML. !Attenzione! L’elemento Source deve avere specificato l’attributo src che, come per le immagini, si riferisce all’URL dove reperire il video.
1996 viene rilasciata per la prima volta la specifica del Cascading Style Sheet ( CSS ) un ulteriore linguaggio che permette di definire il livello presentazionale degli elementi di HTML, come: o il colore e la dimensione del testo del contenuto nei titoli e nei paragrafi o la posizione di sezioni, articoli, immagini o video o l’animazione dinamica quando si posiziona il cursore del mouse su una voce del menu e/o sui link RICERCASU INTERNET
Motore di ricerca è un software progettato per ricercare sul Web. I risultati o SERP (Search Engine Result Page) sono rappresentati sotto forma di link. La qualità di un motore di ricerca si valuta in base alla pertinenza e rilevanza dei risultati:
o Google page rank è la unica tecnica utilizzata da Google per classificare i siti in base alla loro importanza o Bing o Yahoo! o Virgilio o Hashtagify.me motore di ricerca specializzato nella ricerca degli Hashtag # utilizzati su Twitter. Generalmente i motori di ricerca fanno capo a società private con scopo di lucro.
Fasi:
Una volta chiarita la domanda scegli con attenzione quali parole chiave utilizzare negli strumenti di ricerca La loro individuazione è un passaggio fondamentale perché da esso dipende la bontà stessa dell’esito della ricerca. Gli errori più comuni possono essere l’impiego di una sola parola chiave o di termini generici , ambigui e non pertinenti col problema di ricerca. Essi, connessi alle criticità d’uso degli strumenti di ricerca, possono condurre a diversi risultati non ottimali. Sintetizzando, tipicamente l’utilizzo di termini generali condurrà a ottenere una quantità enorme di risultati poco pertinenti col problema specifico di nostro interesse mentre l’utilizzo di termini troppo specifici porterà presumibilmente a un numero eccessivamente ristretto di risultati. Nota bene non vi sono regole assolute valide per qualsiasi tema o problema di ricerca. La risposta per tante domande dipende dal problema di ricerca e dal trovare le parole chiave più efficaci quelle che consentono di ottenere un sufficiente numero di risultati pertinenti (è una competenza che acquisisci e affini con l’esercizio) Tipicamente, all’interno della stessa domanda sono presenti i termini che si possono servire a questo scopo. La scelta delle parole chiave è facilitata da una buona conoscenza o esperienza relativamente al dominio indagato. Qualora manchi una conoscenza anche terminologica del tema, può essere utile preliminarmente leggere dei documenti anche non specialistici o scientifici relativi a esso per trarre suggerimenti adeguati alla identificazione delle parole chiave.
Sulla base del problema di ricerca scegli il tipo di risorse di cui hai bisogno. Sulla base del tipo di risorse desiderate ti orienti verso strumenti di ricerca differenti:
Definire il tipo di risorse e lo strumento di ricerca: o Motori di ricerca generalisti Bing, Google, ecc. o Motori di ricerca scientifici Google Scholar, Microsoft Academic Research, ecc. o Cataloghi di accesso pubblico a riviste, libri e altre pubblicazioni/librerie online OPAC SBN, Google Books, ecc. o Banche dati di articoli scientifici Scopus, Isi Web of Science, ecc o Banche statistiche ISTAT, MIUR, UNESCO, ecc o Archivi video Youtube, Vimeo, ecc o Archivi immagini Flickr, Instagram, ecc.
Virgolette (“ ”) indicano al motore di ricerca che il loro contenuto deve essere trattato come una frase, cioè come sequenza di parole che devono comparire nel testo come un blocco unico (ad esempio “strategie didattiche”) Parentesi ( ) tutti gli operatori logici possono essere inseriti in espressioni complesse del tipo collaborative and (strategie OR tecniche) Asterisco ()* alcuni motori di ricerca accettano l’asterisco come sostituto di una o più lettere o parole (ad esempio “collaborat*” consente di trovare tutti i termini che iniziano per “collaborat”
Cerchi una cosa e ne trovi un’altra. Nome coniato da Horace Walpole, tratto dalla fiaba “I tre principi di Serendip” (antico nome della Sri Lanka). Serve fortina (il caso) e un atteggiamento di apertura per cogliere l’indizio che porterà alla scoperta occorre essere aperti alla ricerca e riconoscere il valore di esperienze che non corrispondono alle originarie aspettative.
Deep Web o Web sommerso è l’insieme delle risorse, stimate in circa il 96%, del WWW non segnalate dai normali motori di ricerca. Le risorse presenti nel Deep Web appartengono a queste macro categorie: o Risorse Web dinamiche la risorsa e il suo contenuto viene generato sul momento, dinamicamente, dal server, in risposta ad un’azione o richiesta dall’utente. o Pagine Web non collegate pagine Web che non hanno alcun collegamento ad altre pagine Web a nessun altra pagine Web o Pagine Web o siti ad accesso ristretto siti Web che chiedono una registrazione o limitano l’accesso alle loro pagine Webn se non sei un utente registrato, impediscono così l’accesso ai motori di ricerca o Script risorse Web che vongono raggiunte solo attraverso link realizzati in javascript o in Flash e che quindi richiedono procedure particolari.